51单片机实验及代码_第1页
51单片机实验及代码_第2页
51单片机实验及代码_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机实验实验一:开发环境的应用(1)将数据存储器的40H-4FH的内容复制成OOH-OFH,并将40H-4FH的内容整体复制到外部数据存储器的1050H-105FH.(2)P1 口接八只二极管,使二极管逐个循环点亮ORG 0000HAJMP STARTORG 0100HSTART:MOV A,#00HMOV R0,#40HLOOP:MOV R0,AINC AINC R0CJNE A,#10 H,L OOPSECOND:MOV DPTR,#1050HMOV R1,#40HCOPY:MOV A,R1MOVX DPTR,AINC DPTRINC R1CJNE R1,#50H,COPYSJMP $E

2、ND实验二:外部中断(1)用单脉冲信号申请中断,在中断服务程序中对输出信号进行翻转(可通过P1.0接一二极管观察)ORG 0000HLJMP STARTORG 0003HLJMP INTORG 0100HSTART:SETB EXOSETB PXOSETB ITOSETB EASJMP $INT:CPL P1.0RETIEND(2)用单脉冲信号申请中断,要求对中断进行累加计数,并将计数结果显示在二极管上ORG 0000HLJMP STARTORG 0003HLJMP INTORG 0100HSTART:MOV A,#00HMOV P1,ASETB EX0SETB PX0SETB IT0SETB

3、 EASJMP $INT:MOV P1,AINC ARETIEND实验三:定时器实验(1)用定时器1的方式1定时,P1.0节发光二极管,使二极管每秒闪烁五次ORG 0000HLJMP MAINORG 001BHLJMP INTORG 0100HMAIN:MOV TMOD,#10H;50ms x 2 = 100msMOV TH1,#3CHMOV TL1,#0B0HMOV R2,#2SETB EASETB ET1SETB TR1SJMP $INT:DJNZ R2,NEXTCPL P1.0MOV R2,#2NEXT:MOV TH1,#3CHMOV TL1,#0B0HSETB TR1RETIEND(2

4、)用定时器1的方式2计数,T1引脚接单脉冲,用P1 口接二极管显示计数。ORG 0000HLJMP MAINORG 001BHLJMP LOOPORG 0100HMAIN:MOV TMOD,#60HMOV TH1,#00HMOV TL1,#00HSETB EASETB ET1SETB TF1SETB TR1SJMP $LOOP:MOV P1,TL1LJMP LOOPRETIEND实验四:串行通信波特率2400 bit/s 。PC发送8个字节的数据给单片机,单片机接受完数据后发送两个字节55H和AAH给PC机(使用查询方式)。ORG 0000HAJMP MAINORG 0030HMAIN:MOV

5、 SCON,#50HMOV PCON,#00HMOV TMOD,#20HSETB TR1MOV TL1,#0F3HMOV TH1,#0F3HLOOP:MOV R0,#30HMOV R1,#08HWAIT1:JBC RI,RECEIVESJMP WAIT1RECEIVE:MOV A,SBUFMOV R0,AINC R0DJNZ R1,WAIT1MOV A,#55HMOV SBUF,AWAIT21:JBC TI,SENDSJMP WAIT21SEND:MOV A,#0AAHMOV SBUF,AWAIT22:JNB TI,WAIT22CLR TISJMP LOOPEND实验五:数码管显示及键盘扫描(

6、1)将30H-32H中存储的6位十进制数在6个数码管上显示出来(要 求编写一个将内存单元中的压缩BCD码转换为两个七段显示码的子程序和延时子程序)ORG 0000HLJMP MAINORG 0030HMAIN:MOV 30H,#12HMOV 31H,#34HMOV 32H,#56HMOV R0,#30HMOV R1,#20HBCD:MOV A,R0SWAP AANL A,#0FHACALLCTABMOV R2,AMOV A,R0ANL A,#0FHACALLCTABMOV R3,AMOV DPTR,#8002HMOV A,R1MOVX DPTR,AMOV DPTR,#8004HMOV A,R2

7、MOVX DPTR,AMOV A,R1RR AMOV R1,ALCALL DLEYMOV DPTR,#8002HMOV A,R1MOVX DPTR,AMOV DPTR,#8004HMOV A,R3MOVX DPTR,AMOV A,R1RR AMOV R1,ALCALL DLEYINC ROCJNE R0,#33H,BCDLJMP MAINCTAB:PUSH DPHPUSH DPLMOV DPTR,#TABMOVC A,A+DPTRPOP DPLPOP DPHRETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH, 39H,5EH,79H

