资源描述:
《汇编语言:在两个数码管上实现00-99的循环显示.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、;此程序为在两个数码管上实现00-99的循环显示;设置ramDATA_INDATA20H;接收数据缓冲寄存器DATA_OUTDATA21H;发送数据缓冲寄存器BIT_COUNTDATA22H;数据位数寄存器//HOURDATA23H//MINITEDATA24H//SECONDDATA25H//MSECONDDATA26HORG0000HLJMPINITORG000BHLJMPTIME0;定时器0中断入口ORG0013HLJMPKBHIT;初始化ORG0030HINIT:MOVDPTR,#4000H;HD7279A的
2、地址MOVA,#10011111B;HD7279A初始化CS、CLK、DATAMOVX@DPTR,ALCALLDELAY25MS;延时后进入工作状态MOVDATA_OUT,#10100100B;HD7279A复位指令LCALLSEND;发送指令MOVA,#10011111B;设回CS为高电平MOVX@DPTR,A//MOVR4,#20;定时器一个周期内的中断数MOVR2,#0MOVR3,#0MOVR4,#0MOVR5,#0//MOVMSECOND,#0//MOVSECOND,#0//MOVMINITE,#0//MOV
3、HOUR,#0;数字计数器MOVR6,#0;个位寄存器MOVR7,#0;十位寄存器MOVTMOD,#1;设置定时器0工作模式为方式1//MOVTH0,#3CH;设置定时器定时值//MOVTL0,#0B0HMOVTH0,#0FCH;设置定时器定时值MOVTL0,#18HSETBEA;开总中断SETBET0;开定时器0中断SETBEX1SETBTR0;开始计时;主程序MAIN:MOVA,R2;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,
4、#11001000B;下载数据且按方式1译码,找到了第1个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R1;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVX@DPTR,AMOVDATA_OUT,#11001001B;下载数据且按方式1译码,找到了第2个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R2;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVX
5、@DPTR,AMOVDATA_OUT,#11001010B;下载数据且按方式1译码,找到了第3个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R3;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVX@DPTR,A//LCALLDELAY1MS;显示延时MOVA,R4;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,#11001011B;下载数据且按方式1译
6、码,找到了第4个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R6;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVX@DPTR,A//LCALLDELAY1MS;显示延时MOVDATA_OUT,#11001100B;下载数据且按方式1译码,找到了第5个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R7;指令的数据部分,显示十位LCALLSENDMOVA,#10011111BMOVX@
7、DPTR,A//LCALLDELAY1MS;显示延时MOVA,R5;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,#11001101B;下载数据且按方式1译码,找到了第6个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R6;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVX@DPTR,A//LCALLDELAY1MS;显示延时MOVDATA_OUT,#1
8、1001110B;下载数据且按方式1译码,找到了第7个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R7;指令的数据部分,显示十位LCALLSENDMOVA,#10011111BMOVX@DPTR,A//LCALLDELAY1MS;显示延时LJMPMAIN;下一循环SJMP$;发送子程序SEN