汇编语言:在两个数码管上实现00-99的循环显示

上传人:枕*** 文档编号:125364157 上传时间:2022-07-26 格式:DOCX 页数:15 大小:13.35KB
收藏 版权申诉 举报 下载
汇编语言:在两个数码管上实现00-99的循环显示_第1页
第1页 / 共15页
汇编语言:在两个数码管上实现00-99的循环显示_第2页
第2页 / 共15页
汇编语言:在两个数码管上实现00-99的循环显示_第3页
第3页 / 共15页
资源描述:

《汇编语言:在两个数码管上实现00-99的循环显示》由会员分享,可在线阅读,更多相关《汇编语言:在两个数码管上实现00-99的循环显示(15页珍藏版)》请在装配图网上搜索。

1、;此程序为在两个数码管上实现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;HD7279A的地址MOVA,#10011111B;HD7279A初

2、始化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;十位寄存器MOVTMOD,#1;设立定期器0工作模式为方式1

3、/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_OUT,R1;指令的数据部分,显示个位LCALLSENDMO

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

5、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译码,找到了第5个数码管LCALLSENDLCALLDE

6、LAY25;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;指令的数据部分,显示个位LCALLSENDMOVA,#10011111BMOVXDPTR,A/

7、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为低电平MOVXDPTR,ALCALLDELAY50;T1,从CS下降

8、沿至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,字节传送中CLK脉冲时间MOV A,DATA_OUT;移位

9、待发送的指令或数据,为下一位的发送作准备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,ALCALLDELAY25;T5,读键盘指令中指令与数据时

10、间间隔;接受循环,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为低电平,同步保证DAT为高电平(输入状态)MOVXDPTR,ALCAL

11、LDELAY8;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 R4CJNER4,#60,NEXTMOVR4,#0INC

12、 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 AJZ STOPDEC AJZ CLEARSJMP OUTS

13、TART: 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

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!