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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实验指导书.docx

1、单片机实验指导书目录实验一 P1口输入、输出实验 2实验二 继电器控制实验 8实验三 音频控制实验 11实验四 程序调试 14实验五 5LED静态串行显示实验 16实验六 6LED动态扫描显示实验 23实验七 查询式键盘实验 31实验八 阵列式键盘实验 39实验九 计数器实验 50实验十 定时器实验 52实验十一 外部中断实验 58实验一 P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是

2、不正确的。三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。1、使用单片机最小应用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显

3、示情况。发光二极管单只从右到左轮流循环点亮。实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。四、流程图及源程序 1流程图 (A)P1口循环点灯程序框图(B)P1口输入输出程序框图2源程序:(一)实验一ORG 0000HLJMP STARTORG 0030HSTART: mov a, #0FEh

4、mov r2,#8Output: mov P1,a rl a Acall Delay djnz r2,Output Ljmp STARTDelay: mov r6,#0 mov r7,#0DelayLoop: ;延时程序 djnz r6,DelayLoop djnz r7,DelayLoop ret end(二)实验二KeyLeft BIT P1.0 ;定义 KeyRight BIT P1.1Ledleft BIT P1.2LedRight BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KeyLeft ;欲读先置一 SETB KeyRightL

5、oop: Mov c,keyleft Mov LEDLeft,c MOV C,KeyRight Mov LEDRIGHt,c LJMP Loop END五、思考题(1)对于本实验延时子程序Delay: MOV R6,0 MOV R7, 0DelayLoop:DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二 继电器控制实验一、实验目的1、学习I/O端口的使用方法2、掌握继电器的控制的基本方法3、了解用弱电控制强电的方法二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子

6、电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一任务。继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势。本电路的控制端为高电平时,继电器常开触点吸合,同时LED灯被点亮。当控制端为低电平时,继电器不工作。三、实验内容及步骤用P1.0作为控制输出口,接继电器电路,使继电器重复吸合与断开。1、使用单片机最小应用系统1模块,用导线连接P1.0端口到继电器与温度控制部件模块的控制口。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,

7、请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 继电器.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管亮灭情况和听继电器开合的声音,继电器重复延时吸合与延时断开。四、流程图及源程序源程序清单: Output BIT P1.0 ;P1.0输出ORG 0000HLJMP STARTORG 0030HSTART: clr Output ;断开 call Delay setb Output ;吸合 c

8、all Delay ljmp STARTDelay: mov r6,#0 mov r7, #0DLoop: djnz r7, DLoop djnz r6, DLoop ret end五、思考题试用单片机的其他输入输出口控制继电器。六、电路图音频控制实验一、实验目的1学习输入/输出端口控制方法2了解音频发声原理二、实验仪器实验箱 计算机三、实验内容及步骤P1.0输出音频信号接音频驱动电路,使扬声器周期性的发声。1、使用单片机最小应用系统1模块,用导线将P1.0接到音频驱动电路输入端。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Kei

9、l uVision2仿真软件,首先建立本实验的项目文件,接着添加 音频.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,扬声器周期性的发出单频声音。四、流程图及源程序1源程序OUTPUT BIT P1.0 ;P1.0 端口ORG 0000HLJMP STARTORG 0030HSTART: CLR C MOV OUTPUT ,C LCALL DELAY SETB C MOV OUTPUT ,C LCALL DELAY AJMP STARTDELAY: MOV R5,#4

10、D1: MOV R6,#20D2: MOV R7,#123NOPDJNZ R7,$DJNZ R6,D2DJNZ R5,D1 RET END思考题:如何改变音调的高低?实验四 程序设计(2)一、实验目的1、掌握单片机仿真及简单程序设计与调试方法。2、掌握KEILC环境中查看指令操作结果的技巧。二、实验仪器计算机三、实验步骤1、在对工程成功地进行汇编、连接以后,按 Ctrl+F5 或者使用菜单 Debug-Start/Stop Debug Session 即可进入调试状态,单步调试,全速运行两种模式下调试。2、在程序行设置/移除断点的方法是将光标定位于需要设置断点的程序行,使 用菜单 Debug-

11、Insert/Remove BreakPoint 设置或移除断点(也可以用鼠标在该行双击实现同 样的功能);Debug-Enable/D isable Breakpoint 是开启或暂停光标所在行的断点功能; Debug-Disable All Breakpoint 暂停所有断点;Debug-Kill All BreakPoint 清除所有的断点设 置。这些功能也可以用工具条上的快捷按钮进行设置。3建立一个工程添加以下程序:(1)汇编、连接生成可执行文件。利用单步,执行到断点处两种方法执行程序。(2)观察结果、分析程序、说明功能。实验分析:设计小程序,观察以下几组指令并分析其操作结果。ADD

