【单片机】实战篇:Keil+Proteus数码管计数99

发布者:Huixin8888最新更新时间:2021-11-26 来源: eefocus关键字:单片机  Keil  Proteus  数码管计数 手机看文章 扫描二维码
随时随地手机看文章

本篇文章:

主要内容:静态点亮数码管显示数字99、动态点亮数码管显示12345678(8位数码管)。

功能一:静态点亮数码管显示数字99(2位数码管)

功能二:动态点亮数码管显示12345678(8位数码管)


正文如下:

一、静态点亮数码管

1)Proteus绘图

第一步:根据给定元器件进行绘图

如果不知如何绘图,(新手请看:https://blog.csdn.net/qq_44366571/article/details/107053338)

在这里插入图片描述

注:遇到新知识:

在这里插入图片描述

注:点击出现,属性赋值工具

在这里插入图片描述

自定义名字:

在这里插入图片描述

注意: 一般的话,框中输入NET=P1#(#表示的意思是:0-9),点击圆圈即可命名。

例如: NET=A1#,点击之后依次显示:A10、A11、A12、A13…

作用: 可以减少连线,名字相同的两个圈,默认是已经连接上线了。我们绘制的图中,左数码管已经和P0引脚相连,右数码管已经和P1引脚相连

第二步:

绘图完成,进行Keil代码


2)Keil代码

第一步:创建一个单片机工程

如果不知如何创建单片机工程,(新手请看:)

第二步:根据Proteus绘制,代码实现数码管点亮:

数码管器件: 数码管分为共阴极和共阳极,如果是共阴极的话,我们需要在连接的引脚输入高电平才可以点亮数码管;如果数码管是共阳极的话,我们需要在连接的引脚输入低电平才可以。


数码管:

在这里插入图片描述
在这里插入图片描述

#include

#define uchar unsigned char

#define uint unsigned int

#define smg_r P1

#define smg_l P0

code uchar date[10]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};

//延时函数

void delay(unsigned int x) //延时 x ms

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}


void main(){

uint i, ge, shi;

while(1){

i=0;

//数码管从00显示到99

for(i = 0; i < 100; i++){

ge = i%10;

shi = i/10;

smg_l = date[shi];

smg_r = date[ge];

delay(1000);

}

}

}


到这里,静态的数码管显示就实现了,我们来看看如何实现动态数码管。


二、动态点亮数码管

1)Proteus绘图

绘图元器件:

下图左方即绘图所需元器件,按照改图绘制即可。

在这里插入图片描述

提示:

点击工具,选择自动连线,操作如下,双击即可实现

在这里插入图片描述
在这里插入图片描述

提示:

名字相同的就是连接到一起的意思。

绘图完成,进行代码部分。


2)Keil代码部分

#include

#include

 

#define uchar unsigned char

#define uint  unsigned int


uchar code Discode[]={0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xc0};   //共阳极数码管


void delay(uint t)    //毫秒级延时函数

{

uchar i;

while(t--)

{

for(i=0;i<120;i++);

}

}

void main()

{

  uchar i,j=0x80;

P0=0xff;   //先关闭数码管

P2=0x00;   

while(1)

{

for(i=0;i<8;i++)

{

P2=0x00; //显示一次关闭一次位选端,去除重影的作用

j=_crol_(j,1);    //10000000——00000001

P2=j; //每次选通一个位选端口

P0=Discode[i];   //段码送P0口

delay(5);

}

}

}


效果展示:

在这里插入图片描述

完结,撒花…


本篇文章主要是单片机数码管的使用,更多Keil+proteus项目,持续学习中…

关键字:单片机  Keil  Proteus  数码管计数 引用地址:【单片机】实战篇:Keil+Proteus数码管计数99

上一篇:【C51单片机】数码管实现99秒倒计时
下一篇:【单片机】Keil+Proteus流水灯(模块化编程)

推荐阅读最新更新时间:2024-10-28 20:08

