ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:29.70KB ,
资源ID:9968441      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9968441.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新南昌大学单片机实验报告DOC.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新南昌大学单片机实验报告DOC.docx

1、最新南昌大学单片机实验报告DOC实验一 I/O口输入输出实验一、实验目的 掌握单片机P1口、P3口的使用方法。 二、实验内容 以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验步骤 1)系统各跳线器处在初始设置状态。用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口); 用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块JD8(P1 口)。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程

2、序。编译无误后,下载程序 运行。 3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。 五、实验参考程序;/* ;文件名: Port for MCU51 ;功能: I/O口输入、输出实验 ;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口); ; 用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。 ;/* DIR BIT P3.0 ORG 0000H LJMP START ORG 0100H START: OUTPUT1: MOV A, #0FEH MOV R5, #8 LOOP1: CLR C MOV C,DIR JC OU

3、TPUT2 MOV P1, ARL AACALL DELAY DJNZ R5, LOOP1 SJMP OUTPUT1 OUTPUT2: MOV A, #07FH MOV R5, #8 LOOP2: CLR C MOV C,DIR JNC OUTPUT1 MOV P1, A RR A ACALL DELAY DJNZ R5,LOOP2 SJMP OUTPUT2 DELAY: MOV R6,#0 DELAYLOOP1: MOV R7,#0 DELAYLOOP2: NOP NOP DJNZ R7,DELAYLOOP2 DJNZ R6,DELAYLOOP1 RETEND 6、实验结果当八位逻辑电平的K

4、0拨到上方,即输出高电平时,实验箱B5区的八个LED灯从左至右循环点亮,当K0拨到下方,即输出低电平时,八个LED灯从右至左循环点亮。7、结果分析程序通过查询方式不断检测P3.0口的输入状态,当P3.0输入为0时,由P1口通过左移指令RL轮流输出低电平驱动LED发光,在左移时通过软件延时控制LED 亮的时间;当P3.0输入为1时,由P1口通过右移指令RR轮流输出低电平驱动LED发光,在右移时同样通过软件延时控制LED 亮的时间,如此循环扫描查询,便可实现流水灯的效果。实验二 外部中断实验一、实验目的 学习外部中断技术的基本使用方法。 二、实验内容 INT0 端接单次脉冲发生器。按一次脉冲产生一

5、次中断,CPU 使P1.0 状态发生一次反转,P1.0接LED 灯,以查看信号反转。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验步骤 1)系统各跳线器处在初始设置状态,用导线连接单次脉冲模块的输出端到CPU 模块的P32;CPU 模块的P10 接八位逻辑电平显示模块的灯。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)连续按动单次脉冲产生电路的按键,发光二极管L0 每按一次状态取反,即隔一次点亮。 五、实验参考程序 ;/* ;文件名: EXint for MCU51 ;功能: 外部中断实验 ;接线: 导线连

6、接单次脉冲模块的输出端到CPU模块的P32, ; CPU模块的P10接八位逻辑电平显示模块的L0灯。 ;/* LED BIT P1.0 LEDBUF BIT 20H ORG 0 LJMP START ORG 3 INTERRUPT0: PUSH PSW ; 保护现场 CPL LEDBUF ; 取反LED MOV C, LEDBUF MOV LED, C POP PSW ; 恢复现场 RETI START: CLR LEDBUF CLR LED MOV TCON, #01H ; 外部中断0下降沿触发 MOV IE, #81H ; 打开外部中断允许位(EX0)及总中断允许位(EA) OK: LJM

7、P OK END 六、实验结果每按下E3区的单次脉冲触发按钮时,B5区的发光二极管状态取反一次,即原来是亮按下时灭,原来是灭则按下时亮。7、结果分析 程序由外部中断0实现,外部中断0由下降沿触发,外部输入由单次脉冲触发器输入,每次按下按钮时会触发单次脉冲,产生一个下降沿,从而使程序产生中断,在中断服务函数的程序里面对P1.0取反,由P1.0驱动LED,就可实现本实验的功能。实验三 定时/计数器实验一、实验目的学习MCS-51 内部计数器的使用和编程方法。二、实验内容使用MCS-51 内部定时/计数器,定时一秒钟,CPU 运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一

8、次。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。4、实验步骤1)系统各跳线器处在初始设置状态,用导线连接CPU 模块P10 到八位逻辑电平显示模块的L0。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。五、实验参考程序;/*;文件名: TIMER FOR MCU51;功能: 定时/计数器实验;接线: 导线连接CPU模块P10到八位逻辑电平显示模块的L0.;/* TICK EQU 10000 ; 10000 X 100US = 1S T100US EQU 156 ; 10

9、0US时间常数(6M) C100US EQU 30H ; 100US记数单元 LEDBUF BIT 20H ORG 0 LJMP START ORG 000BHT0INT: PUSH PSW MOV A, C100US+1 JNZ GOON DEC C100USGOON: DEC C100US+1 MOV A, C100US ORL A, C100US+1 JNZ EXIT ; 100US 记数器不为0, 返回 MOV C100US, #27H ; #HIGH(TICK) MOV C100US+1, #10H ; #LOW(TICK) CPL LEDBUF ; 100US 记数器为0, 重置记

10、数器 ; 取反LEDEXIT: POP PSW RETISTART: MOV TMOD, #02H ; 方式2, 定时器 MOV TH0, #T100US MOV TL0, #T100US MOV IE, #10000010B ; EA=1, IT0 = 1 SETB TR0 ; 开始定时 CLR LEDBUF CLR P1.0 MOV C100US, #27H ;#HIGH(TICK) MOV C100US+1, #10H ;#LOW(TICK)LOOP: MOV C, LEDBUF MOV P1.0, C LJMP LOOPEND6、实验结果运行程序之后,B5区的发光二极管L0隔一秒点亮一

11、次,每次点亮时间为一秒。七、结果分析 本实验通过定时器0的方式2实现精确定时,但定时器的最长定时时间达不到一秒,所以通过一个时间变量实现,总的定时时间等于定时器定时时间乘以时间变量初值,这样就可实现一秒的定时,程序通过扫描不断检测时间变量的值,当定时时间一秒到时,对P1.0的状态取反,实现L0每隔一秒亮一次。实验四 交通灯控制实验一、实验目的掌握十字路口交通灯控制方法。二、实验内容利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4 位LED 数码管显示时间,LED 显示红绿灯状态。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验步骤1)

12、系统各跳线器处在初始设置状态。P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)观察十字路口交通灯效果。五、实验参考程序;/*;文件名:交通灯程序 FOR MCU51;功能:双色LED模拟交通灯信号,并通过调用静态数码显示状态时间。;接线:P1.0同时接G1、G3,P1.1接R1、R3,P1.2接G2、G4,P1.3同时接R2、R4,;P1.6、P1.7接静态数码显示的DIN、CL

13、K。;/* SECOND1 EQU 30H ;东西秒寄存器 SECOND2 EQU 31H ;南北秒寄存器 DBUF EQU 40H ;显示缓冲1 TEMP EQU 44H ;显示缓冲2 LED_G1 BIT P1.0 ;东西绿灯 LED_R1 BIT P1.1 ;东西红灯 LED_G2 BIT P1.2 ;南北绿灯 LED_R2 BIT P1.3 ;南北红灯 DIN BIT P1.6 ;串行显示数据 CLK BIT P1.7 ;串行显示时钟 ORG 0000H LJMP START ORG 0100HSTART: LCALL STATE0 ;调用状态0 LCALL DELAY ;调用延时 M

14、OV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定时初值50MS MOV TL0, #0B0H SETB TR0 ;启动T0 CLR EALOOP: MOV R2,#20 ;置1S计数初值 50MS*20=1S MOV R3,#20 ;红灯20S MOV SECOND1,#25 ;东西秒显示初值25S MOV SECOND2,#25 ;南北秒显示初值25S LCALL DISPLAY LCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50MS MOV

15、 TL0, #0B0H SETB TR0 ;启动T0 DJNZ R2,WAIT1 ;判1S到否?未到继续状态1 MOV R2,#20 ;置50MS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT1 ;状态1维持20S MOV R2,#5 ;置50MS计数初值 5*4=20 MOV R3,#3 ;绿灯闪3S MOV R4,#4 ;闪烁间隔200MS MOV SECOND1,#5 ;东西秒显示初值5S MOV SECOND2,#5 ;南北秒显示初值5S LCALL DISPLAYWAIT2: LCAL

16、L STATE2 ;调用状态2 JNB TF0,WAIT2 ;查询50MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50MS MOV TL0, #0B0H DJNZ R4,WAIT2 ;判200MS到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪 MOV R4,#4 ;闪烁间隔200MS DJNZ R2,WAIT2 ;判1S到否?未到继续状态2 MOV R2,#5 ;置50MS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT2 ;状态2维持3S MOV R2,#2

17、0 ;置50MS计数初值 MOV R3,#2 ;黄灯2S MOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2S LCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3 JNB TF0,WAIT3 ;查询30MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50MS MOV TL0, #0B0H DJNZ R2,WAIT3 ;判1S到否?未到继续状态3 MOV R2,#20 ;置50MS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPL

18、AY DJNZ R3,WAIT3 ;状态3维持2S MOV R2,#20 ;置50MS计数初值 MOV R3,#20 ;红灯20S MOV SECOND1,#25 ;东西秒显示初值25S MOV SECOND2,#25 ;南北秒显示初值25S LCALL DISPLAYWAIT4: LCALL STATE4 ;调用状态4 JNB TF0,WAIT4 ;查询50MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50MS MOV TL0, #0B0H DJNZ R2,WAIT4 ;判1S到否?未到继续状态4 MOV R2,#20 ;置50MS计数初值 DEC SECOND1

19、;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT4 ;状态4维持20S MOV R2,#5 ;置50MS计数初值 5*4=20 MOV R4,#4 ;闪烁间隔200MS MOV R3,#3 ;绿灯闪3S MOV SECOND1,#5 ;东西秒显示初值5S MOV SECOND2,#5 ;南北秒显示初值5S LCALL DISPLAYWAIT5: LCALL STATE5 ;调用状态5 JNB TF0,WAIT5 ;查询50MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值100MS MOV TL0, #0B0

20、H DJNZ R4,WAIT5 ;判200MS到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪 MOV R4,#4 ;闪烁200MS DJNZ R2,WAIT5 ;判1S到否?未到继续状态5 MOV R2,#5 ;置100MS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT5 ;状态5维持3S MOV R2,#20 ;置50MS计数初值 MOV R3,#2 ;黄灯2S MOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2S LCALL DIS

21、PLAYWAIT6: LCALL STATE6 ;调用状态6 JNB TF0,WAIT6 ;查询100MS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值100MS MOV TL0, #0B0H DJNZ R2,WAIT6 ;判1S到否?未到继续状态6 MOV R2,#20 ;置100MS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT6 ;状态6维持2S LJMP LOOP ;大循环STATE0: ;状态0 MOV P1,#0 CLR LED_G1 SETB LED_R1 ;

22、东西红灯亮 CLR LED_G2 SETB LED_R2 ;南北红灯亮 RETSTATE1: ;状态1 SETB LED_G1 ;东西绿灯亮 CLR LED_R1 CLR LED_G2 SETB LED_R2 ;南北红灯亮 RETSTATE2: ;状态2 CLR LED_R1 CLR LED_G2 SETB LED_R2 ;南北红灯亮 RETSTATE3: ;状态3 SETB LED_G1 SETB LED_R1 ;东西黄灯亮 CLR LED_G2 SETB LED_R2 ;南北红灯亮 RETSTATE4: ;状态4 CLR LED_G1 SETB LED_R1 ;东西红灯亮 SETB LED

23、_G2 ;南北绿灯亮 CLR LED_R2 RETSTATE5: ;状态5 CLR LED_G1 SETB LED_R1 ;东西红灯亮 CLR LED_R2 RETSTATE6: ;状态6 CLR LED_G1 SETB LED_R1 ;东西红灯亮 SETB LED_G2 SETB LED_R2 ;南北黄灯亮 RETDISPLAY: ;数码显示 MOV A, SECOND1 ;东西秒寄存器 MOV B, #10 ;16进制数拆成两个10进制数 DIV AB MOV DBUF+1,A MOV A,B MOV DBUF, A MOV A, SECOND2 ;南北秒寄存器 MOV B, #10 ;1

24、6进制数拆成两个10进制数 DIV AB MOV DBUF+3, A MOV A,B MOV DBUF+2, A MOV R0,#DBUF MOV R1,#TEMP MOV R7,#4DP10: MOV DPTR,#LEDMAP MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,DP10 MOV R0,#TEMP MOV R1,#4DP12: MOV R7,#8 MOV A,R0DP13: RLC A MOV DIN,C CLR CLK SETB CLK DJNZ R7,DP13 INC R0 DJNZ R1,DP12 RETLEDMA

25、P: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, , -DELAY: MOV R5, #5DLOOP0:MOV R6, #0DLOOP1:MOV R7, #0DLOOP2: NOP NOP DJNZ R7, DLOOP2 DJNZ R6, DLOOP1 DJNZ R5, DLOOP0 RETEND六、实验结果程序开始运行后,B5区模拟的东西红灯亮,南北绿灯亮,同时两个方向的数码管分别从25秒开始倒计时,当倒计时到5秒时

26、,南北绿灯闪亮3秒后变黄,再过2秒,即倒计时到0时,变为东西绿灯亮,南北红灯亮,同时两个方向的数码管分别同时从25秒开始倒计时,但倒计时到5秒时,东西绿灯闪亮3秒后变黄,再过2秒之后又回到初始状态,继续循环运行。七、结果分析 本实验通过双色的LED模拟交通灯的显示状态,并用静态数码管结合定时器实现定时及显示功能,将交通灯的显示分为六个不同的状态,程序运行之后进行计数显示,当计时时间到达某一个状态之后,跳转进入相应的状态执行,执行完之后继续进入下一个状态,实验通过程序模拟了交通灯的显示。实验五 串转并与并转串实验一、实验目的1掌握使用74LS164 扩展输出的方法。2掌握使用74LS165 扩展

27、输入的方法。二、实验内容使用74LS165 扩展输入数据,使用74LS164 扩展输出数据。74LS165 的并行口接八位逻辑电平输出(开关),CPU 使用P1.0、P1.1 和P1.2 串行读入开关状态;74LS164 的并行口接一只数码管,CPU 使用P1.3 和P1.4 串行输出刚读入的开关状态,使之在数码管上显示出来。三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验步骤1)系统各跳线器处在初始设置状态。用导线对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD 到CPU 模块的P10、P11、P12。用导线对应连接静态数码管显示模块的DIN、CLK

28、到CPU 模块的P13、P14。2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。3)观察数码(八段码)管的亮灭与拨动开关的状态是否一致。拨动开关拨下输出为低电平,段码点亮。五、实验参考程序;/*;/*文件名:164165 串转并,并转串实验程序;功能:把开关量通过74*165串行输入到内存,并通过74*164串行输出到数;码管上显示。;接线:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD,;P1.3、P1.4接静态数码显示的DIN、CLK。;/* QH165 BIT P1.0 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H ORG 0000H AJMP START ORG 00B0H START: SETB CLK165 CLR S

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1