单片机简易计算器汇编程序.docx
- 文档编号:26153722
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:15.54KB
单片机简易计算器汇编程序.docx
《单片机简易计算器汇编程序.docx》由会员分享,可在线阅读,更多相关《单片机简易计算器汇编程序.docx(15页珍藏版)》请在冰豆网上搜索。
单片机简易计算器汇编程序
NAMET11单片机--简易计算器汇编程序
;将键盘的KA10~KA12接8259的KA0~KA2;RL10~RL17接8255A的RL0~RL7;T118279键盘显示接口实验二
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVDPTR,#00CFE9H;8279命令字
MOVA,#0D1H;清显示
MOVX@DPTR,A
LOOP1:
MOVXA,@DPTR
ANLA,#0FH
JZLOOP1;有键按下?
没有则循环等待
MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR1,A;保存键值加个F
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#80H;选中LED1
MOVX@DPTR,A
MOVA,R1
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
LOOP2:
MOVXA,@DPTR;输入显示符号
ANLA,#0FH
JZLOOP2;有键按下?
没有则循环等待
MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR2,A;保存键值
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#81H;选中LED2
MOVX@DPTR,A
MOVA,R2
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
LOOP3:
MOVXA,@DPTR;第二个数
ANLA,#0FH
JZLOOP3;有键按下?
没有则循环等待
MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR3,A;保存键值
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#82H;选中LED3
MOVX@DPTR,A
MOVA,R3
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
LOOP4:
MOVXA,@DPTR;====
ANLA,#0FH
JZLOOP4;有键按下?
没有则循环等待
MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR4,A;保存键值
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#83H;选中LED4
MOVX@DPTR,A
MOVA,R4
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
CJNER4,#0CEH,LOOP5;判断第四个输入是不是等于号jia:
CJNER2,#0cAH,jian
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R3
ANLA,#0FH
MOVR3,A
MOVA,R1
ADDA,R3
LJMPXIANSHI
jian:
CJNER2,#0cBH,cheng
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R3
ANLA,#0FH
MOVR3,A
MOVA,R1
SUBBA,R3
LJMPXIANSHI
cheng:
CJNER2,#0CcH,CHU
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R3
ANLA,#0FH
MOVR3,A
MOVA,R1
MOVB,R3
MULAB
LJMPXIANSHI
CHU:
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R3
ANLA,#0FH
MOVR3,A
MOVA,R1
MOVB,R3
DIVAB
LJMPXIANSHI;第四个等于号运算
LOOP5:
MOVXA,@DPTR;第二个数
ANLA,#0FH
JZLOOP5;有键按下?
没有则循环等待
MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR5,A;保存键值
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#84H;选中LED5
MOVX@DPTR,A
MOVA,R5
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
CJNER5,#0CEH,LOOP6;panduandi五个是等于号
MOVA,R4
ANLA,#0FH
MOVR4,A
MOVA,R1
ANLA,#0FH
MOVR1,A
CJNER2,#0CAH,TIAO2;人为地忽略单位数减双位数
MOVA,R3;加法,第二个是符号
ANLA,#0FH
MOVR3,A
MOVB,#0AH
MULAB
ADDA,R4
ADDCA,R1
LJMPXIANSHI
TIAO2:
CJNER2,#0CCH,TIAO4;人为地忽略分数
MOVA,R3;乘法,第二个是符号
ANLA,#0FH
MOVR3,A
MOVB,#0AH
MULAB
ADDA,R4
MOVB,R1
MULAB
LJMPXIANSHI
TIAO4:
CJNER3,#0CAH,TIAO5;加法,第三个是符号MOVA,R2
ANLA,#0FH
MOVR2,A
MOVB,#0AH
MOVA,R1
MULAB
ADDA,R2
ADDCA,R4
LJMPXIANSHI
TIAO5:
CJNER3,#0CBH,TIAO6;减法,第三个是符号MOVA,R2
ANLA,#0FH
MOVR2,A
MOVB,#0AH
MOVA,R1
MULAB
ADDA,R2
SUBBA,R4
LJMPXIANSHI
TIAO6:
CJNER3,#0CCH,TIAO7;乘法,第三个是符号MOVA,R2
ANLA,#0FH
MOVR2,A
MOVB,#0AH
MOVA,R1
MULAB
ADDA,R2
MOVB,R4
MULAB
LJMPXIANSHI
TIAO7:
MOVA,R2;除法,第三个是符号ANLA,#0FH
MOVR2,A
MOVB,#0AH
MOVA,R1
MULAB
ADDA,R2
MOVB,R4
DIVAB
LJMPXIANSHI
LOOP6:
MOVXA,@DPTR;====
ANLA,#0FH
JZLOOP6;有键按下?
没有则循环等待MOVA,#0A0H;显示\消隐命令
MOVX@DPTR,A
MOVA,#40H;读FIFO命令
MOVX@DPTR,A
MOVDPTR,#0CFE8H;读键值
MOVXA,@DPTR
MOVR6,A;保存键值
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#85H;选中LED6
MOVX@DPTR,A
MOVA,R6
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R2
ANLA,#0FH
MOVR2,A
MOVA,R4
ANLA,#0FH
MOVR4,A
MOVA,R5
ANLA,#0FH
MOVR5,A
MOVB,#0AH
MOVA,R1
MULAB
ADDA,R2
MOVR7,A;把12放到R7
MOVB,#0AH
MOVA,R4
MULAB
ADDA,R5
MOVR1,A;把45放到R1
CJNER3,#0CAH,JIAN1
MOVA,R7
ADDCA,R1
LJMPXIANSHI
JIAN1:
CJNER3,#0CBH,CHENG1
MOVA,R7
SUBBA,R1
LJMPXIANSHI
CHENG1:
CJNER3,#0CCH,CHU1
MOVA,R7
MOVB,R1
MULAB
LJMPXIANSHI
CHU1:
MOVA,R7
MOVB,R1
DIVAB
LJMPXIANSHI
XIANSHI:
;MOVR1,A
;MOVDPTR,#00CFE9H;8279命令字
;MOVA,#0D1H;清显示
;MOVX@DPTR,A
;MOVA,R1
MOVR0,A;jieguo
SUBBA,#64H;HE100BIJIAO
JCDENG2;XIAOYU100TIAO
MOVA,R0
MOVB,#64H;SANWEISHUQUBAIWEI
DIVAB
MOVR4,A;BAIWEISHUFANGR4
MOVA,B;QUBAIHOUYUSHUGEIa
MOVB,#0AH
DIVAB;QUSHIWEI
MOVR5,A;SHIWEIFANGR5
MOVR6,B;GEWEISHUFANGR6
MOVDPTR,#0CFE9H;写显示RAM命令BAIWEIDENG
MOVA,#80H;选中LED1
MOVX@DPTR,A
MOVA,R4
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
MOVDPTR,#0CFE9H;写显示RAM命令SHIWEIDENG
MOVA,#81H;选中LED2
MOVX@DPTR,A
MOVA,R5
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
MOVDPTR,#0CFE9H;写显示RAM命令GEWEIDENG
MOVA,#82H;选中LED3
MOVX@DPTR,A
MOVA,R6
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
LJMPLOOP1
DENG2:
MOVA,R0
CLRC;上面借位清0
SUBBA,#0AH
JCDENG3
MOVA,R0
MOVB,#0AH
DIVAB
MOVR4,A;SHIWEIGEIR4
MOVR5,B;GEWEIGEIR5
MOVDPTR,#0CFE9H;写显示RAM命令SHIWEIDENG
MOVA,#80H;选中LED1
MOVX@DPTR,A
MOVA,R4
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
MOVDPTR,#0CFE9H;写显示RAM命令GEWEIDENG
MOVA,#81H;选中LED2
MOVX@DPTR,A
MOVA,R5
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
LJMPLOOP1
DENG3:
MOVA,R0
MOVDPTR,#0CFE9H;写显示RAM命令
MOVA,#80H;选中LED1
MOVX@DPTR,A
MOVA,R0
ANLA,#0FH;取后半字节
MOVDPTR,#TAB
MOVCA,@A+DPTR;取段显码
MOVDPTR,#0CFE8H;写显示RAM
MOVX@DPTR,A
MOVDPTR,#0CFE9H;写显示RAM命令;
LJMPLOOP1
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;段显码表db7fh,6fh,77h,7ch,39h,5eh,79h,71h
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 简易 计算器 汇编程序