单片机·LCD1602
LCD1602 (能够同时显示16x02 ,32个字符) 一、管脚功能介绍 1.GND 地线 2.VCC 电源正极 3.VL 液晶显示偏压信号(对比度清晰一点) 4.RS 数据/命令选择端 5.R/W 读/写选择端 6.EN 使能信号 7.D0~D7 P0口数据传输 8.BL+ 背光源正极 9.BL- 背光源负极 二、字符集 这是LCD1602特别值得注意的一点,我开始学习的时候,以后可以使用通用的ascii码,但是实验了很久,得不到自己想要的结果,最后才发现LCD1602有自己的字符集 (最长使用的十六进制中的A-F,可以通过 A+'7'来确定) 三
[单片机]
51单片机外设之——按键的检测(带有标志位的按键识别法)
前面提到了独立按键的扫描方法(延时,消抖的方法),可见这种方法很大程度上可以实现按键的准确扫描。但是仔细一看,可以发现,它有一个缺点——存在while语句的松手检测! 试想,倘若我们一直按着按键不松手,那我们的程序毫无疑问的一直卡在了while语句的松手检测上。这在很多场合是并不适用的。 对于独立按键的博文中所提到的配合数码管显示的实例中,由于我们数码管显示函数display() 位于主函数中,假如我们按键长时间按下,一定会存在数码管不能显示的情况。所以接下来给出一种不需要while松手检测的按键扫描——带有标志位的按键识别(在矩阵键盘同样适用,这里以独立键盘为例)。 首先附上原理图: 用跳帽连接排针 J5 的2脚与3脚,将键
[单片机]
51<font color='red'>单片机</font>外设之——按键的检测(带有标志位的按键识别法)
基于89C52单片机的具有通讯口的智能温控表
1 引 言      温控表已广泛应用于工业控制等诸多领域,本文介绍的具有计算机通讯功能的智能温控表是一种新颖的自动化仪表,它以单片机AT89C52为核心,采用电压/频率转换技术和RS-485通信接口芯片MAX487,具有测量精度高、可靠性好、抗干扰性能强、可实现计算机网络控制等优点,可广泛应用于冶金、纺织、化工、医疗等行业。它具有-200~+500°C范围的温度测量和自动控制,是老式温控表的替代产品,市场前景广阔。 2 系统硬件设计   系统硬件框图如图1所示。      系统接通220V交流电源后,通过稳压电路(7805、7905)产生±5V直流工作电源,以满足本系统中集成电路工作需要,系统的遥测电路开始工作:在
[单片机]
单片机系统加密中的动态反跟踪措施
  众所周知, 有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用单片机开发系统单步调试ROM中的程序。 当解密者了解了指令的运行过程之后, 也就获得了加密的程序, 如某些智能计价器的运算方法等,通过修改程序并仿制新的ROM芯片, 就可以达到解密的目的。因此,对单片机的加密还要在程序的运行上进行加密处理, 也就是程序的动态加密措施。 1 程序的动态解码   动态解码是对加密程序的指令或数据代码进行动态恢复。在程序运行时, 有一段指令是专门对某一区域的指令或数据代码解密, 而且当解密后的代码使用完毕, 还要将其重新加密, 使存储器中不存在完整的程序代码。 这种方
[单片机]
stm单片机型号的意义 stm8和stm32的烧写程序的区别 stm8读取程序
stm单片机型号的意义 STM单片机型号一般由几个部分组成,每个部分都代表着不同的意义: 第一部分:STM或STM32或STM8,代表单片机的品牌和系列。STM32系列是基于ARM Cortex-M内核的单片机系列,而STM8系列则是基于ST8内核的单片机系列。 第二部分:数字,代表单片机的性能等级,数字越高代表性能越高,功能也更加强大。例如,在STM32系列中,STM32F0代表基本型号,STM32F1代表通用型号,STM32F2代表高性能型号,STM32F3代表模拟型号,STM32F4代表高性能数字信号控制型号等。 第三部分:字母,代表单片机的特性和功能。例如,在STM32F4系列中,H代表高速器件,C代表低功耗器件,E代
[单片机]
单片机三四天的感受
这篇文章是本人在学习单片机三四天时写的,有很多东西可能理解的不到位或者不正确,所以本文不具参考价值,若不听劝告,强制参考,对阁下造成的影响,本人概不负责的说,特此声明。 单片机的英文简写是MCU,主要由四部分组成,CPU,RAM,ROM,I/O口,CPU就像电脑的CPU,RAM就像电脑的内存,ROM就像电脑的硬盘,不过没有电脑的硬盘灵活,程序只能拷进去,但好像拷不出来,至少我不知道咋拷出来,可能是功力不够。I/O口就像电脑的串口,鼠标、键盘接口,但是它的I/O口很多都是一位一位的。 CPU的时钟频率最大也就是几十兆,但是写程序的时候可以自定义它的时钟频率,自定义的时钟频率只能比最大值小,感觉很奇怪,定义一些小的时钟频率好像没什么优
[单片机]
50-基于51单片机的智能台灯设计
具体实现功能 系统由STC89C52单片机+L数码管+光敏电阻+人体感应模块+红外接近传感器模块构成。 具体功能: (1)亮度不够且有人靠近时台灯自动亮; (2)靠的太近会提醒坐姿不正(蜂鸣器); (3)附近无人时台灯自动熄灭(30秒),时间可调; (4)根据环境亮度调节等亮度; (5)可手动调节台灯亮度; (6)设定学习时间。 设计背景 台灯已是千家万户的必需生活用品,经常由于忘记关灯而造成巨大的能源浪费。当夜晚来临时,人们又摸黑去开灯,非常不方便。在这里设计了以人体红外辐射(波长为9.5um)传感控制电路。当人体在台灯的范围内且环境光强较弱时,自动感应开灯;当人体太靠近桌面时,台灯自动感应,
[单片机]
50-基于51<font color='red'>单片机</font>的智能台灯设计
手把手之STM32中断
●中断 中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。 ●关于STM32的中断 几乎任何一款单片机都会有中断。以STM32F407VE来说,这是一款基于Cortex-M4内核的芯片,在CM4内核中有关于中断的一些管理,在STM32芯片中也有关于中断的一些管理。因此可以总结出一条规律,STM32的中断是有两层控制器分别控制的,如果你想使用中断,那么必须同时配置内核和芯片。 ●CM4内核中断 从内核架构图可以看到,NVIC控制器来管
[单片机]
手把手之STM32中断
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved