收藏 分销(赏)

汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc

上传人:a199****6536 文档编号:3981975 上传时间:2024-07-24 格式:DOC 页数:11 大小:31.50KB
下载 相关 举报
汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc_第1页
第1页 / 共11页
汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc_第2页
第2页 / 共11页
汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc_第3页
第3页 / 共11页
汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc_第4页
第4页 / 共11页
汇编语言:在两个数码管上实现00-99的循环显示资料讲解.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、汇编语言:在两个数码管上实现00-99的循环显示精品资料;此程序为在两个数码管上实现00-99的循环显示;设置ramDATA_IN DATA 20H;接收数据缓冲寄存器DATA_OUT DATA 21H;发送数据缓冲寄存器BIT_COUNT DATA 22H;数据位数寄存器/HOUR DATA 23H/MINITE DATA 24H/SECOND DATA 25H/MSECOND DATA 26HORG0000HLJMPINITORG000BHLJMPTIME0;定时器0中断入口 ORG 0013HLJMP KBHIT;初始化ORG0030HINIT:MOVDPTR,#4000H;HD7279

2、A的地址MOVA,#10011111B;HD7279A初始化CS、CLK、DATAMOVXDPTR,ALCALLDELAY25MS;延时后进入工作状态MOVDATA_OUT,#10100100B;HD7279A复位指令LCALLSEND;发送指令MOVA,#10011111B;设回CS为高电平MOVX DPTR,A/MOVR4,#20;定时器一个周期内的中断数MOV R2,#0MOV R3,#0MOV R4,#0MOV R5,#0/MOVMSECOND,#0/MOVSECOND,#0/MOVMINITE,#0/MOVHOUR,#0 ;数字计数器MOVR6,#0;个位寄存器MOVR7,#0;十位

3、寄存器MOVTMOD,#1;设置定时器0工作模式为方式1/MOVTH0,#3CH;设置定时器定时值/MOVTL0,#0B0HMOVTH0,#0FCH;设置定时器定时值MOVTL0,#18HSETBEA;开总中断SETBET0;开定时器0中断SETB EX1 SETBTR0 ;开始计时;主程序MAIN:MOVA,R2;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,#11001000B;下载数据且按方式1译码,找到了第1个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OU

4、T,R1;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVXDPTR,AMOVDATA_OUT,#11001001B;下载数据且按方式1译码,找到了第2个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R2;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVXDPTR,AMOVDATA_OUT,#11001010B;下载数据且按方式1译码,找到了第3个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R3;指令的数据部分,显示个位LCALL

5、SENDMOVA,#10011111BMOVXDPTR,A/LCALLDELAY1MS;显示延时 MOVA,R4;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,#11001011B;下载数据且按方式1译码,找到了第4个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R6;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVXDPTR,A/LCALLDELAY1MS;显示延时MOVDATA_OUT,#11001100B;下载数据且按方式1

6、译码,找到了第5个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R7;指令的数据部分,显示十位LCALLSENDMOVA,#10011111BMOVXDPTR,A/LCALLDELAY1MS;显示延时 MOVA,R5;把数字转换为2个BCD码MOVB,#10DIVABMOVR6,B;个位放在R6MOVR7,A;十位放在R7MOVDATA_OUT,#11001101B;下载数据且按方式1译码,找到了第6个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R6;指令的数据部分,显示个位LCALLSE

7、NDMOVA,#10011111BMOVXDPTR,A/LCALLDELAY1MS;显示延时MOVDATA_OUT,#11001110B;下载数据且按方式1译码,找到了第7个数码管LCALLSENDLCALLDELAY25;T4,指令与数据时间间隔MOVDATA_OUT,R7;指令的数据部分,显示十位LCALLSENDMOVA,#10011111BMOVXDPTR,A/LCALLDELAY1MS;显示延时LJMPMAIN;下一循环SJMP$;发送子程序SEND:CLRET0;加锁MOVBIT_COUNT,#8;无论指令还是数据,一次只发送8位MOVA,#00011111B;设CS为低电平MOV

