《88点阵数字滚动显示.docx》由会员分享,可在线阅读,更多相关《88点阵数字滚动显示.docx(6页珍藏版)》请在优知文库上搜索。
1、项目一8x8点阵数字滚动显示1.ED点阵的元件符号及内部结构图:对应编码:OOH,00H,OOH,00H,00H,OOH,OOH,OOH;NU1.1.00H,00H,3EH,41H,41H,41H,3EH,OOH;000H,00H,00H,00H,21H,TFH,01H,OOH;100H,00H,27H,45H,45H,45H,39H,OOH;200H,00H,22H,49H,49凡49凡36HtOOH;300H,00H,OCH,14H,24H,7FH,04H,OOH;400H,00H,72H,51H,51H,514EH,OOH;500H,00H,3EH,49H,49H,49H,26H,OOH
2、;600H,00H,40H,40H,40H,4FH,70H,OOH;700H,00H,36H,49H,49H,49H,36H,OOH;800H,00H,32H,49H,49H,49H,3EH,OOH;9OOH,00H,00H,OOH,OOH,00H,00H,OOH;NU1.1.硬件设计原理:单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。将要显示的字符码表编入单片机的程序中,由单片机限制时序输出相应的扫描数据和字符数据。行码数据由单片机Po口输出,经一个双向总线收发器限制传输方向后进入1.ED点阵,点亮相应的发光二极管。列码扫描信号由P3口输出后,干脆
3、输入1.ED点阵限制8列的扫描,每列选通时间为5ms,看上去就像8列同时显示的效果一样。加上行中相应的1.ED灯被点亮,就能看到显示的字符了。三、源程序代码,%PR_NCT=31H单元;行码NUMB=32H单元R_CNTEQU31HNUMBEQU32HTCXXJNTEQU33HORG00H1.JMPSTARTORGOBH1.JMPINT_TOORG30HSTART:;拉幕计数值TeOUNT=33H单元;程序起始地址;中断入口地址;子程序入口地址MOVR0,#00HMOVR_CNT,#00HMOVNUMB,#00HMOVTCOUNT,#00HMOVTMOD,#01H;主程序起先;每列的行码起始序
4、号置0;列:初值00送到31H单元:行:初值00送到32H单元;计数单元初值置0;计数定时器选用16位的计数器,工作在方式1MOVTHO,#(65536-5000)/256;定时5ms0定时器高位初值为236MOVT1.O,#(65536-5000)MOD256;定时器低位初值为120SETBTROMOVIE,#82HSJMPSINTTO:;启动C/T的定时器TO;CPU开中断;中断等待MOVTHO,#(65536-5000)/256;定时5ms,设置定时器TO高位初值为236MOVT1.O,#(65536-5000)/256;定时器TO低位初值为120;读列码表首地址,放入DPTR;读列码偏
5、移地址,放入A中:基址变址寻址将寻到的列码数据放入中;将列码数据送P3U输出;装入显示数据的地址;显示幕次的偏移地址;寻到数据的行码地址;将该地址值输出;行福地101MOVDPTR,#TABMOVA,R_CNTMOVCA,A+DPTRMOVP3,AMOVDPTR,#NUBMOVA,NUMBMOVCA,A+DPTRMOVPO,AINCNUMBNEXTl:INCR_CNTMOVA,R_OTCJNEA,#8,NEXT2MOVR,df,#00HMOVNUMB,RONEXT2:INCTCOUNTMOVA,TCOUNTCJNEA,#40,NEXT4MOVTCOUNT,#00HINCROCJNERO,#88
6、,Nexl3MOVR0,#00HNEXT3:MOVNUMB,RONEXT4:RETI;扫描列码地址加1;把列地址放入A中;A不等于8,转子程序NEXT2,否则往下执行;就把列码置0;行码地址送存储单元格中;拉幕计数序号加1;将幕次序号送A中:此序号不等于40转Next*否则往卜执行;把拉幕时序归0;行码起始地JS加1;行码H加次数不满11字符X8行/字符=88行就转:不然就把行码置0NEXT3;送新的一幕行码起始位给RO;中断返回;列码码表TAB:7FH:列扫描从右向左OOH,OOH,OOH,OOH,OOH,00H,OOH,OOH,3EH,41H,41H,41H,OOH,OOH,OOH,OOH
7、,21H,7FH,OOH,OOH,27H,45H,45H,45H,OOH,OOH,22H.49H,49H,49H,OOH,OOH,OCH114H,24H,7FH,OOH,OOH,72H,51H,51H,51H,OOH,OOH,3EH,49H,49H,49H,OOH,OOH,如H,40H,40H,4FH,OOH,OOH,36H,49H,49H,49H,OOH,OOH,32H,49H,49H,49H,OOH,OOH,OOH,00H,OOH,00H,OFEH,OFDH,OFBH,0F7H,OEFH,;行码码表,字符数据DBkDBDBDBDBDBDBDBDBDBDBDBDB)B阻)H)H)H)H)H)
8、H)H)H)H出)HOO0O0O0O0O0O0O0O0O0O00OO0丽)OHEH1H9H6HMH1EH6HOH6H囤三O03033842733。;Nu1.1.;0;1;2;3;4;5;6;7;8QNU1.1.:结束汇编项目一8X8点阵数字转动显示一、设计要求本次设计采纳单片机AT89C51驱动8X8点阵1.ED显示屏,轮番显示09的数字。显示方式采纳自左向左拉幕式显示。二、硬件电路介绍1.AT89C51单片机:PO口:PO口为个8位漏级开路双向1/0口。当Pl口的管脚第一次写1时,被定义为高阻输入.PO口能够y*6/l*tM*(/IAOP1.JZtWIIW.3/IiDJIPV.4/UOdI5
9、/1*05Wn7/wna.vF?ATHCSI用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FlASH编程时,PO口作为原码输入口,当w,|P)j(,.qHWPlPV,j11*ux*ul3!冉埋UJIW1.EUt/HuCE.7(t5K.tuun.5;!)F2.4(121P1.WU:IJPl.J/U10)AglP20/GUIIFIASH进行校验时,PO输出原码,此时PO外部必需被拉高。Pl口:Pl口是一个内部供应上拉电阻的8位双向I/O口。Pl口管脚写入1后,被内部上拉为高,可用作输入,Bl口被外部下拉为低电平常,将输出电流,这是由于内部上拉的原因。在F1.ASH编程和校验时,Pl口
10、作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部上拉电阻拉高,P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P3口:P3口管脚是8个带内部上拉电阻的双向1/0口。当P3写入“1”后,它们被内部上拉为高电平,并用作输入。作为输出,由于外部下拉为低电平,它将愉出电流。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平常问。AT89C51单片机的外形及引脚排列说明如后页图示。AT89C51单片机的外形及引脚排列如右图。2. 741.S373芯片:当三态允许限制端OE为低电平常,0
11、0、07为正常逻辑状态,可用来驱动负我或总线。当OE为高电平常,0007呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端1.E为高电平常,0随数据D而变。当1.E为低电平常,0被锁存在已建立的数据电平.D0D7数据输入端OE三态允许限制端(低电平有效)1.E锁存允许端0007输出端3. respack-8件:排阻器件,起上拉电阻的作用。4. 8X81.ED点阵8X81.ED点阵可作为信息输出器件。它是由发光:极管阵列按8排8列的方式排列起来,由X和y引脚输入的电信号对其进行选通,使不同位置的二极管被点亮,相应地显示出文字或图案等信息来。四、硬件设计仿真:五
12、、设计调试过程及问题在PC机上运行Proteus软件,将电路原理图中的元件找出并相应地连接好线:在Keil汇编软件中输入设计的程序,编译通过后生成十六进制文件,并再把该文件卜载到虚拟的AT89C51单片机内。因为单片机的RST引脚经电容接到了Vcc电源上,同时并联接地,所以系统可以上电后自动执行一次复位操作。问题一第一次连接硬件电路,由于没有接741.S373双向总线收发器,所以在1.ED点阵和单片机I/O口之间就干脆连接r,结果1.ED显示屏无法显示单片机输出的结果,全部的1.ED灯都不亮。看来干脆跳线时单片机I/O口输出的信号不足以驱动8乘8点阵工作。当8051单片机的PO口输出八位低地址时,必需接入741.S373作地址锁存器。问题二仿真时会看到1.ED点阵中有字显示的地方(前景)灯是灭的,无字显示的地方(背景)灯是亮的,这出现“阴文”显示状态。产生这种显示的缘由是因为8X8点阵1.ED引脚接反,应当正端接P3,负端接P0。即可看到正确的“阳文”方式显示出的数字。问题三仿真时出现数字是反着的,产生这种显示的缘由是因为点阵的列码扫描信号线AH及单片机的P3.0P3.7口相应的依次接反了,把对应的接线依次倒过来,才正确。