收藏 分享(赏)

21.拉幕式数码显示技术.doc

上传人:hwpkd79526 文档编号:6750615 上传时间:2019-04-22 格式:DOC 页数:7 大小:108.50KB
下载 相关 举报
21.拉幕式数码显示技术.doc_第1页
第1页 / 共7页
21.拉幕式数码显示技术.doc_第2页
第2页 / 共7页
21.拉幕式数码显示技术.doc_第3页
第3页 / 共7页
21.拉幕式数码显示技术.doc_第4页
第4页 / 共7页
21.拉幕式数码显示技术.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、第四章 实验及实践课题(21) 拉幕式数码显示技术1. 实验任务 用 AT89S51 单片机的 P0.0/AD0P0.7/AD7 端口接数码管的 ah 端,8 位数码管的 S1S8 通过74LS138 译码器的 Y0Y7 来控制选通每个数码管的位选端。AT89S51 单片机的 P1.0P1.2 控制74LS138 的 A,B,C 端子。在 8 位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。2 电路原理图 图 4.21.13 系统板上硬件连线 (1 把“单片机系统”区域中的 P0.0/AD0P0.7/AD7 用 8 芯排线连接到“动态数码显示”区域中的 ah 端口

2、上;(2 把“三八译码模块”区域中的 Y0Y7 用 8 芯排线连接到“动态数码显示”区域中的 S1S8端口上;(3 把“单片机系统”区域中的 P1.0P1.2 端口用 3 根导线连接到“三八译码模块”区域中的A、B、C“端口上;4 程序设计方法 (1 动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示,因此,要显示 8 位的数据,必须经过让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在 1ms 到 4ms 之间,所以为了保证正确显示,必须每隔 1ms,就得刷新一个数码管。而这刷新时间我们采用单片机的定时/计数器 T0 来控制,每定时 1ms 对数码管刷新一次,T0

3、采用方式 2。(2 在进行数码显示的时候,要对显示单元开辟 8 个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。5 程序框图 主程序框图中断服务程序6 汇编源程序 DISPBUF EQU 30H DISPCNT EQU 38H DISPBIT EQU 39H T1CNTA EQU 3AH T1CNTB EQU 3BH CNT EQU 3CH ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV DISPCNT,#8 MOV R1,#DISPBUF ;直接寻址单元送寄存器LP: MOV A,#10 ;改:从在 MOV R1,#DISPBUF 上面

4、调到其下面MOV R1,A ;R1 为内部 RAM 单元INC R1 DJNZ DISPCNT,LP ;DISPCNT 减 1 不为零转移DISPBUF 10 10 10 10 10 10 10 1030H 30H 31H 32H 33H 34H 35H 36H 37HDISPCNT 8 7 6 5 4 3 2 1MOV DISPBIT,#00H MOV T1CNTA,#00H MOV T1CNTB,#00H MOV CNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0

5、 SETB ET0 SETB EA SJMP $ INT_T0: MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 MOV A, #0FFH ;关闭所有显示(见 问题.txt )MOV P1,AMOV A,DISPBIT ADD A,#DISPBUF MOV R0,A MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,P1 ANL A,#0F8H ADD A,DISPBIT MOV P1,A INC DISPBIT MOV A,DISPBIT CJNE A,#08H,NE

6、XT MOV DISPBIT,#00H NEXT: INC T1CNTA MOV A,T1CNTA CJNE A,#50,LL1 MOV T1CNTA,#00H INC T1CNTB MOV A,T1CNTB CJNE A,#8,LL1 MOV T1CNTB,#00H INC CNT MOV A,CNT CJNE A,#9,LLX MOV CNT,#00H MOV A,CNT LLX: CJNE A,#01H,NEX1 MOV 30H,#1LL1: LJMP DONE NEX1: CJNE A,#02H,NEX2 MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX2: CJ

7、NE A,#03H,NEX3 MOV 32H,#3MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX3: CJNE A,#04H,NEX4 MOV 33H,#4 MOV 32H,#3MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX4: CJNE A,#05H,NEX5 MOV 34H,#5 MOV 33H,#4 MOV 32H,#3MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX5: CJNE A,#06H,NEX6 MOV 35H,#6 MOV 34H,#5 MOV 33H,#4 MOV 32H,#3MOV 31H,#2 MOV

8、 30H,#1 LJMP DONE NEX6: CJNE A,#07H,NEX7 MOV 36H,#7 MOV 35H,#6 MOV 34H,#5 MOV 33H,#4 MOV 32H,#3MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX7: CJNE A,#08H,NEX8 MOV 37H,#8 MOV 36H,#7 MOV 35H,#6 MOV 34H,#5 MOV 33H,#4 MOV 32H,#3MOV 31H,#2 MOV 30H,#1 LJMP DONE NEX8: CJNE A,#00H,DONE MOV 37H,#10 MOV 36H,#10 MOV 35

9、H,#10 MOV 34H,#10 MOV 33H,#10 MOV 32H,#10 MOV 31H,#10 MOV 30H,#10 LL: LJMP DONE DONE: RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H END 7 C 语言源程序 #include unsigned char code dispcode=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00; unsigned char d

10、ispbitcode=0xf8,0xf9,0xfa,0xfb, 0xfc,0xfd,0xfe,0xff; /07 发送到 P1.01.2 unsigned char dispbuf8=16,16,16,16,16,16,16,16; unsigned char dispbitcnt; unsigned int t4mscnt; /每个数码管显示的时间大约 4ms 原文为 unsigned int t02scnt; unsigned char tmscnt; /每隔 1ms,就刷新一个数码管 原文为 unsigned char t5mscnt;unsigned char u; unsigned

11、char i; void main(void) TMOD=0x02; TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1); void t0(void) interrupt 1 using 0 tmscnt+; if(tmscnt=4) tmscnt=0; P1=0xff; /关闭所有显示P0=dispcodedispbufdispbitcnt; P1=dispbitcodedispbitcnt; dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; T4mscnt+; if(t4mscnt=1600) t4mcnt=0; u+; if(u=9) u=0; for(i=0;i8;i+) dispbufi=16; ;无显示 for(i=0;iu;i+) dispbufi=i+1; ;原文 dispbufi=8;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报