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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实验报告.docx

1、单片机实验报告实验一 P1口输出实验一、实验要求P1作输出口,接8只发光二极管,编写程序,使发光二极管循环点亮二、实验目的1.进一步掌握源程序编辑和汇编源程序的方法;2.学习P1口的使用方法; 3.初步练习MCS51指令系统中的一些指令;4.掌握利用仿真器调试程序的方法。三、实验器材Lab2000单片机仿真实验系统 一套PC机 一台四、实验电路及连线五、实验说明1.P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。2.延时子程序的延时计算问题对于程序 Delay: MOV R6,#0

2、H MOV R7, #0H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:【(256256+256)22+2】126 263ms六、实验框图 七、实验步骤1.连接PC机和实验系统并根据电路图连线;2.程序输入、汇编、运行、调试同时观察各窗口(CPU窗口、数据窗口等)变化;3.观察实验现象,作好记录;4.总结实验,书写实验报告。八、实验程序1、灯亮灭: mov p1,#0hdelay1: mov r6,#0h m

3、ov r7,#0hdelayloop1: djnz r6,delayloop1 djnz r7,delayloop1 mov p1,#80h delay2: mov r6,#0h mov r7,#0hdelayloop2: djnz r6,delayloop2 djnz r7,delayloop2 ret2、流水灯程序: main: mov p1,#18h lcall delay mov p1,#24h lcall delay mov p1,#42h lcall delay mov p1,#81h lcall delay jmp maindelay: mov r6,#0h mov r7,#0h

4、 l1: djnz r6,l1 djnz r7,l1 ret3、74HC245总线收发器(bus transceiver),典型的CMOS型三态缓冲门电路。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。 图一 74HC245引脚分布图 图二 74HC245实物图第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。第29脚“A”信号输入输出端,A1=B1、A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果

5、DIR=“0”OE=“0”则B1输入A1输出,其它类同。第1118脚“B”信号输入输出端,功能与“A”端一样,不再描述。第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。第10脚GND,电源地。第20脚VCC,电源正极。74HC245的作用:信号功率放大第1脚DIR,为输入输出端口转换用, DIR=“1”高电平时信号由“A”端输入“B”端输出, DIR=“0”低电平时信号由“B”端输入“A”端输出。第29脚“A”信号输入输出端,A1=B1A8=B8,A1与B1是一组,如果DIR=“1”G=“0”则A1输入B1输出,其它类同。如

6、果DIR=“0”G=“0”则B1输入A1输出,其它类同。 第1118脚“B”信号输入输出端,功能与“A”端一样,不在描述。第19脚G,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用 第10脚GND,电源地。第20脚VCC,电源正极。九、实验总结通过本次实验掌握源程序编辑和汇编源程序的方法,学习P1口的使用方法; 初步练习MCS51指令系统中的一些指令,掌握利用仿真器调试程序的方法,同时,通过查找芯片74HC245的资料,了解并掌握了74HC245的引脚分布及其作用。实验二 定时器实验一、实验要求用CPU内部定时器中断方式计时,实现每一秒钟

7、输出状态发生一次反转.二、实验目的1.学习8031内部计数器的使用和编程方法。2.进一步掌握中断处理程序的编程方法。三、实验器材Lab2000单片机仿真实验系统 一套PC机 一台四、实验电路及连线五、实验说明1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。3、内部计数器用作定时器时,是对机

8、器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100us中断一次, 所以定时常数的设置可按以下方法计算:机器周期=126MHZ=2uS(256-定时常数)2uS=100us定时常数=206. 然后对100us中断次数计数10000次,就是1秒钟.4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。六、实验框图(见下页) 七、实验步骤1.连接PC机和实验系统,并根据电路图连线;2.程序输入、汇编、运行、调试同时观察各窗口(C

9、PU窗口、数据窗口等)变化;3.观察现象并记录实验结果;4.总结实验,书写实验报告。八 实验程序如下所示:Tick equ 10000 ; 10000 x 100us = 1s T100us equ 256-50 ; 100us时间常数(6M) C100us equ 30h ; 100us记数单元 LEDBuf equ 0 LED equ P1.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