8、XDPTR,ALCALLDELAY50;T1,从CS下降沿至CLK脉冲时间;发送循环,HD7279A采用串行方式与微处理器通讯,一次发送一位SENDLOOP:MOV A,DATA_OUT;取出发送的指令或数据MOV C,ACC.7;串行发送从高位到低位发送,故先取最高位MOV A,#00011111B;输出到DAT位MOV ACC.5,CMOVX DPTR,ASETB C ;设CLK为高电平MOV ACC.6,CMOVX DPTR,ALCALL DELAY8;T2,传送指令时CLK脉冲宽度CLR C;设CLK为低电平MOV ACC.6,CMOVX DPTR,ALCALL DELAY8;T3,字

9、节传送中CLK脉冲时间MOV A,DATA_OUT;移位待发送的指令或数据,为下一位的发送作准备RL AMOV DATA_OUT,ADJNZ BIT_COUNT,SENDLOOP;发送不到8位,继续循环MOVA,#00011111B;发送完毕,恢复DATMOVX DPTR,ASETBET0;释放锁RET;接收子程序(本程序中用不到,但在添加按键操作的时候用于读取键值)RECEIVE:CLRET0;加锁MOVBIT_COUNT,#8;接收8位数据MOVDATA_IN,#0;清空接收数据缓冲寄存器MOVA,#00111111B;设CS为低电平,同时保证DAT为高电平(输入状态)MOVXDPTR,A

10、LCALLDELAY25;T5,读键盘指令中指令与数据时间间隔;接收循环,HD7279A采用串行方式与微处理器通讯,一次接收一位RECEIVELOOP:SETBACC.6;设CS为高电平MOVXDPTR,ALCALLDELAY8;T6,输出键盘数据建立时间MOV A,DATA_IN;接收数据缓冲寄存器向左移位,准备接收一位数据,数据的高位会先发送RL AMOV DATA_IN,AMOVXA,DPTR;读取数据MOVC,ACC.5;取出数据位DATMOVA,DATA_INMOVACC.0,CMOVDATA_IN,A;数据放进接收数据缓冲寄存器MOVA,#00111111B;设CS为低电平,同时保

11、证DAT为高电平(输入状态)MOVXDPTR,ALCALLDELAY8;T7,读键盘数据是CLK脉冲宽DJNZBIT_COUNT,RECEIVELOOP;接收不到8位,继续循环MOVA,#00011111B;接收完毕,恢复DATMOVX DPTR,ASETBET0;释放锁RET;定时器0中断程序TIME0:/ DJNZR4,NEXT;定时器一个周期内中断数不够就继续计时INCR2;数字加1/MOVR4,#20;重置定时器一个周期内中断数CJNER2,#100,NEXT;数字不够100继续加1MOVR2,#0;数字到达100就清零INC R3CJNER3,#10,NEXTMOVR3,#0INC

12、R4CJNER4,#60,NEXTMOVR4,#0INC R5CJNER5,#60,NEXTMOVR5,#0NEXT:MOVTH0,#0FCH;定时器方式1中断后需要重新设置定时器定时值MOVTL0,#18HRETIKBHIT: PUSHPSWPUSH ACC PUSH DPHPUSH DPL PUSH DATA_OUTPUSH BIT_COUNTMOV A,R0PUSH ACCMOV A,R1PUSH ACC MOV DATA_OUT,#00010101B LCALL SENDLCALL DELAY25LCALL RECEIVEMOV A,DATA_INJZ STARTDEC ADEC AJ

13、Z STOPDEC AJZ CLEARSJMP OUTSTART: SETB TR0 SJMP OUTSTOP: CLR TR0 SJMP OUTCLEAR: MOVR2,#0MOVR3,#0MOVR4,#0MOVR5,#0OUT: POP ACC MOV R1,APOP ACCMOV R0,APOP BIT_COUNT POP DATA_OUTPOP DPLPOP DPHPOP ACCPOPPSWRETI ;延时25ms子程序DELAY25MS:MOVR0,#49D11:MOVR1,#253NOPD12:DJNZR1,D12DJNZR0,D11RET;延时50s子程序DELAY50:MOVR0,#23NOPD21:DJNZR0,D21RET;延时25s子程序DELAY25:MOVR0,#11D31:DJNZR0,D31RET;延时8s子程序DELAY8:MOVR0,#2NOPD41:DJNZR0,D41RET;延时1ms子程序DELAY1MS:MOVR0,#2NOPD51:MOVR1,#247NOPD52:DJNZR1,D52DJNZR0,D51RETEND仅供学习与交流,如有侵权请联系网站删除 谢谢11

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服