12、ADDCXCH XCHDANL ORL ORG 0000H LJMP MAIN ORG 0040H MAIN:MOV A,#0FEH LOOP:MOV P1,A LCALL D_1s RL A AJMP MAIN D_1s:MOV R6,#100 ;1D10ms:MOV R5,#40 ;1 DL:MOV R4,#123 ;1 NOP;1 DJNZ R4,$ ;2*123 DJNZ R5,DL ;2 DJNZ R6,D10ms ;2 RET ENDORG 0000HMOV R2,#32HMOV A,R2SWAP A ANL A,#0FHMOV B,#0AHMUL AB实验五 5LED静态串行显示

13、实验一、实验目的1、掌握数字、字符转换成显示段码的软件译码方法2、静态显示的原理和相关程序的编写二、实验电路1、静态显示,电路图中所示。显示器由5个共阴极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。5个串/并移位寄存器芯片74LS164首尾相连。每片的并行输出作为LED数码管的段码。74LS164的引脚图如图所示;74LS164为8位串入并出移位寄存器,1、2为 串行输入端,Q0Q7为并行输出端,CLK为移位时钟脉冲,上升沿移入一位;MR为清零端,低电平时并行输出为零。三、实验内容及步骤 单片机的P1.0作数据串行输出,P1.1作移位脉冲输出,当然用户也可以用其他I/

14、O口。 1、使用单片机最小应用系统1模块,用导线连接P1.0、P1.1到串行静态显示模块的DIN、CLK端。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 串行显示.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。 5LED显示“80C51”。停止程序运行,显示不变,说明静态显示模块具有数据锁存功能。四、流程图及源程序1、 流程图2、源程序

15、 DBUF0 EQU 30H ;置存储区首址 TEMP EQU 40H ;置缓冲区首址 DIN BIT P1.0 ;置串行输出口 CLK BIT P1.1 ;置时钟输出口 ORG 0000HLJMP STARTORG 0030HSTART: MOV 30H, #8 ;存入显示数据 MOV 31H, #9 MOV 32H, #C MOV 33H, #5 MOV 34H, #1DISP: MOV R0, #DBUF0 MOV R1, #TEMP MOV R2, #5 DP10: MOV DPTR, #SEGTAB ;表头地址 MOV A, R0 MOVC A, A+DPTR ;查表指令 MOV R

16、1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP ;段码地址指针 MOV R1, #5 ;段码字节数DP12: MOV R2, #8 ;输出子程序 MOV A, R0 ;取段码DP13: RLC A ;段码左移 MOV DIN, C ;输出一位段码 CLR CLK ;发送移位脉冲一位 SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12 SJMP $SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,

17、b DB 58H,5EH,7BH,71H,00H,40H ;C,d,E,F, ,-DELAY: MOV R4, #03H ;延时子程序AA1: MOV R5, #0FFHAA: DJNZ R5, AA DJNZ R4, AA1 RET END五、电路图实验六 6LED动态扫描显示实验一、实验目的1、掌握数字、字符转换成显示段码的软件译码方法2、动态显示的原理和相关程序的编写二、实验说明动态显示,也称扫描显示。显示器由6个共阴极LED数码管构成。单片机的P0口输出显示段码,经由一片74LS245驱动输出给LED管,由PB口输出位码,经由74LS06输出给LED管。三、实验内容及步骤单片机P0输出

18、段码,P1口输出位控码,输出6个字符。1、单片机最小应用系统1的P0口接段码口ah,P1口接位码口S1S6。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 扫描显示.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。6LED显示“168168”。程序停止运行后,显示随之变化,说明运态扫描显示模块不具有数据锁存的功能。四、流程图及源程序1、源程

19、序 DBUF EQU 30H ;置存储区首址 TEMP EQU 40H ;置缓冲区首址 ORG 0000HLJMP STARTORG 0030HSTART: MOV 30H, #1 ;存入数据 MOV 31H, #6 MOV 32H, #8 MOV 33H, #1 MOV 34H, #6 MOV 35H, #8 MOV R0, #DBUF MOV R1, #TEMP MOV R2, #6 ;6位显示器 MOV DPTR, #SEGTAB ;置段码表首址DP00: MOV A, R0 ;将段码存入缓冲区 MOVC A, A+DPTR ;查表取段码 MOV R1, A ;存入暂存器 INC R1

20、INC R0 DJNZ R2, DP00DISP0:MOV R0, #TEMP ;显示子程序 MOV R1, #6 ;扫描8次 MOV R2, #01H ;决定数据动态显示方向DP01: MOV A,R0 MOV P0,A ;段码输出 MOV A, R2 ;取位码 CPL A ;低电平驱动 MOV P1,A ;位码输出 ACALL DELAY ;调用延时 MOV A, R2 RL A MOV R2, A INC R0 DJNZ R1, DP01 SJMP DISP0 SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6F

21、H,77H,7CH ;6,7,8,9,A,b DB 58H,5EH,7BH,71H,00H,40H ;C,d,E,F, ,-DELAY: ;延时子程序 MOV R4, #03H AA1: MOV R5, #0FFHAA: DJNZ R5, A DJNZ R4, AA1 RETEND2、 流程图五、思考题1、如何修改程序,实现六位LED数码管只显示其中的两位?六、电路图实验七 查询式键盘实验一、实验目的1、掌握键盘和显示器的接口方法和编程方法2、掌握键盘和八段码显示器的工作原理3、静态显示的原理和相关程序的编写二、实验说明 本实验提供了8个按钮的小键盘,可接到单片机的并行口,如果有键按下,则相应

