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

下载本文档

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

文档简介

单片机实验 实验一 开发环境的应用实验一 开发环境的应用 1 1 将数据存储器的将数据存储器的 40H 4FH40H 4FH 的内容复制成的内容复制成 00H 0FH00H 0FH 并将 并将 40H 40H 4FH4FH 的内容整体复制到外部数据存储器的的内容整体复制到外部数据存储器的 1050H 105FH 1050H 105FH 2 2 P1P1 口接八只二极管 使二极管逐个循环点亮口接八只二极管 使二极管逐个循环点亮 ORG 0000H AJMP START ORG 0100H START MOV A 00H MOV R0 40H LOOP MOV R0 A INC A INC R0 CJNE A 10H LOOP SECOND MOV DPTR 1050H MOV R1 40H COPY MOV A R1 MOVX DPTR A INC DPTR INC R1 CJNE R1 50H COPY SJMP END 实验二 外部中断实验二 外部中断 1 1 用单脉冲信号申请中断 在中断服务程序中对输出信号进行翻用单脉冲信号申请中断 在中断服务程序中对输出信号进行翻 转 可通过转 可通过 P1 0P1 0 接一二极管观察 接一二极管观察 ORG 0000H LJMP START ORG 0003H LJMP INT ORG 0100H START SETB EX0 SETB PX0 SETB IT0 SETB EA SJMP INT CPL P1 0 RETI END 2 2 用单脉冲信号申请中断 要求对中断进行累加计数 并将计数用单脉冲信号申请中断 要求对中断进行累加计数 并将计数 结果显示在二极管上结果显示在二极管上 ORG 0000H LJMP START ORG 0003H LJMP INT ORG 0100H START MOV A 00H MOV P1 A SETB EX0 SETB PX0 SETB IT0 SETB EA SJMP INT MOV P1 A INC A RETI END 实验三 定时器实验实验三 定时器实验 1 1 用定时器用定时器 1 1 的方式的方式 1 1 定时 定时 P1 0P1 0 节发光二极管 使二极管每节发光二极管 使二极管每 秒闪烁五次秒闪烁五次 ORG 0000H LJMP MAIN ORG 001BH LJMP INT ORG 0100H MAIN MOV TMOD 10H MOV TH1 3CH MOV TL1 0B0H 50ms 2 100ms MOV R2 2 SETB EA SETB ET1 SETB TR1 SJMP INT DJNZ R2 NEXT CPL P1 0 MOV R2 2 NEXT MOV TH1 3CH MOV TL1 0B0H SETB TR1 RETI END 2 2 用定时器用定时器 1 1 的方式的方式 2 2 计数 计数 T1T1 引脚接单脉冲 用引脚接单脉冲 用 P1P1 口接二极口接二极 管显示计数 管显示计数 ORG 0000H LJMP MAIN ORG 001BH LJMP LOOP ORG 0100H MAIN MOV TMOD 60H MOV TH1 00H MOV TL1 00H SETB EA SETB ET1 SETB TF1 SETB TR1 SJMP LOOP MOV P1 TL1 LJMP LOOP RETI END 实验四 串行通信实验四 串行通信 波特率波特率 24002400 bit sbit s PCPC 发送发送 8 8 个字节的数据给单片机 单片机接受个字节的数据给单片机 单片机接受 完数据后发送两个字节完数据后发送两个字节 55H55H 和和 AAHAAH 给给 PCPC 机 使用查询方式 机 使用查询方式 ORG 0000H AJMP MAIN ORG 0030H MAIN MOV SCON 50H MOV PCON 00H MOV TMOD 20H SETB TR1 MOV TL1 0F3H MOV TH1 0F3H LOOP MOV R0 30H MOV R1 08H WAIT1 JBC RI RECEIVE SJMP WAIT1 RECEIVE MOV A SBUF MOV R0 A INC R0 DJNZ R1 WAIT1 MOV A 55H MOV SBUF A WAIT21 JBC TI SEND SJMP WAIT21 SEND MOV A 0AAH MOV SBUF A WAIT22 JNB TI WAIT22 CLR TI SJMP LOOP END 实验五 数码管显示及键盘扫描实验五 数码管显示及键盘扫描 1 1 将将 30H 32H30H 32H 中存储的中存储的 6 6 位十进制数在位十进制数在 6 6 个数码管上显示出来个数码管上显示出来 要求编写一个将内存单元中的压缩 要求编写一个将内存单元中的压缩 BCDBCD 码转换为两个七段显示码码转换为两个七段显示码 的子程序和延时子程序 的子程序和延时子程序 ORG 0000H LJMP MAIN ORG 0030H MAIN MOV 30H 12H MOV 31H 34H MOV 32H 56H MOV R0 30H MOV R1 20H BCD MOV A R0 SWAP A ANL A 0FH ACALL CTAB MOV R2 A MOV A R0 ANL A 0FH ACALL CTAB MOV R3 A MOV DPTR 8002H MOV A R1 MOVX DPTR A MOV DPTR 8004H MOV A R2 MOVX DPTR A MOV A R1 RR A MOV R1 A LCALL DLEY MOV DPTR 8002H MOV A R1 MOVX DPTR A MOV DPTR 8004H MOV A R3 MOVX DPTR A MOV A R1 RR A MOV R1 A LCALL DLEY INC R0 CJNE R0 33H BCD LJMP MAIN CTAB PUSH DPH PUSH DPL MOV DPTR TAB MOVC A A DPTR POP DPL POP DPH RET TAB DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7 CH 39H 5EH 79H 71H DLEY MOV R7 02H DL MOV R6 0FFH DL1 DJNZ R6 DL1 DJNZ R7 DL RET END 2 2 扫描矩阵键盘 将对应键盘值送扫描矩阵键盘 将对应键盘值送 LEDLED 显示显示 ORG 0000H LJMP START ORG 1000H START ACALL KEY1 AJMP START KEY1 ACALL KEY14 JNZ KEY3 KEY2 ACALL KEY16 AJMP KEY1 KEY3 ACALL KEY16 ACALL DELAY ACALL KEY14 JNZ KEY4 ACALL KEY16 AJMP KEY1 KEY4 MOV R2 0FEH MOV R4 00H KEY5 MOV DPTR 8002H MOV A R2 MOVX DPTR A MOV DPTR 8001H MOVX A DPTR JB ACC 0 KEY6 MOV A 00H AJMP KEY9 KEY6 JB ACC 1 KEY7 MOV A 06H AJMP KEY9 KEY7 JB ACC 2 KEY8 MOV A 0CH AJMP KEY9 KEY8 JB ACC 3 KEY12 MOV A 12H KEY9 ADD A R4 KEY10 MOV R5 A KEY11 ACALL KEY14 JNZ KEY11 MOV A R5 ACALL KEY15 RET KEY12 INC R4 MOV A R2 JNB ACC 5 KEY13 RL A MOV R2 A AJMP KEY5 KEY13 AJMP KEY1 KEY14 MOV DPTR 8002H MOV A 00H MOVX DPTR A MOV DPTR 8001H MOVX A DPTR CPL A ANL A 0FH RET KEY15 MOV DPTR TABLE MOVC A A DPTR MOV R3 A KEY16 MOV DPTR 8002H MOV A 01H MOVX DPTR A MOV DPTR 8004H MOV A R3 MOVX DPTR A ACALL DELAY RET DELAY MOV R7 12 LOOP MOV R6 250 DJNZ R6 DJNZ R7 LOOP RET TABLE DB 7EH 7EH 5EH 79H 71H 3FH 7EH 7EH 39H 4FH 5BH 06 H 7EH 7EH 7CH 7DH 6DH 66H 7EH 7EH 77H 6FH 7FH 07H END 实验六 实验六 D AD A 和和 A DA D 1 1 利用实验箱上的电位器提供模拟量输入 将模拟量转换成二进利用实验箱上的电位器提供模拟量输入 将模拟量转换成二进 制数字量 将转换的结果用制数字量 将转换的结果用 P1P1 口输出到二极管显示 口输出到二极管显示 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV DPTR 8000H MOV A 00H MOVX DPTR A MOV R2 100 DJNZ R2 MOVX A DPTR MOV P1 A LJMP MAIN END 2 2 用用 DAC0832DAC0832 将一个数值转换为模拟电压 该模拟电压接将一个数值转换为模拟电压 该模拟电压接 ADC0809ADC0809 的一个模拟输入进行模的一个模拟输入进行模 数转换 转换结果通过数转换 转换结果通过 P1P1 口送到口送到 二极管显示 二极管显示 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV A 90H MOV DPTR 9000H MOVX DPTR A MOV DPTR 8000H MOVX DPTR A MOV R2 64H DJNZ R2 MOVX A DPTR MOV P1 A SJMP END 实验七 电子钟实验七 电子钟 实现一个实现一个 2424 小时制的电子钟程序 在小时制的电子钟程序 在 6 6 个数码管上显示时分秒 用个数码管上显示时分秒 用 定时器定时器 0 0 中断更新计时 以压缩中断更新计时 以压缩 BCDBCD 码形式保存在内部码形式保存在内部 RAMRAM 的的 30H30H 31H31H 和和 32H32H 单元 单元 可以通过串行口调时 可以通过串行口调时 ORG 0000H AJMP MAIN ORG 000BH LJMP CLOCK ORG 0023H LJMP INPUT ORG 0100H MAIN MOV TMOD 21H CLR A MOV 30H A MOV 31H A MOV 32H A MOV TH0 3CH MOV TL0 0B0H MOV 50H 14H 50 20 MOV TH1 0F3H MOV TL1 0F3H 波特率波特率 MOV SCON 50H SETB PS MOV IE 92H SETB TR1 SETB TR0 SLED MOV R0 30H MOV R1 20H LJMP LED CLOCK MOV TH0 3CH MOV TL0 0B0H DJNZ 50H RETURN MOV 50H 14H MOV A 01H ADD A 32H DA A MOV 32H A CJNE A 60H RETURN MOV 32H 00H MOV A 01H ADD A 31H DA A MOV 31H A CJNE A 60H RETURN MOV 31H 00H MOV A 01H ADD A 30H DA A MOV 30H A CJNE A 24H RETURN MOV 30H 00H RETURN RETI LED MOV A R0 SWAP A ANL A 0FH ACALL CTAB MOV R2 A MOV A R0 ANL A 0FH LCALL CTAB MOV R3 A MOV DPTR 8002H MOV A R1 MOVX DPTR A MOV DPTR 8004H MOV A R2 MOVX DPTR A MOV A R1 RR A MOV R1 A LCALL DLY MOV DPTR 8002H MOV A R1 MOVX DPTR A MOV DPTR 8004H MOV A R3 MOVX DPTR A MOV A R1 RR A MOV R1 A LCALL DLY INC R0 CJNE R0 33H LED LJMP SL

温馨提示

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

评论

0/150

提交评论