10、Exit ; 100us 记数器不为0, 返回 mov C100us, #high(Tick) mov C100us+1, #low(Tick) cpl LEDBuf ; 100us 记数器为0, 重置记数器 ; 取反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 LED mov C100us, #high(Tick) mov C100u

11、s+1, #low(Tick)Loop: mov c, LEDBuf mov LED, c ljmp Loop end九、实验总结学习了8051内部计数器的使用和编程方法,知道了如何去设置定时器的初始值,以及其时间的计算方法,深入理解并掌握了其工作原理、工作方式、单片机定时的设置等,同时也进一步掌握中断处理程序的编程方法。 实验三 外部中断实验一、实验要求用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。二、实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。三、实验电路及连线四、实验说明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入

12、时的状态。2.必须在中断程序中设定是否允许中断重入,即设置EXO位。本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的INTO程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。INTO端接单次脉冲发生器。P1.0接LED灯,以查看信号反转.五、实验框图 六、实验程序:LED equ P1.0LEDBuf equ 0 ljmp Start org 3Interrupt0: push PSW ; 保护现场 cpl LEDBuf ; 取反

13、LED mov c, LEDBuf mov LED, c pop PSW ; 恢复现场 retiStart: clr LEDBuf clr LED mov TCON, #01h ; 外部中断0下降沿触发 mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位; (EA) ljmp $ end 七、实验总结通过本次实验了解并学习了外部中断技术的基本使用方法,同时,也学习中断处理程序的编程方法。实验四 单片机键盘显示实验一、实验要求利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块:键输入模块:扫描

14、键盘、读取一次键盘并将键值存入键值缓冲单元。显示模块:将显示单元的内容在显示器上动态显示。主程序:调用键输入模块和显示模块。二、实验目的1.掌握键盘和显示器的接口方法和编程方法。2.掌握键盘扫描和LED八段码显示器的工作原理。三、实验器材Lab2000单片机仿真实验系统 一套PC机 一台四、实验电路及字型表(字型表见下页,这里只是草图,详细原理参见图1)键盘草图 数码管显示器草图数据位(0FE06H) 时钟位(0FE04H)行码(0FE00H) 列码(0FE02H) 位选通信号(0FE02H)五、实验说明LED显示电路8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示

15、共有6位,用动态方式显示。8位段码是由74LS164输出。6位位码由可编程器件CPLD输出,经MC1413反向驱动后,选择相应显示位。74LS164是串行输入并行输出转换电路,串行输入的数据位和时钟位由可编程器件CPLD输出,写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。数据位输出地址为0FE06H,时钟位输出地址为0FE04H,位选通输出地址为 0FE02H。七段数码管的字型代码表显示字形gfedcba段码001111113fh1000011006h210110115

16、bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fhA111011177hB11111007chC011100139hD10111105ehE111100179hF111000171h键盘电路64的小键盘,向列扫描码地址(0FE02H)逐列输出低电平,然后从行码地址(0FE00H)读回.如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键. 在判断有键按下后,要有一定的延时,防止键盘抖动.列扫描码还可以分时用作L

17、ED的位选通信号.六、实验框图(见下页)七、实验步骤1.连接PC机和实验系统;2.程序输入、汇编、运行、调试同时观察各窗口(CPU窗口、数据窗口等)变化;3.观察实验现象并记录;4.总结实验,书写实验报告。 八、实验程序键盘扫描显示实验程序如下:OUTBIT equ 0FE02h ; 位控制口CLK164 equ 0FE04h ; 段控制口(接164时钟位)DAT164 equ 0FE06h ; 段控制口(接164数据位)IN equ 0FE00h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲 ljmp StartLEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh,

18、 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序 mov r7, #0DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示Loop: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 关所有八段管 mov a, r0 mov B, #8 ; 送16

19、4DLP: rlc a mov r3, a mov acc.0, c mov dptr, #DAT164 movx dptr, a mov dptr, #CLK164 setb acc.0 movx dptr, a clr acc.0 movx dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2 movx dptr, a ; 显示一位八段管 mov r6, #1 call Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop retTestKey: mov dptr