8、,71HDLEY:MOV R7,#02HDL:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DLRETEND(2)扫描矩阵键盘,将对应键盘值送LED显示ORG 0000HLJMP STARTORG 1000HSTART:ACALL KEY1AJMPSTARTKEY1: ACALL KEY14JNZKEY3KEY2: ACALL KEY16AJMPKEY1KEY3: ACALL KEY16ACALLDELAYACALLKEY14JNZKEY4ACALLKEY16AJMPKEY1KEY4: MOV R2, #0FEHMOVR4, #00HKEY5: MOV DPTR,#80

9、02HMOVA, R2MOVXDPTR, AMOVDPTR,#8001HMOVXA,DPTRJB ACC.0,KEY6MOVA, #00HAJMPKEY9KEY6: JBACC.1,KEY7MOVA, #06HAJMPKEY9KEY7: JBACC.2,KEY8MOVA, #0CHAJMPKEY9KEY8: JBACC.3, KEY12MOVA, #12HKEY9: ADD A, R4KEY10: MOV R5,AKEY11: ACALL KEY14JNZ KEY11MOV A,R5ACALL KEY15RETKEY12: INC R4MOV A, R2JNB ACC.5,KEY13RL AM

10、OV R2, AAJMP KEY5KEY13: AJMP KEY1KEY14: MOV DPTR,#8002HMOVA,#00HMOVXDPTR,AMOVDPTR,#8001HMOVXA,DPTRCPLAANLA, #0FHRETKEY15: MOV DPTR,#TABLEMOVC A,A+DPTRMOV R3,AKEY16: MOV DPTR,#8002HMOV A,#01HMOVX DPTR,AMOV DPTR,#8004HMOV A,R3MOVX DPTR,AACALL DELAYRETDELAY: MOV R7,#12LOOP: MOV R6,#250DJNZ R6,$DJNZ R7,

11、LOOPRETTABLE:DB7EH,7EH,5EH,79H,71H,3FH,7EH,7EH,39H,4FH,5BH,06H,7EH,7EH,7CH,7DH,6DH,66H,7EH,7EH,77H,6FH,7FH,07HEND实验六:D/A和A/D(1)利用实验箱上的电位器提供模拟量输入,将模拟量转换成二进制数字量,将转换的结果用P1 口输出到二极管显示;ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR,#8000HMOV A,#00HMOVX DPTR,AMOV R2,#100DJNZ R2,$MOVX A,DPTRMOV P1,ALJMP MAINEND(2

12、)用DAC0832各一个数值转换为模拟电压,该模拟电压接ADC0809的一个模拟输入进行模/数转换,转换结果通过P1 口送到二极管显示。ORG 0000HLJMP MAINORG 0100HMAIN:MOV A,#90HMOV DPTR,#9000HMOVX DPTR,AMOV DPTR,#8000HMOVX DPTR,AMOV R2,#64HDJNZ R2,$MOVX A,DPTRMOV P1,ASJMP $END实验七:电子钟实现一个24小时制的电子钟程序,在6个数码管上显示时分秒(用定时器0中断更新计时,以压缩 BCD码形式保存在内部 RAM的30H31H和32H单元);可以通过串行口调

13、时!ORG 0000HAJMP MAINORG 000BHLJMP CLOCKORG 0023HLJMP INPUTORG 0100HMAIN:MOV TMOD,#21HCLR AMOV 30H,AMOV 31H,AMOV 32H,AMOV TH0,#3CHMOV TL0,#0B0HMOV 50H,#14H;50 * 20MOV TH1,#0F3HMOV TL1,#0F3H;波特率MOV SCON,#50HSETB PSMOV IE,#92HSETB TR1SETB TR0SLED:MOV R0,#30HMOV R1,#20HLJMP LEDCLOCK:MOV TH0,#3CHMOV TL0,

14、#0B0HDJNZ 50H,RETURNMOV 50H,#14HMOV A,#01HADD A,32HDA AMOV 32H,ACJNE A,#60H,RETURNMOV 32H,#00HMOV A,#01HADD A,31HDA AMOV 31H,ACJNE A,#60H,RETURNMOV 31H,#00HMOV A,#01HADD A,30HDA AMOV 30H,ACJNE A,#24H,RETURNMOV 30H,#00HRETURN:RETILED:MOV A,R0SWAP AANL A,#0FHACALL CTABMOV R2,AMOV A,R0ANL A,#0FHLCALL CTABMOV R3,AMOV DPTR,#8002HMOV A,R1MOVX DPTR,AMOV DPTR,#8004HMOV A,R2MOVX DPTR,AMOV A,R1RR AMOV R1,ALCALL DLYMOV DPTR,#8002HMOV A,R1MOVX DPTR,AMOV DPTR,#8004HMOV A,R3MOVX DPTR,AMOV A,R1RR AMOV R1,ALCALL DLYINC ROCJNE R0,#33 H,L EDLJMP SLEDCTAB:PUSH DPHPUSH DPLMOV DPTR

温馨提示

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

评论

0/150

提交评论