资源描述:
《at89s51单片机试验及实践教程之拉幕式数码显示技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、AT89S51单片机试验及实践教程之拉幕式数码显示技术
2、第11.实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。2.电路原理图500)this.style.ouseg(this)">3.系统板上硬件连线 1.把“单片机系统”区域中的P0.0/AD0-P0.7/
3、AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; 2.把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; 3.把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上;4.程序设计方法 1.动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示,因此,要显示8位的数据,必须经过让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,我必须每隔1ms,就得刷新一个数码管。而这刷新时间我们采
4、用单片机的定时/计数器T0来控制,每定时1ms对数码管刷新一次,T0采用方式2。 2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。5.程序框图主程序框图500)this.style.ouseg(this)">中断服务程序500)this.style.ouseg(this)">6.汇编源程序DISPBUFEQU30HDISPTEQU38HDISPBITEQU39HT1TAEQU3AHT1TBEQU3BHTEQU3CHORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVDIS
5、PT,#8MOVA,#10MOVR1,#DISPBUFLP:MOVR1,AINCR1DJNZDISPT,LPMOVDISPBIT,#00HMOVT1TA,#00HMOVT1TB,#00HMOVT,#00HMOVTMOD,#01HMOVTH0,#(65536-1000)/256MOVTL0,#(65536-1000)MOD256SETBTR0SETBET0SETBEASJMP$INT_T0:MOVTH0,#(65536-1000)/256MOVTL0,#(65536-1000)MOD256MOVA,DISPBITADDA,#DISPBUFMOVR0
6、,AMOVA,R0MOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,AMOVA,P1ANLA,#0F8HADDA,DISPBITMOVP1,AINCDISPBITMOVA,DISPBITCJNEA,#08H,NEXTMOVDISPBIT,#00HNEXT:INCT1TAMOVA,T1TACJNEA,#50,LL1MOVT1TA,#00HINCT1TBMOVA,T1TBCJNEA,#8,LL1MOVT1TB,#00HINCTMOVA,TCJNEA,#9,LLXMOVT,#00HMOVA,TLLX:CJNEA,#01H,NEX1MOV3
7、0H,#8LL1:LJMPDONENEX1:CJNEA,#02H,NEX2MOV31H,#8MOV30H,#8LJMPDONENEX2:CJNEA,#03H,NEX3MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX3:CJNEA,#04H,NEX4MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX4:CJNEA,#05H,NEX5MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX5:CJNEA,#06H,NEX6M
8、OV35H,#8MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX6:CJNEA,#07H,NEX7MOV36H,#8MOV35H,#8MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX7:CJNEA,#08H,NEX8MOV37H,#8MOV36H,#8MOV35H,#8MOV34H,#8MOV33H,#8MOV32H,#8MOV31H,#8MOV30H,#8LJMPDONENEX8:CJNEA,#00H,DONEMOV3
9、7H,#10MOV36H,#10MOV35H,#10MOV34H,#10MOV33H,#10MOV32H,#10MOV31H,#10MO