51单片机实验讲义所有源程序.doc_第1页
51单片机实验讲义所有源程序.doc_第2页
51单片机实验讲义所有源程序.doc_第3页
51单片机实验讲义所有源程序.doc_第4页
51单片机实验讲义所有源程序.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一算术运算程序多字节(2字节压缩型BC码减法) ORG 0000HAJMP MAIN ORG 0030H MAIN: MOV R2,#2 ; MOV R0,#30H ; MOV R1,#38H ;CLR C SUBBCD1: MOV A,#9AHSUBB A,R0 ADD A,R1DA A MOV R0,ACPL C INC R0 INC R1DJNZ R2,SUBBCD1SJMP $ END多字节二进制乘法CY1 BIT 00HCY2 BIT 01H ORG 0000HAJMP MAIN ORG 0030H MAIN: MOV DPL,#33H MOV R7,#4 MOV DPH,#3BH MOV R6,#4 MOV R5,#47H CALL HEXMULSJMP $ HEXMUL: MOV A,R5 MOV R0,A MOV A,R7 ADD A,R6 ; MOV R4,ACLR A HEXMUL1: MOV R0,A ; DEC R0DJNZ R4,HEXMUL1 HEXMUL2: MOV R0,DPL MOV A,R0 MOV R4,A ; MOV A,DPH MOV R0,A MOV A,R6 MOV R3,A MOV A,R5 MOV R1,ACLR CY2 HEXMUL3: MOV C,CY2 MOV CY1,CCLR CY2 MOV B,R4 MOV A,R0 MUL AB ADD A,R1 ; MOV R1,A DEC R1 ; MOV A,BADDC A,R1; JNC HEXMUL4 SETB CY2 HEXMUL4: MOV C,CY2ADDC A,#0; JNC HEXMUL5 SETB CY2 HEXMUL5: MOV R1,A ; DEC R0 ;DJNZ R3,HEXMUL3; DEC DPL ; DEC R5 ;DJNZ R7,HEXMUL2; RET END =二进制多字节除一字节 ORG 0000HAJMP MAIN ORG 0030H MAIN: MOV R1,#33H MOV R7,#4 ; CALL DVDSJMP $ DVD: MOV B,#0 ; MOV A,R7RL ARL ARL A MOV R5,A DVD1: MOV A,R7 MOV R4,ACLR C DVD2: MOV A,R1RLC A MOV R1,A DEC R1DJNZ R4,DVD2 MOV F0,C MOV A,R1 ADD A,R7 MOV R1,A ; MOV C,F0 MOV A,BRLC A MOV B,ACLR CSUBB A,R6; JC DVD4 MOV B,A INC R1 DVD4:DJNZ R5,DVD1 RET END实验二代码转换程序内部RAM中四位非压缩BCD码转换为十六进制存R2R3 ORG 0000HAJMP MAIN ORG 0030H MAIN: MOV R0,#40H MOV R7,#4 CALL BCD_HEXSJMP $ BCD_HEX: MOV R2,#0 MOV A,R0 MOV R3,A ; DEC R7 ; BCD_HEX1: MOV A,R3 MOV B,#0AH MUL AB ; MOV R3,A ; MOV A,BXCH A,R2 MOV B,#0AH MUL AB ; ADD A,R2 ; MOV R2,A INC R0 MOV A,R3 ADD A,R0 ; MOV R3,A MOV A,R2ADDC A,#0; MOV R2,ADJNZ R7,BCD_HEX1 RET END 内部RAM中一字节二进制转换为三位非压缩BCD码 VAR SEGMENT DATA PRG SEGMENT CODERSEG VARHEX: DS 1HUND: DS 1TEN: DS 1ONE: DS 1RSEG PRG MOV A,HEX MOV B,#64H DIV AB MOV HUND,A MOV A,#0AHXCH A,B DIV AB MOV TEN,A MOV ONE,BSJMP $ END 内部RAM2字节二进制转换为5位非压缩BCD码 EXTRN CODE(DVD)DSEG AT 20HHEX: DS 2BCD: DS 5CSEG AT 0AJMP MAINCSEG AT 30H MAIN: MOV R2,#5 MOV R0,#BCD+4 LOOP: MOV R1,#HEX+1 MOV R7,#2 MOV R6,#0AH CALL DVD MOV R0,B DEC R0DJNZ R2,LOOPSJMP $ END= PUBLIC DVD PRG SEGMENT CODERSEG PRG DVD:. RET END实验三表处理程序Y=X2,0=X=127 SQUARE MACROXX SET 0 REPT 128 DW XX*XXXX SET XX+1 ENDM ENDMDSEG AT 20HX: DS 1Y: DS 2CSEG AT 0AJMP MAIN CSEG AT 30H MAIN: MOV DPTR,#TAB MOV A,XRL A MOV B,AMOVC A,A+DPTR MOV Y,A ; MOV A,B INC AMOVC A,A+DPTR MOV Y+1,A ;SJMP $ TAB: SQUARE END实验四并行口输入输出DSEG AT 30HBUF: DS 32CSEG AT 0AJMP MAINCSEG AT 30H MAIN: MOV P1,#0FH MOV R0,#BUF MOV R7,#32 MOV B,#0 NEXT: MOV A,P1ANL A,#0FHCJNE A,B,NEXT1SJMP NEXT NEXT1: MOV B,A MOV R0,A INC R0SWAP AORL A,#0FH MOV P1,ADJNZ R7,NEXTSJMP $ END实验五数码LED显示P1做字型口,P0.00.3做位型口,控制4位数码LED,P0.4显示俩种不同内容DSEG AT 30HBUF: DS 4BUF1:DS 4BUF2:DS 4LPTR:DS 1LBIT:DS 1CSEG AT 0AJMP MAINCSEG AT 30H MAIN: MOV BUF1,#0H MOV BUF1+1,#1 MOV BUF1+2,#2 MOV BUF1+3,#3 MOV BUF2,#11H ; MOV BUF2+1,#12H ; MOV BUF2+2,#0EH ; MOV BUF2+3,#10H ; MOV LPTR,#0 MOV LBIT,#11H NEXT: CALL DLED SETB P0.4 JB P0.4,NEXT1 MOV BUF,BUF1 MOV BUF+1,BUF1+1 MOV BUF+2,BUF1+2 MOV BUF+3,BUF1+3SJMP NEXT NEXT1: MOV BUF,BUF2 MOV BUF+1,BUF2+1 MOV BUF+2,BUF2+2 MOV BUF+3,BUF2+3SJMP NEXT ;A,R0,DPTR DLED: INC LPTRANL LPTR,#03H MOV A,LBITRL A MOV LBIT,AORL P0,#0FH MOV A,LPTR ADD A,#BUF MOV R0,A MOV A,R0 MOV DPTR,#LEDTABMOVC A,A+DPTRCPL A MOV P1,A MOV A,LBITCPL AANL A,#0FH MOV P0,A RET LEDTAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 76H,73H,38H ;HPL END0F在四位LED上由左往右移动显示DSEG AT 30HBUF: DS 4BUF1: DS 16BPTR: DS 1CNT1: DS 1CNT2: DS 1LPTR: DS 1LBIT: DS 1CSEG AT 0AJMP MAINCSEG AT 30H MAIN: CALL INIT_BUF1 MOV BPTR,#0 MOV CNT1,#0 MOV CNT2,#80H MOV LPTR,#0 MOV LBIT,#11H NEXT: CALL MOVE NEXT1: CALL DLEDDJNZ CNT1,NEXT1DJNZ CNT2,NEXT1 MOV CNT2,#80HSJMP NEXT INIT_BUF1: MOV BUF1,#0H MOV BUF1+1,#1 MOV BUF1+2,#2 MOV BUF1+3,#3 MOV BUF1+4,#4 MOV BUF1+5,#5 MOV BUF1+6,#6 MOV BUF1+7,#7 MOV BUF1+8,#8 MOV BUF1+9,#9 MOV BUF1+10,#10 MOV BUF1+11,#11 MOV BUF1+12,#12 MOV BUF1+13,#13 MOV BUF1+14,#14 MOV BUF1+15,#15 RET MOVE: INC BPTRANL BPTR,#0FH MOV A,BPTR ADD A,#BUF1 MOV R0,A MOV BUF,R0 MOV A,BPTR ADD A,#1ANL A,#0FH ADD A,#BUF1 MOV R0,A MOV BUF+1,R0 MOV A,BPTR ADD A,#2ANL A,#0FH ADD A,#BUF1 MOV R0,A MOV BUF+2,R0 MOV A,BPTR ADD A,#3ANL A,#0FH ADD A,#BUF1 MOV R0,A MOV BUF+3,R0 RET ; A,R0,DPTR DLED: INC LPTRANL LPTR,#03H MOV A,LBITRL A MOV LBIT,AORL P0,#0FH MOV A,LPTR ADD A,#BUF MOV R0,A MOV A,R0 MOV DPTR,#LEDTABMOVC A,A+DPTRCPL A MOV P1,A MOV A,LBITCPL AANL A,#0FH MOV P0,A RET LEDTAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 76H,73H,38H ;HPL END实验六行列式键盘扫描DSEG AT 30HBUF: DS 4KPTR: DS 1LPTR: DS 1LBIT: DS 1CSEG AT 0AJMP MAINCSEG AT 30H MAIN: MOV KPTR,#0 MOV LPTR,#0 MOV LBIT,#11H MOV BUF+0,#13H MOV BUF+1,#13H MOV BUF+2,#13H MOV BUF+3,#13H NEXT: CALL DLED CALL KEYIN JNC NEXT MOV A,#BUF ADD A,KPTR MOV R0,A MOV R0,B INC KPTRANL KPTR,#03HSJMP NEXT; KEYIN: MOV P2,#0FH ; MOV A,P2CPL AANL A,#0FH JNZ KEYIN1 ;CLR C RET KEYIN1: MOV B,#0 MOV DPH,#0EFH ; KEYIN2: MOV P2,DPH MOV A,P2CPL AANL A,#0FH JNZ KEYIN3 ; MOV A,B ADD A,#4 MOV B,A SETB C MOV A,DPHRLC A MOV DPH,A ; JC KEYIN2 RET KEYIN3: MOV DPL,A CALL DELAY MOV P2,DPH MOV A,P2CPL AANL A,#0FHCLR C RET KEYIN4: MOV P2,#0FH MOV A,P2CPL AANL A,#0FH JNZ KEYIN4 CALL DELAY MOV A,DPL KEYIN5:RRC A JC KEYIN6 INC BSJMP KEYIN5 KEYIN6: SETB C RET DELAY: MOV R7,#80H DELAY1: MOV R6,#0 DELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1 RET DLED: INC LPTRANL LPTR,#03H MOV A,LBITRL A MOV LBIT,A MOV A,LPTR ADD A,#BUF MOV R0,A MOV A,R0 MOV DPTR,#LEDTABMOVC A,A+DPTRCPL AORL P0,#0FH MOV P1,A MOV A,LBITCPL AANL A,#0FH MOV P0,A RET LEDTAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 76H,73H,38H,40H ;HPL- END实验七外部中断引脚原理与应用DSEG AT 30HIBIT: DS 1ICNT: DS 1BUF: DS 4LPTR :DS 1LBIT : DS 1CSEG AT 0AJMP MAINCSEG AT 3 AJMP INTCSEG AT 0030H MAIN: MOV SP,#3FH MOV ICNT,#0 MOV IBIT,#01H MOV P2,#01H SETB IT0CLR IE0 SETB EX0 SETB EA MOV LPTR,#0 MOV LBIT,#11H MOV BUF+2,#14H MOV BUF+3,#14H NEXT: MOV A,ICNTANL A,#0FH MOV BUF,A MOV A,ICNTSWAP AANL A,#0FH MOV BUF+1,A CALL DLEDSJMP NEXT INT: PUSH ACC PUSH PSW MOV A,IBITRL A MOV IBIT,A MOV P2,A INC ICNT POP PSW POP ACCRETI DLED: INC LPTR ANL LPTR,#03H MOV A,LBIT RL A MOV LBIT,A MOV A,LPTR ADD A,#BUF MOV R0,A MOV A,R0 MOV DPTR,#LEDTAB MOVC A,A+DPTR CPL A ORL P0,#0FH MOV P1,A MOV A,LBIT CPL A ANL A,#0FH MOV P0,A RET LEDTAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 76H,73H,38H,40H ;HPL DB 00H ; END实验八片内定时计数器原理与应用DSEG AT 30HTCNT: DS 1BUF : DS 4LPTR: DS 1LBIT: DS 1CSEG AT 0AJMP MAINCSEG AT 0BHAJMP TINTCSEG AT 0030H MAIN: MOV SP,#3FH ANL TM0D,#0F0H ORL TM0D,#06H MOV TH0,#0FBH MOV TL0,#0FBH MOV TCNT,#0 MOV LPTR,#0 MOV LBIT,#11H MOV BUF+3,#14H SETB EACLR TF0 SETB ET0 SETB TR0 NEXT: MOV A,TCNT MOV B,#0AH DIV AB MOV BUF,B MOV B,#0AH DIV AB MOV BUF+1,B MOV BUF+2,A CALL DLEDSJMP NEXT TINT: INC TCNTRETI DLED:. RET LEDTAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 76H,73H,38H,40H ; DB 00H ; END =实验九片内串行口原理与应用串行口中断方式接收数据,若接收是大写字母转换为小写字母,不是则结束DSEG AT 30HBUF: DS 8RPTR: DS 1WPTR: DS 1CSEG AT 0AJMP MAINCSEG AT 23HAJMP MAINCSEG AT 23HAJMP RXDINTCSEG AT 0030H MAIN: MOV SP,#3FH MOV TMOD,#20H MOV TH1,#0F4H ; SETB TR1 MOV SCON,#50H MOV RPTR,#0 MOV WPTR,#0 SETB EA SETB ES NEXT: MOV A,RPTRCJNE A,WPTR,NEXT1SJMP NEXT NEXT1: ADD A,#BUF MOV R0,A MOV A,R0CJNE A,#41H,NEXT2 NEXT2: JC NEXT4CJNE A,#41H+26,NEXT3 NEXT3: JNC NEXT4 ADD A,#20H MOV SBUF,A MOV A,RPTR INC AANL A,#07H MOV RPTR,ASJMP NEXT NEXT4:CLR ESCLR RENSJMP $ RXDINT: PUSH ACC PUSH PSW JBC TI,SINT2CLR RI MOV A,WPTR ADD A,#BUF MOV R1,A MOV A,SBUF MOV R1,A MOV A,WPTR INC AANL A,#07HCJNE A,RPTR,SINT1SJMP SINT2 SINT1: MOV WPTR,A SINT2: POP PSW POP ACCRETI END =改用查询方式CSEG AT 0AJMP MAINCSEG AT 0030

温馨提示

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

评论

0/150

提交评论