宁波大学微机原理及接口技术实验指导书源程序答案.docx

上传人:牧羊曲112 文档编号:3098776 上传时间:2023-03-10 格式:DOCX 页数:25 大小:39.81KB
返回 下载 相关 举报
宁波大学微机原理及接口技术实验指导书源程序答案.docx_第1页
第1页 / 共25页
宁波大学微机原理及接口技术实验指导书源程序答案.docx_第2页
第2页 / 共25页
宁波大学微机原理及接口技术实验指导书源程序答案.docx_第3页
第3页 / 共25页
宁波大学微机原理及接口技术实验指导书源程序答案.docx_第4页
第4页 / 共25页
宁波大学微机原理及接口技术实验指导书源程序答案.docx_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《宁波大学微机原理及接口技术实验指导书源程序答案.docx》由会员分享,可在线阅读,更多相关《宁波大学微机原理及接口技术实验指导书源程序答案.docx(25页珍藏版)》请在三一办公上搜索。

1、宁波大学微机原理及接口技术实验指导书源程序答案;*; 实验一 无符号数加法实验;*ORG 0000HLJMP 1000HORG 1000HCLR A ;寄存器A 和进位标志位CY 分别清0 CLR CYMOV 30H,#12H ;赋初值MOV 31H,#34HMOV 32H,#56HMOV 33H,#78HMOV A,31HADD A,33HDA AMOV 35H,AMOV A,30HADDC A,32HDA AMOV 34H,AEND;*; 实验二 1 闪光灯实验;*ORG 0000HLJMP 1000HORG 1000HSTART: JNB P1.1,$CPL P1.0CALL DELAY

2、 ;延时SJMP STARTDELAY: MOV R7,#10H ;延时子程序DLY1: MOV R6,#200HDLY2: MOV R5,#125HDJNZ R5,$DJNZ R6,DLY2DJNZ R7,DLY1RETEND;*; 实验二 2 跑动灯实验;*ORG 0000HLJMP 1000HORG 1000HMOV A,#11HSTART: MOV P1,ACALL DELAY ;延时RL ASJMP STARTDELAY: MOV R7,#10H ;延时子程序DLY1: MOV R6,#200HDLY2: MOV R5,#125HDJNZ R5,$DJNZ R6,DLY2DJNZ R

3、7,DLY1RETEND;*; 实验三 定时器实验;*ORG 0000HLJMP STARTORG 0BHLJMP T0_INTORG 1000HSTART:MOV SP,#7H MOV TMOD,#01H ;定时器工作方式1MOV TL0,#0B0H ;定时器赋初值MOV TH0,#3CHMOV IE,#82H ;开定时器中断,总中断MOV 30H,#0 ;初始化SETB P1.0SETB P1.1MAIN:JB P1.1,STOPCLR TR0 ;关闭定时器LJMP MAINSTOP:SETB TR0 ;启动定时器LJMP MAINT0_INT: ;定时器T0中断程序INC 30HMOV

4、TL0,#0B0H MOV TH0,#3CHMOV A,30HCJNE A,#5H,NEXTCPL P1.0MOV 30H,#00NEXT:RETIEND 程序2ORG 0000HLJMP 1000HORG 000BHLJMP INT_TIMER0ORG 1000HCLR P1.0MOV 30H,#00H ;初始化MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB ET0 ;开定时器中断SETB EA ;开总中断MOV P1.1,1MAIN:JNB P1.1, STOPSETB TR0 ;启动定时器JB P1.1,$SJMP MAINSTOP: CLR TR0

5、 ;关闭定时器JNB P1.1,$SJMP MAININT_TIMER0: ;定时器T0中断程序INC 30H MOV A,30HCJNE A,#05H,NEXT ;设置数值 改变时间长短CPL P1.0MOV 30H,#00HNEXT: MOV TH0,#3CHMOV TL0,#0B0HRETIEND;*; 实验四 查表显示实验 ;*ORG 0000HLJMP 1000HORG 1000HMOV P2,#80HMOV R0,#02H ;位选MOV R1,#04H ;段选MOV A,#01HMOVX R0,A ;选通第一位数码管 0000 0001MOV R2,#00H ;数字标志位MOV D