20、, #OUTBIT mov a, #0 movx dptr, a ; 输出线置为0 mov dptr, #IN movx a, dptr ; 读入键状态 cpl a anl a, #0fh ; 高四位不用 retKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hGetKey: mov dptr, #OUTBIT mov P2, dph mov r0,

21、 #Low(IN) mov r1, #00100000b mov r2, #6KLoop: mov a, r1 ; 找出键所在列 cpl a movx dptr, a cpl a rr a mov r1, a ; 下一列 movx a, r0 cpl a anl a, #0fh jnz Goon1 ; 该列有键入 djnz r2, KLoop mov r2, #0ffh ; 没有键按下, 返回 0ffh sjmp ExitGoon1: mov r1, a ; 键值 = 列 X 4 + 行 mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 m

22、ov a, r1 ; r1中为读入的行值 mov r1, #4LoopC: rrc a ; 移位找出所在行 jc Exit inc r2 ; r2 = r2+ 行值 djnz r1, LoopCExit: mov a, r2 ; 取出键码 mov dptr, #KeyTable movc a, a+dptr mov r2, aWaitRelease: mov dptr, #OUTBIT ; 等键释放 clr a movx dptr, a mov r6, #10 call Delay call TestKey jnz WaitRelease mov a, r2 retStart: mov sp,

23、 #40h mov LEDBuf, #0ffh ; 显示 8.8.8.8. mov LEDBuf+1, #0ffh mov LEDBuf+2, #0ffh mov LEDBuf+3, #0ffh mov LEDBuf+4, #0 mov LEDBuf+5, #0MLoop: call DisplayLED ; 显示 call TestKey ; 有键入? jz MLoop ; 无键入, 继续显示 call GetKey ; 读入键码 anl a, #0fh ; 显示键码 mov dptr, #LEDMap movc a, a+dptr mov LEDBuf+5, a ljmp MLoopend

24、九、实验总结通过本次实验,理解了“实验目的”所涉及的知识,熟练掌握了“键输入模块”、“显示模块”的编程和主程序,学习并熟悉了显示电路和键盘电路,掌握了键盘和显示器的接口方法和编程方法,掌握了键盘扫描和LED八段码显示器的工作原理。实验五 单片机串行口通讯实验一、实验要求利用8031单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。二、实验目的 1.掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2.了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3.学习串口通讯的中断

25、方式的程序编写方法。三、实验器材Lab2000单片机实验系统 一套PC机 一台(两组合作)四、实验电路和连线显示电路和键盘电路见实验三。 甲方 乙方五、实验说明通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。六、实验框图(见下页)七、实验步骤1.连接实验系统和PC机并根据电路图连线;2.程序输入、汇编、运行、调试同时观察各窗口变化;3.观察记录实验现象;4.根据要求完成实验报告。七、实验程序OUTBIT equ 0FE02h ;

26、位控制口CLK164 equ 0FE04h ; 段控制口(接164时钟位)DAT164 equ 0FE06h ; 段控制口(接164数据位)IN equ 0FE00h ; 键盘读入口HasRcv equ 20h.0 ; 接收标志位LEDBuf equ 40h ; 显示缓冲RCVBuf equ 50H ; 接收缓冲 ORG 0000H LJMP START; 串行口中断程序 ORG 0023H JNB TI,S0_R CLR TI NOP SJMP S0_RETS0_R: ; 接收数据 CLR RI MOV RCVBUF,SBUF ; 保存数据 SETB HasRcv ; 提示收到数据 NOPS

27、0_RET: RETILEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序 mov r7, #0DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示Loop: mov dptr, #OUTBIT mov a, #0 mo

28、vx dptr, a ; 关所有八段管 mov a, r0 mov B, #8 ; 送164DLP: rlc a mov r3, a mov acc.0, c mov dptr, #DAT164 movx dptr, a mov dptr, #CLK164 setb acc.0 movx dptr, a clr acc.0 movx dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2 movx dptr, a ; 显示一位八段管 mov r6, #1 call Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop retTestKey: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 输出线置为0 mov dptr, #IN movx a, dptr ; 读入键状态 cpl a anl a, #0fh ; 高四位不用 retKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h

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

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