任务引入
在项目四任务一的拓展任务中,我们要显示2位数码管,需要单片机的2个I/O口来支撑,这对于单片机来说,是不适宜的。但我们看到的数字抢答器、停车位显示等它们是怎样显示不同数据而又节约输出口的呢?这一节我们学习数码管动态显示方法!
任务目标
知识目标:1.进一步掌握数码管的结构和工作原理。
2.理解单片机控制2位数码管动态显示原理。
3.能独立编写单片机控制2位数码管的流程图及程序。
4.能掌握编程所需的指令的意义。
技能目标:1.能独立完成2位数码管动态显示仿真电路的绘制。
2.会使用Keil和Proteus两大软件进行仿真调试。
2.培养学生团队意识和集体荣誉感。
任务描述
1.利用Proteus软件绘制2位数码管动态显示仿真电路,如图4-13所示。
图4-13 2位数码管动态显示仿真电路
2.通过编写程序仿真调试,完成单片机控制2位数码管动态显示4、1字样,如图4-14所示。
图4-14 2位数码管动态显示4、1
任务实施
一、任务分析
数码管动态显示数据,要求通过一个并口分别将不同显示字形码送到不同数码管中进行显示,通过控制数码管公共端来控制数码管显示状态。通过硬件图我们可以知道,字形码不管4或1都是通过P2口输出,信号都会到2个数码管,让哪一个数码管点亮就由P1.0和P1.1控制。如果我们让左数码管显示4字样,右数码管显示1字样,就应该把4的字形码送到P2口,同时开左数码管的控制端P1.0;然后把1的字形码送到P2口,同时开右数码管的控制端P1.1。为了使显示稳定,在控制过程中注意显示4,1的字形码时应采用短暂延时和采用循环工作状态。
二、绘制仿真电路图
1)2位数码管动态显示仿真电路元器件,如表4-4所示。
表4-4 2位数码管动态显示仿真电路元器件
2)绘制单片机最小系统单元,如图4-15所示。
图4-15 单片机最小系统单元
3)绘制单片机2位数码管动态显示单元,如图4-16所示。
图4-16 2位数码管动态显示单元
三、画程序流程图
根据2位数码管动态显示任务画出程序流程图,如图4-17所示。
四、编写程序
根据流程图和相关指令编写程序如下。(www.daowen.com)
图4-17 程序流程图
五、仿真调试
1)打开Keil软件,输入调试程序并编译生成hex文件。
2)打开2位数码管动态显示仿真电路,导入hex文件调试。
知识链接
一、相关指令学习
将一个数(8或16位)或汇编符号赋值给所定义的字符名。例如:
EQU伪指令中的字符名称必须先赋值后使用,故该语句通常放在源程序的开头。
2.位地址赋值伪指令:字符名称BIT位地址
该指令把BIT右边的位地址赋给左边的字符名称。被定义的位地址在源程序中可用符号名称来表示。但并不是所有的汇编程序都可以识别BIT指令,不识别时可用EQU指令来定义位地址变量。例如:
二、相关硬件学习
所谓动态显示就是一位一位地轮流点亮各位显示器,对于显示器的每一位而言,每隔一段时间点亮一次,在同一时刻只有一位数码管在工作。而利用人们的视觉暂停效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。控制每一位数码管是否工作可以控制它们的公共端COM。
1.PNP型晶体管9012
在设计动态显示电路中,共阳极数码管工作公共端需要高电平,在单片机输出控制中信号常常使用低电平,在转换中我们采用9012晶体管进行转换控制。
9012是非常常见的晶体管,其外形及图形符号如图4-18所示。在收音机以及各种放大电路中经常看到它,应用范围很广。
图4-18 9012外形及图形符号
2.数码管动态显示设计
2位数码管动态显示电路,如图4-19所示。
在Proteus仿真中,将多位动态显示电路集成化为一起,如图4-20所示为2位动态显示共阳数码管。C1、C2为位选,D0~D6为段选。
图4-19 2位数码管动态显示电路
图4-20 Proteus中2位动态显示共阳数码管
任务拓展
根据已学知识完成下列任务并调试:
在Protues中通过按键控制8位数码管的显示和停止。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。