数码管动态显示汇编程序例子.doc_第1页
数码管动态显示汇编程序例子.doc_第2页
数码管动态显示汇编程序例子.doc_第3页
数码管动态显示汇编程序例子.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;数码管动态显示汇编程序例子,显示12(时)38(分) H10 EQU 65H H1 EQU 66H M10 EQU 67H M1 EQU 68H SHOUR EQU 69H SMIN EQU 6AH DISH10 EQU 6FH DISH1 EQU 70H DISM10 EQU 71H DISM1 EQU 72H MEMA EQU 75H MEMB EQU 79HORG 0000H AJMP STARORG 0030H;数码管数据表格TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H DB 90H,88H,83H,0C6H,0A1H,86H,8EH ;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F ORG 0050HSTAR: MOV SHOUR,#12; 设为12时 MOV SMIN,#38; 设为38分 MOV MEMA,#0 MOV MEMB,#0 MOV SP,#30H MOV PSW,#00H ;#MAIN: MOV SP,#30H MOV PSW,#00H MOV MEMA,SHOUR MOV MEMB,SMIN ACALL TLED; 把要显示的数转换成数码管代码 ACALL DISPLAY; 显示小时,分钟 MOV P0,#0FFH MOV P1,#0FFH AJMP MAIN;# ; 显示小时,分钟 DISPLAY:MOV P0,DISH10 MOV P1,#11111110B ACALL D1MS MOV P0,DISH1 MOV P1,#11111101B ACALL D1MS MOV P0,DISM10 MOV P1,#11111011B ACALL D1MS MOV P0,DISM1 MOV P1,#11110111B ACALL D1MS RET;# ; 把要显示的数转换成数码管代码TLED: MOV P0,#0FFH MOV A,MEMA MOV B,#10 DIV AB MOV H10,A MOV H1,B MOV A,MEMB MOV B,#10 DIV AB MOV M10,A MOV M1,B MOV A,H10 MOV DPTR,#TAB MOVC A,A+DPTR MOV DISH10,A MOV A,H1 MOV DPTR,#TAB MOVC A,A+DPTR MOV DISH1,A MOV A,M10 MOV DPTR,#TAB MOVC A,A+DPTR MOV DISM10,A MOV A,M1 MOV DPTR,#TAB MOVC A,A+DPTR MOV DISM1,A RET;#;延时D1MS: MOV R7,#0AHLOOP1: MOV R6,#32HLOOP2: DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET用AT89C51实验板的两位数码管显示0099依次循环的汇编语言程序a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp equ 22h ;计数器数值存放内存位置 star: mov temp,#0 ;初始化计数器,从0开始stlop: acall display;调用显示子程序inc temp;对计数器加1mov a,tempcjne a,#100,next ;判断计数器是否满100?mov temp,#0;满100就清零重新开始next: ljmp stlop;不满就循环执行;显示子程序display: mov a,temp ;将temp中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ;取个位数MOVC A,A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示acall d1ms ;显示162微秒setb p2.7;关闭个位显示,防止鬼影mov a,b_bit ;取十位数MOVC A,A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示acall d1ms ;显示162微秒setb p2.6;关闭十位显示,防止鬼影djnz r1,dplop ;循环执行250次djnz r0,dpl1 ;循环执行250X4=1000次ret;2+2X80=162微秒,延时按12MHZ计算D1MS: MOV R7,#80DJNZ R7,$RET;实验板上的7段数码管09数字的共阴显示代码numtab: DB 0CFH,03H,5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论