单片机应用技术——汇编+C51项目教程教学教程姚存治主编项目2单片机控制的数码管电子时钟的设计和制作演示文稿.ppt

单片机应用技术——汇编+C51项目教程教学教程姚存治主编项目2单片机控制的数码管电子时钟的设计和制作演示文稿.ppt

  1. 1、本文档共184页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例如,按下图(a)连接时,要要显示“0”,需要a-dp分别也就是在I/O口应输3FH。换一种连接方式:要显示“0”,需要a-dp分别也就是在I/O口应输FCH。可见,送出的内容与I/O口和a-dp的连接方式有关,连接方式不一样要显示同样的字符送出的内容也不一样。 编码格式:LED数码管的a-dp和I/O口的连接方式。 字符编码:某一个字符所对应的IO口的输出编码。 常用下面的格式来描述编码格式: 上一页 下一页 返回 dp g f e d c b a 2.6.2 LED显示方式 在实际使用时,往往要用几个显示块实现多位显示。在构成多位LED显示时,点亮显示器有静态和动态两种方式。 1.LED静态显示方式 LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(a~dP)分别与一8位的I/O相连。下图所示为一个四位静态LED显示器电路。该电路各位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。由于各位分别由一个8位输出口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。 上一页 下一页 返回 上一页 下一页 返回 特点:占用I/O多 编程简单 亮度高 2.LED动态显示方式 上一页 下一页 返回 例如,要显示,则可按如右表顺序分时送出段选码和位选码。 动态显示的优点:I/O口的数量少。 缺点:是数码管亮度不高,由于内部的二极管导通后还没达到最亮的时候就已经关闭了,因此动态显示要增加驱动电路,以提高亮度。 编程控制相对复杂 上一页 下一页 返回 时间 段选线I/O(1) 位选线I/O(2) 显示位数 显示内容 1 5BH FEH 1 2 2 3FH FDH 2 0 3 06H FBH 3 1 4 66H F8H 4 4 5 3FH EFH 5 0 6 66H DFH 6 4 7 3FH BFH 7 0 8 7DH 7FH 8 6 2.6.3 MCS-51和8段数码管显示器的接口设计 下图中的电路只要加上单片机和驱动,即可实现完整的硬件电路。图中,用单片机P1口提供段选,用P2口提供位选。同时,为了提高数码管亮度,在段线和位线都加了反相驱动。下面以显示为例,来讲述动态扫描程序的编制。上表中的段选码和位选码都要取反一下,因为这里有反相驱动。 上一页 下一页 返回 对应的汇编源程序如下: ORG 0000H START: MOV R1,#00H MOV R2,#01H MOV R3,#08H MOV DPTR,#TAB SCAN: MOV A,R1 MOVC A,@A+DPTR MOV P1,A MOV A,R2 MOV P2,A ACALL DELY1MS MOV P2,#00H 上一页 下一页 返回 INC R1 RL A MOV R2,A DJNZ R3,SCAN SJMP START DELY1MS: MOV R7,#01H D0: MOV R5,#10H D1: MOV R4,#10H D2: DJNZ R4,$ D3: DJNZ R5,D1 DJNZ R7, D0 RET TAB:DB 0A4H,0C0H,0F9H,99H,0C0H,99H,0C0H,82H 上一页 下一页 返回 对应的C51程序为: #includeAT89X51.h typedef unsigned char u8; u8 code Numbercode[]={0xA4,0xC0,0xF9,0x99,0xC0,0x99,0xC0,0x82}; /*延时1ms*/ void Delay() { u8 i,j; for(i=0;i0;i--) for(j=125;j0;j--); } /*主函数*/ 上一页 下一页 返回 void main() { while(1) { u8 i=0; P3=0x01; for(i=0;i8;i++) { P2=Numbercode[i]; P3=P3; Delay(); P2=0xFF; P3=P31; } } } 上一页 下一页 返回 任务2.7 8位数字时钟的设计与仿真 2.7.1 硬件电路设计 2.7.2 程序编制 2.7.3 综合仿真调试 上一页 下一页 返回 2.7.1 硬件电路设计 上一页 下一页 返回 图中用74HC245来做位驱动,它是8位双向总线驱动器,起信号功率放大作用。引脚 为输入输出端口方向切换,高电平时信号由A端输入,B端输出,低电平时则相反。为使能端,该引脚为1时,A/B端的信号将不

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档