6、PTR,#TABLELOOP: MOV A,R2MOVC A,A+DPTRMOVX R1,A ;将段码送入段选CALL DELINC R2CJNE R2,#0AH,NEXT ;010循环显示MOV R2,#00HNEXT: LJMP LOOPDEL: MOV R7,#00HDEL1: MOV R6,#00HDJNZ R6,$DJNZ R7,DEL1RETTABLE: DB 3FH ,06H ,5BH ,4FH ,66H ,6DH ,7DH ,07H ,7FH, 6FH ;KEIL环境下需要加逗号才可编译通过END;*; 实验七 步进电机控制实验 ;*方案一:选用中断1控制延时ORG 0000H

7、LJMP MAINORG 1BHLJMP T1INTORG 0100HMAIN:MOV SP,#7H MOV TMOD,#10H ;开中断1,赋初值MOV TL1,#0B0HMOV TH1,#3CHMOV IE,#88HMOV 30H,#0SETB TR1LOOP:AJMP $ ;等待中断T1INT:CLR EA ;关中断ACALL DISPLY MOV TL1,#0B0H ;重置定时器1时间常数:#3CB0HMOV TH1,#3CHLOOP1:JNB P1.7,LOOP2INC 30HMOV A,30HCJNE A,#4H,LOOP3MOV 30H,#0LJMP LOOP3LOOP2:DEC

8、 30HMOV A,30HCJNE A,#0FFH,LOOP3MOV 30H,#3HLJMP LOOP3LOOP3:SETB EARETIDISPLY:MOV DPTR,#TABMOV A,30HMOVC A,A+DPTRMOV P1,ARETTAB:DB 8CH,89H,83H,86HEND 方案二:选用一般延时ORG 0000HLJMP MAINORG 0100HMAIN:MOV 30H,#0LOOP: ACALL DISPLYACALL DELY LOOP1:JNB P1.7,LOOP2INC 30HMOV A,30HCJNE A,#4H,LOOPMOV 30H,#0LJMP LOOPL

9、OOP2:DEC 30HMOV A,30HCJNE A,#0FFH,LOOPMOV 30H,#3HLJMP LOOPDISPLY:MOV DPTR,#TABMOV A,30HMOVC A,A+DPTRMOV P1,ARETDELY:MOV R7,#200HDEL1:MOV R6,#123HNOPDJNZ R6,$DJNZ R7,DEL1RETTAB:DB 8CH,89H,83H,86HEND以下两个实验并未编译,仅供参考;*; 实验五 转速测实量验;*ORG 0000HLJMP 1200HORG 001BHLJMP PTF0ORG 1200HSTART:MOV P2,#80HMOV DPTR,

10、#TABMOV TMOD,#15HMOV TH1,#3CHMOV TL1,#0B0HMOV TH0,#0MOV TL0,#0MOV IE,#88HMOV 48H,#01HMOV 49H,#04MOV 50H,#38MOV R1,51HMOV 47H,#04SETB TR1SETB TR0LED: MOV R0,#02MOV A,48HMOVX R0,ALED1: MOV R0,#04HMOV A,R1MOVC A, A+DPTRMOVX R0,ALCALL DELDJNZ 49H,XLMOV 48H,#01MOV R1,#51HMOV 49H,#04LJMP LEDXL: MOV A,48HR

11、L AMOV 48H,AINC R1LJMP LEDPTF0: MOV TH1,#3CHMOV TL1,#0B0HDJNZ 50H,AGAINPUSH ACLR TR0CLR TR1MOV 50H,#38ZY: CLR CMOV A,TL0RLC AMOV TL0,AMOV A,TH0RLC AMOV TH0,ADJNZ 47H,ZYMOV 47H,#04IBTD: CLR AMOV R4,AMOV R5,AMOV R6,AMOV R7,#16IBTD2:CLR CMOV A,TL0RLC AMOV TL0,AMOV A,TH0RLC AMOV TH0,AMOV A,R6ADDC A,R6DA