22、输出为低,否则输出为高。单片机通过识别,判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。三、实验步骤及内容1、用一根扁平数据插头线连接查询式键盘实验模块与八位逻辑电平显示模块,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。此种电路的程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。阵列式键盘的编程同样也有这样的问题要注意。2、一根扁平8线插头连接查询式键盘实验模块与扫描显示实验模块。无键按下时,LED数码显示八段全部熄灭,有键按下时,则对应LED段点亮。3、使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接查

23、询式键盘输出口。P3.6接静态数码显示DIN,P3.7接CLK。4、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。5、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 查询KEY.ASM源程序,进行编译,直到编译无误。6、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。7、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。在键盘上按下某个键,观察数显是否与按键值一致,键值从左至右为07。五、流程图及源程序 1、流程图2、源程序 DBUF EQU 30HTEMP EQU 40HDIN BIT

24、 P3.6CLK BIT P3.7ORG 0000HLJMP STARTORG 0030HSTART:MOV 30H,#16MAIN: ACALL DISPACALL KEY0 AJMP MAINKEY: MOV P1,#0FFH ;输入前,锁存器置“1” MOV A,P1 ;读取键盘状况 CJNE A, #0FFH,K00 ;有键按下 AJMP KEY ;无键按下K00: ACALL DELAY ;延时去抖动 MOV A,P1 CJNE A,#0FFH,K01 ;确有键按下 AJMP KEYK01: MOV R3, #8 ;8个键 MOV R2,#0 ;键码 MOV B,A ;暂存键值 MO

25、V DPTR,#K0TABK02: MOV A,R2 MOVC A,A+DPTR ;从键值表中取键值 CJNE A,B,K04 ;键值比较K03: MOV A,P1 ;相等 CJNE A #0FFH,K03 ;等键释放 ACALL DELAY ;延时去抖动 MOV A,R2 ;得键码 RETK04: INC R2 ;不相等,到继续访问键值表 DJNZ R3,K02 MOV A,#0FFH ;键值不在键值中,即多键同时按下 AJMP KEYK0TAB:DB 0FEH,0FDH,0FBH, 0F7H ;键值表 DB 0EFH,0DFH,0BFH, 07FHDISP: MOV DBUF,A MOV

26、DBUF+1,#16 MOV DBUF+2,#16 MOV DBUF+3,#16 MOV DBUF+4,#16 MOV R0, #DBUF MOV R1, #TEMP MOV R2, #5 DP10: MOV DPTR,#SEGTAB MOV A, R0 MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP MOV R1, #5 DP12: MOV R2, #8 MOV A, R0 DP13: RLC A MOV DIN,C CLR CLK SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1

27、, DP12 RETSEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,b DB 58H, 5EH,79H,71H,00H,40H ;C,d,E,F, ,-DELAY: MOV R4, #02HAA1: MOV R5,#0F8HAA: DJNZ R5,AA DJNZ R4,AA1 RETEND五、思考题1、程序如何确保每按一次键,只处理一次。六、原理图实验八 阵列式键盘实验一、实验目的1、掌握键盘和显示器的接口方法和编程方法2、掌握阵列式键盘的硬件组成和软件编程方法二、实验说

28、明 本实验提供了一个4X4小建盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。通过输出的列码和读取的行码来判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。三、实验步骤及内容1、用一根8位数据线连接阵列式键盘实验模块与LED与单片机接口模块。无键按下或有键按下,发光二极管全亮。若将A1-A4接地 ,则发光二极管显示0000XXXX;B1线上有键按下,则发光二极管显示0000XXX,B2线上有键按下,则发光二极管现世0000X0XX,B1和B2均有键按下,则发光二极管显示000000XX同样可将B1与B4接地,按键与发光二极

29、管显示情况,用户可以自行判断,自由操作。2、用一根8位数据线连接阵列式键盘实验模块与扫描显示实验模块。无键按下或有键按下,八段LED全亮。用户参照1,观察键盘与八段LED亮熄的关系。3、使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接阵列式键盘的A1B4口, P3.6接静态数码显示DIN,P3.7接CLK。4、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。5、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 阵列KEY.ASM源程序,进行编译,直到编译无误。6、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。在键盘上按下某个键,观察数显是否与按键值一致。16位建盘的键值从左至右、从上至下依次为0F(16进制数)。四、流程图及源程序 1、流程图 2、源程序 DBUF EQU 30H TEMP EQU 40HDIN BIT P3.6CLK BIT P3.7ORG 0000HLJMP STARTORG 0030HSTART:MOV A,#16MAIN: ACALL DISP MOV 30H, A ACALL KEY1 AJMP MAINKEY1: MOV

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2