单片机实验汇编源程序.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 汇编 源程序
- 资源描述:
-
;软件实验〇:发光二极管右移显示 org 0 ajmp main main: mov sp,#5fh mov a,#7fh loop: mov p0,a lcall delay rr a ajmp loop delay: mov r7,#0 del0: mov r6,#0 del1: nop nop djnz r6,del1 djnz r7,del0 ret end ;软件实验一:存储器块清零 ;将内部RAM从30H开始至5h单元内容清零 ORG 0000H LJMP START ORG 0100H START: mov r0,#30h mov a,#00h loop: mov @r0,a inc r0 cjne r0,#60h,loop sjmp $ END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;将外部RAM从90H开始至0CH单元内容清零 ORG 0000H LJMP START ORG 0100H START: mov r0,#90h mov a,#00h loop: movx @r0,a inc r0 cjne r0,#0c0h,loop sjmp $ END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;将外部RAM从2000H开始的100个单元内容清零 ORG 0000H LJMP START ORG 0100H START: mov dptr,#2000h mov b,#100 mov a,#00h loop: movx @dptr,a inc dptr djnz b,loop sjmp $ END ;******************* Block equ 3000h mov dptr, #Block ; 起始地址 mov r0, #0ffh ; 清 256 字节 clr a Loop: movx @dptr, a inc dptr ; 指向下一个地址 djnz r0, Loop ; 记数减一 ljmp $ end ;软件实验二:二进制到BCD转换 程序功能:单字节二进制数转换成为压缩BCD码程序 条件: 待转换的单字节二进制数放在累加器A中 结果: 转换后的BCD码十位和个位仍放在累加器A中,百位放在R3中 ORG 0000H LJMP START ORG 0100H START: mov B,#100 ;分离出百位放在R3中 DIV AB MOV R3,A mov a,#10 ;余数继续分离 XCH A,B DIV AB SWAP A ORL A,B ;将十位和个位组合成压缩BCD码 sjmp $ END **************************************** ; 将 A 拆为三个 BCD 码, 并存入 Result 开始的叁个单元 Result equ 20h org 0 ljmp Start BinToBCD: mov b, #100 div ab mov Result, a ; 除以 100, 得百位数 mov a, b mov b, #10 div ab mov Result+1, a ; 余数除以 10, 得十位数 mov Result+2, b ; 余数为个位数 ret Start: mov sp, #40h mov a, #123 call BinToBCD ljmp $ end ;软件实验三:十进制到ASCII码转换 程序功能:给出一个压缩BCD码用逻辑运算方法将其转换成ASCII码程序 条件: 待转换的压缩BCD码放在30h中 结果: 转换后的ASCII码放在30h(高位)和31h(低位)单元中 ORG 0000H LJMP START ORG 0100H START: mov A,30H MOV B,A ORL A,#30H MOV 31H,A mov a,B SWAP A ORL A,#30H MOV 30H,A sjmp $ END ;************************* ; 将 A 拆为二个 ASCII 码, 并存入 Result 开始的二个单元 Result equ 20h org 0 ljmp Start ASCIITab: db '0123456789ABCDEF' ; 定义数字对应的ASCII表 BinToHex: mov dptr, #ASCIITab mov b, a ; 暂存 A swap a anl a, #0fh ; 取高四位 movc a, @a+dptr ; 查ASCII表 mov Result, a mov a, b ; 恢复 A anl a, #0fh ; 取低四位 movc a, @a+dptr ; 查ASCII表 mov Result+1, a ret Start: mov sp, #40h mov a, #1ah call BinToHex ljmp $ end ;软件实验四:存储块移动 程序功能:将片外数据存储器2000h单元开始的16个单元的内容移到3000h开始的16个单元中 ORG 0000H LJMP START ORG 0100H START: mov dptr,#2000h MOV b,#16 mov r0,#30h loop1: movx a,@dptr mov @r0,a inc dptr inc r0 djnz b,loop1 mov b,#16 mov r0,#30h mov dptr,#3000h loop2: mov a,@r0 movx @dptr,a inc r0 inc dptr djnz b,loop2 sjmp $ END ;********************************* ; 移动 3000H --> 4000H, 256 字节 mov r0, #30h mov r1, #00h mov r2, #40h mov r3, #00h mov r7, #0 Loop: mov dph, r0 mov dpl, r1 movx a, @dptr mov dph, r2 mov dpl, r3 movx @dptr, a cjne r1, #0ffh, Goon1 inc r0 Goon1: inc r1 cjne r3, #0ffh, Goon2 inc r2 Goon2: inc r3 djnz r7, Loop ljmp $ end ;软件实验五: org 0 ljmp Start Func0: mov a, #0 ret Func1: mov a, #1 ret Func2: mov a, #2 ret Func3: mov a, #3 ret FuncEnter: add a, acc ; ajmp 为二字节指令, 调用号 X 2 mov dptr, #FuncTab jmp @a+dptr FuncTab: ajmp Func0 ajmp Func1 ajmp Func2 ajmp Func3 Start: mov a, #0 call FuncEnter mov a, #1 call FuncEnter mov a, #2 call FuncEnter mov a, #3 call FuncEnter ljmp $ end ;软件实验六: 数据排序 Size equ 10 ; 数据个数 Array equ 50h ; 数据起始地址 Change equ 0 ; 交换标志 Sort: mov r0, #Array mov r7, #Size-1 clr Change Goon: mov a, @r0 mov r2, a inc r0 mov B, @r0 cjne a, B, NotEqual sjmp Next NotEqual: jc Next ; 前小后大, 不交换 setb Change ; 前大后小, 置交换标志 xch a, @r0 ; 交换 dec r0 xch a, @r0 inc r0 Next: djnz r7, Goon jb Change, Sort ljmp $ end ;硬件实验一:跑马灯 count equ 30H org 0 ajmp main main: mov sp,#5fh mov a,#7fh loop: mov p0,a mov count,#10 lcall deln10ms rr a ajmp loop ;******************************************* ; (1) (2) (3) (4) (5) (6) (7) ; t= 1T+( 1T+(1T+ 1T+ 2T )*25 + 2T)*100 + 2T =10303T=10303US=10.03MS ; ;******************************************* delay10ms: mov r7,#100 ;1T (1) del0: mov r6,#25 ;1T (2) del1: nop ;1T (3) nop ;1T (4) djnz r6,del1 ;2T (5) djnz r7,del0 ;2T (6) ret ;2T (7) ;入口参数:COUNT,t=count*10ms deln10ms: deln: lcall delay10ms djnz count,deln ret end 跑马灯(左右) count equ 30H sel0 equ p3.5 org 0 ajmp main main: mov sp,#5fh setb sel0 clr sel0 mov a,#0feh right: rr a mov p0,a mov count,#10 lcall deln10ms jb acc.0,right left: rl a mov p0,a mov count,#10 lcall deln10ms jb acc.7,left ajmp right ;******************************************* ; (1) (2) (3) (4) (5) (6) (7) ; t= 1T+( 1T+(1T+ 1T+ 2T )*25 + 2T)*100 + 2T =10303T=10303US=10.03MS ; ;******************************************* delay10ms: mov r7,#100 ;1T (1) del0: mov r6,#25 ;1T (2) del1: nop ;1T (3) nop ;1T (4) djnz r6,del1 ;2T (5) djnz r7,del0 ;2T (6) ret ;2T (7) ;入口参数:COUNT,t=count*10ms deln10ms: deln: lcall delay10ms djnz count,deln ret end ;硬件实验二:4位LED数码管动态显示 SEL0 EQU P3.5 SEL1 EQU P3.7 DISP1 EQU 30H DISP2 EQU 31H DISP3 EQU 32H DISP4 EQU 33H COUNT EQU 34H SCAN EQU 20H SCAN1 EQU 20H.0 SCAN2 EQU 20H.1 SCAN3 EQU 20H.2 SCAN4 EQU 20H.3 ORG 0000H LJMP MAIN ORG 001BH AJMP DISPLAY MAIN:MOV TMOD,#00010000B MOV TH1,#0ECH MOV TL1,#78H SETB ET1 SETB PT1 SETB EA SETB TR1 MOV COUNT,#0 CLR SEL0 CLR SEL1 MOV DISP1,#2 MOV DISP2,#0 MOV DISP3,#0 MOV DISP4,#6 WAIT: AJMP WAIT DISOUT1: MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A SETB SEL1 NOP CLR SEL1 RET DISOUT0:MOV A,SCAN MOV P0,A SETB SEL0 NOP CLR SEL0 RET DISPLAY:MOV TH1,#0ECH MOV TL1,#78H PUSH ACC PUSH PSW INC COUNT MOV A,COUNT CJNE A,#1,NO_DIS1 CLR SCAN1 SETB SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP1 LCALL DISOUT1 AJMP T1_END NO_DIS1:CJNE A,#2,NO_DIS2 SETB SCAN1 CLR SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP2 LCALL DISOUT1 AJMP T1_END NO_DIS2:CJNE A,#3,NO_DIS3 SETB SCAN2 CLR SCAN3 SETB SCAN2 SETB SCAN4 LCALL DISOUT0 MOV A,DISP3 LCALL DISOUT1 AJMP T1_END NO_DIS3:MOV COUNT,#0 SETB SCAN1 SETB SCAN2 SETB SCAN3 CLR SCAN4 LCALL DISOUT0 MOV A,DISP4 LCALL DISOUT1 T1_END: POP PSW POP ACC RETI TAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END ;硬件实验三:静态按键、显示实验 SEL0 EQU P3.5 SEL1 EQU P3.7 DISP1 EQU 30H DISP2 EQU 31H DISP3 EQU 32H DISP4 EQU 33H COUNT EQU 34H SCAN EQU 20H SCAN1 EQU 20H.0 SCAN2 EQU 20H.1 SCAN3 EQU 20H.2 SCAN4 EQU 20H.3 SCAN5 EQU 20H.4 SCAN6 EQU 20H.5 SCAN7 EQU 20H.6 ORG 0000H LJMP MAIN ORG 001BH AJMP DISPLAY MAIN:MOV TMOD,#00010000B MOV TH1,#0ECH MOV TL1,#78H SETB ET1 SETB PT1 SETB EA SETB TR1 MOV COUNT,#0 CLR SEL0 CLR SEL1 MOV DISP1,#2 MOV DISP2,#0 MOV DISP3,#0 MOV DISP4,#6 WAIT: LCALL KEY_SCAN JZ PRO_END CJNE A,#1,NO_1 MOV DISP1,#1 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_1: CJNE A,#2,NO_2 MOV DISP1,#2 MOV DISP2,#2 MOV DISP3,#2 MOV DISP4,#2 AJMP PRO_END NO_2: CJNE A,#3,NO_3 MOV DISP1,#3 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_3: CJNE A,#4,NO_4 MOV DISP1,#4 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_4: PRO_END: AJMP WAIT DISOUT1: MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A SETB SEL1 NOP CLR SEL1 RET DISOUT0:MOV A,SCAN MOV P0,A SETB SEL0 NOP CLR SEL0 RET KEY_SCAN:CLR SCAN5 SETB SCAN6 SETB SCAN7 ; CLR SCAN6 ; CLR SCAN7 LCALL DISOUT0 MOV A,P2 ANL A,#00001111B CJNE A,#0FH,MAY_KEY AJMP NO_KEY MAY_KEY:LCALL DELAY10ms MOV A,P2 ANL A,#0FH CJNE A,#0FH,YES_KEY AJMP NO_KEY YES_KEY:CJNE A,#0EH,NO_KEY1 MOV A,#1 AJMP KEY_END NO_KEY1:CJNE A,#0DH,NO_KEY2 MOV A,#2 AJMP KEY_END NO_KEY2:CJNE A,#0BH,NO_KEY3 MOV A,#3 AJMP KEY_END NO_KEY3:MOV A,#4 AJMP KEY_END NO_KEY:MOV A,#0 AJMP KEY_END KEY_END:RET DELAY10ms:MOV R6,#250 DEL:MOV R7,#10 DJNZ R7,$ DJNZ R6,DEL RET DISPLAY:MOV TH1,#0ECH MOV TL1,#78H PUSH ACC PUSH PSW INC COUNT MOV A,COUNT CJNE A,#1,NO_DIS1 CLR SCAN1 SETB SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP1 LCALL DISOUT1 AJMP T1_END NO_DIS1:CJNE A,#2,NO_DIS2 SETB SCAN1 CLR SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP2 LCALL DISOUT1 AJMP T1_END NO_DIS2:CJNE A,#3,NO_DIS3 SETB SCAN2 CLR SCAN3 SETB SCAN2 SETB SCAN4 LCALL DISOUT0 MOV A,DISP3 LCALL DISOUT1 AJMP T1_END NO_DIS3:MOV COUNT,#0 SETB SCAN1 SETB SCAN2 SETB SCAN3 CLR SCAN4 LCALL DISOUT0 MOV A,DISP4 LCALL DISOUT1 T1_END: POP PSW POP ACC RETI TAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END ;扫描更多的按键 SEL0 EQU P3.5 SEL1 EQU P3.7 DISP1 EQU 30H DISP2 EQU 31H DISP3 EQU 32H DISP4 EQU 33H COUNT EQU 34H SCAN EQU 20H SCAN1 EQU 20H.0 SCAN2 EQU 20H.1 SCAN3 EQU 20H.2 SCAN4 EQU 20H.3 SCAN5 EQU 20H.4 SCAN6 EQU 20H.5 SCAN7 EQU 20H.6 ORG 0000H LJMP MAIN ORG 001BH AJMP DISPLAY MAIN:MOV TMOD,#00010000B MOV TH1,#0ECH MOV TL1,#78H SETB ET1 SETB PT1 SETB EA SETB TR1 MOV COUNT,#0 CLR SEL0 CLR SEL1 MOV DISP1,#2 MOV DISP2,#0 MOV DISP3,#0 MOV DISP4,#6 WAIT: LCALL KEY_SCAN JZ WAIT CJNE A,#1,NO_1 MOV DISP1,#1 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_1: CJNE A,#2,NO_2 MOV DISP1,#2 MOV DISP2,#2 MOV DISP3,#2 MOV DISP4,#2 AJMP PRO_END NO_2: CJNE A,#3,NO_3 MOV DISP1,#3 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_3: CJNE A,#4,NO_4 MOV DISP1,#4 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_4: CJNE A,#5,NO_5 MOV DISP1,#5 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_5: CJNE A,#6,NO_6 MOV DISP1,#6 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#3 AJMP PRO_END NO_6: CJNE A,#7,NO_7 MOV DISP1,#7 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_7: CJNE A,#8,NO_8 MOV DISP1,#8 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_8: CJNE A,#9,NO_9 MOV DISP1,#9 MOV DISP2,#1 MOV DISP3,#1 MOV DISP4,#1 AJMP PRO_END NO_9: CJNE A,#10,NO_10 MOV DISP1,#10 MOV DISP2,#2 MOV DISP3,#2 MOV DISP4,#2 AJMP PRO_END NO_10: CJNE A,#11,NO_11展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




单片机实验汇编源程序.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/8945404.html