12、 AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,IBTD2MOV A,R6MOV B,AANL A,#0FHMOV 51H,AMOV A,BANL A,#0F0HSWAP AMOV 52H,AMOV A,R5MOV B,AANL A,#0FHMOV 53H,AMOV A,BANL A,#0F0HSWAP AMOV 54H,AMOV TH0,#0MOV TL0,#0POP ASETB TR1SETB TR0 AGAIN:RETI DEL:;MOV R5,#03HDEL3:MOV R7,#20D

13、EL1:MOV R4,#20DEL2:DJNZ R4,DEL2DJNZ R7,DEL1DJNZ R5,DEL3RETTAB: DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07H,7FH ,6FHDB 77H,7CH,39H,5EHDB 79H,71H,73H,3EH,31HDB 63H,1CH,23H,40H,03HEND;*; 实验六 A/D转换器实验 ;*FLAG BIT 0CNT EQU 31HN0 EQU 32HN1 EQU 33HN2 EQU 34HORG 0000HLJMP 1000HORG 000BHLJMP TIMER0ORG 1000HCALL INIT

14、MAIN:CALL DISPJNB FLAG,NTCALL UPDATENT: SJMP MAININIT:MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0SETB TR0;MOV P2,#80HMOV CNT,#3RETTIMER0: CLR TR0 ;暂时关闭中断MOV TH0,#3CHMOV TL0,#0B0H ;RELOADDJNZ CNT,NEXTMOV CNT,#3 ;判断是否位0.3sCALL INPUTNEXT:SETB TR0 ;重新开启中断RETIINPUT: MOV P2,#80HMOV R0,#80HMOV A,

15、#00H ;任意剩浚浚浚?MOVX R0,A ;启动i路A/D转换MOV R1,#00HDJNZ R1,$ ;延时,等待转换结束MOV R0,#90HMOVX A,R0 ;读入模数转化后的数值MOV R7,A ;保存数值; MOV R7,#0C0HSETB FLAG ;置位标志位RETUPDATE: ;更新N2N1N0内的数据CLR FLAG ;清零标志位;MOV AMOV B,#51MOV A,R7DIV AB ;整数部分在A中,余数在B中MOV N2,A ;分离出最高位MOV A,B ;前一次除法的余数B放入A中MOV B,#10 ;B中放入10,将前一次的余数放大十倍MUL AB ;放大

16、十倍 最大值为500 高位寄存器B中只可能为0或者1MOV R6,B ;A中放入相乘后的第八位数据CJNE R6,#01H,NOR ;判断高位是0或者1 是0进入正常操作MOV N1,#5INC A ;256/51=5-余数1MOV B,#51DIV AB ;整数部分在A中,余数在B中ADD A,N1MOV N1,ASJMP STEP2NOR:MOV B,#51DIV AB ;整数部分在A中,余数在B中MOV N1,A ;分离出第二位STEP2:MOV A,BMOV B,#10MUL ABMOV R6,BCJNE R6,#01H,NOR1MOV N0,#5INC AMOV B,#51DIV A

17、BADD A,N0MOV N0,ASJMP OUTNOR1:MOV B,#51DIV ABMOV N0,AOUT:RETDISP:MOV P2,#90H ;MOV R0,#02H ;位选MOV R1,#04H ;段选MOV A,#01HMOVX R0,AMOV DPTR,#TABLE1MOV A,N0MOVC A,A+DPTRMOVX R1,AMOV R5,#00HDJNZ R5,$MOV A,#00HMOVX R1,AMOV A,#02HMOVX R0,AMOV DPTR,#TABLE1MOV A,N1MOVC A,A+DPTRMOVX R1,AMOV R5,#00HDJNZ R5,$MOV A,#00HMOVX R1,AMOV A,#04HMOVX R0,AMOV DPTR,#TABLE2MOV A,N2MOVC A,A+DPTRMOVX R1,AMOV R5,#00HDJNZ R5,$MOV A,#00HMOVX R1,ARETTABLE1:DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fHTABLE2:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFHEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号