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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实验指导书.docx

1、单片机实验指导书实验一 P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。1、使用单片机最小应用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝

2、上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。2、添加 P1_B.ASM源程序,编译无误后,

3、运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。四、流程图及源程序 1流程图 (A)P1口循环点灯程序框图(B)P1口输入输出程序框图2源程序:(一)实验一ORG 0000HLJMP STARTORG 0030HSTART: mov a, #0FEh 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(二)实验

4、二KeyLeft BIT P1.0 ;定义 KeyRight BIT P1.1Ledleft BIT P1.2LedRight BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KeyLeft ;欲读先置一 SETB KeyRightLoop: 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,Dela

5、yLoop RET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二 继电器控制实验一、实验目的1、学习I/O端口的使用方法2、掌握继电器的控制的基本方法3、了解用弱电控制强电的方法二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一任务。继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势。本电路的控制端为高电平时,继电器常开触点吸合,同时LED灯被点

6、亮。当控制端为低电平时,继电器不工作。三、实验内容及步骤用P1.0作为控制输出口,接继电器电路,使继电器重复吸合与断开。1、使用单片机最小应用系统1模块,用导线连接P1.0端口到继电器与温度控制部件模块的控制口。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 继电器.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管亮灭情况和听

7、继电器开合的声音,继电器重复延时吸合与延时断开。四、流程图及源程序源程序清单: Output BIT P1.0 ;P1.0输出ORG 0000HLJMP STARTORG 0030HSTART: clr Output ;断开 call Delay setb Output ;吸合 call Delay ljmp STARTDelay: mov r6,#0 mov r7, #0DLoop: djnz r7, DLoop djnz r6, DLoop ret end五、思考题试用单片机的其他输入输出口控制继电器。六、电路图实验三 计数器实验一、实验目的1.学习80C51内部定时/计数器使用方法2.学

8、习计数器各种工作方式的用法二、实验说明1、80C51内部有两个定时/计数器T0和T1,16位是指定时/计数器内的计数器是16位的,由2个8位计数器组成。本实验用的是T0,它的2个8位计数器TH0和TL0,TH0是高8位,TL0是低八位。所谓加法计数器,指其计数的方法是对计数脉冲每次加1。在其它单片机和可编程计数器芯片中,有的计数器是减法计数器,如8155的14位计数器,8253的16计数器,即先设置计数器的初值,然后对计数器脉冲每次减1,减到0,计数器溢出。而80C51内部的计数器是加法计数器,需先设置计数器的初值,本实验设置计数器初值为0,然后对计数脉冲每次加1,加到计数器满后溢出。2、本实

9、验中内部计数器起计数器的作用。外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。这就决定了输入波形的频率不能超过机器周期频率。三、实验内容及步骤1、使用单片机最小应用系统模块,用扁平数据线连接P0口与八位逻辑电平显示模块,T0端口接单次脉冲电路的输出端。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 计数器.A

10、SM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。连续按动单次脉冲的按键,8位发光二极管显示按键次数。四、流程图及源程序ORG 0000HLJMP STARTORG 0030HSTART:MOV TMOD,00000101b ;置T0计数器方式1 MOV TH0, 0 ;置T0初值 MOV TL0, 0 MOV TR0 ;T0运行LOOP: MOV P1,TL0 ;记录P1口脉冲个数 LJMP LOOP ;返回END 五、思考题1、80C51单片机的最高计数频率为多少? 六

11、、实验电路实验四 定时器实验一、实验目的1、学习80C51内部计数器的使用和编程方法2、进一步掌握中断处理程序的编写方法二、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器

12、时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100uS中断一次, 所以定时常数的设置可按以下方法计算:机器周期=126MHz=1Us (256-定时常数)1uS=100uS定时常数=156。然后对100uS中断次数计数10000次,就是1秒钟。在本实验的中断处理程序中,中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。三、实验内容及步骤1、用导线连接单片机最小应用系统1的P1.0到单只发光二极管上。2、用串行数据通信线连接计算机与仿真器,

13、把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 定时器.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。发光二极管隔一秒点亮一次,点亮时间为一秒。四、实验框图以及源程序 1、流程图2、源程序 TICK EQU 10000 ;10000 100uS = 1S T100uS EQU 256-100 ;100uS时间常数(12M) C100uS EQU 30H ;100uS记数单元 L

14、EDBUF EQU 40H LED BIT P1.0ORG 0000H LJMP START ;跳至主程序 ORG 000BH LJMP TOINT ;跳至子程序 ORG 0030HT0INT: PUSH PSW ;状态保护 MOV A, C100uS+1 JNZ GOON DEC C100uS ;秒计数值减1GOON: DEC C100uS+1 MOV A, C100uS ORL A, C100uS+1 JNZ EXIT ; 100uS 记数器不为0, 返回 MOV C100uS, #HIGH(TICK) ;100uS 记数器为0, 重置记数器 MOV C100uS+1, #LOW(TICK

15、) CPL LEDBUF ; 取反LED EXIT: 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) ;设置10000次计数值 MOV C100uS+1, #LOW(TICK)LOOP: MOV C, LEDBUF MOV LED, C LJMP LOOPEND 五、思考题1、如何将LE

16、D的状态间隔改为2秒,程序如何改写?2、如果更换不同频率的晶振,会出现什么现象?如何调整程序?六、电路图 实验五 外部中断实验一、实验目的1、掌握外部中断技术的基本使用方法2、掌握中断处理程序的编写方法二、实验说明1、外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.1)引入,本实验由INT0(P3.2)引入。2、中断服务的关

17、键:a、保护进入中断时的状态。堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。c、用POP指令恢复中断时的现场。3、中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。4、中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓

18、查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就进行响应一次中断。INT0端接单次脉冲发生器。P1.0接LED灯,以查看信号反转。三、实验内容及步骤1、使用单片机最小应用系统1模块,P1.0接发光二极管,INTO接单次脉冲输出端。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 中断.ASM源程序,进行编译,直到编译无误。4、进行软件设

19、置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即隔一次点亮。四、流程图及源程序1、流程图 2、源程序 LED BIT P 1.0LEDBUF BIT 0ORG 0000H LJMP START ;跳至主程序 ORG 000BH LJMP INTERRUPT ;跳子程序 ORG 0030HINTERRUPT:PUSH PSW ;保护现场 CPL LEDBUF ;取反LED MOV C, LEDBUF MOV LED, C POP PSW ;恢复现场 RETIST

20、ART: CLR LEDBUF CLR LED MOV TCON, #01H ;外部中断0下降沿触发 MOV IE, #81H ;打开外部中断允许位(EX0) ;及总中断允许位(EA) LJMP $ END 五、思考题 1.简述中断处理的一般过程。 2.脉冲方式如何防止重复响应外中断。实验六 ADC0809模数转换实验一、实验目的1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。二、实验说明本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择

21、开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。下图为该芯片的引脚图。各引脚功能如下:IN0IN7:八路模拟信号输入端。ADD-A、ADD-B、ADD-C:三位地址码输入端。八路模拟信号转换选择由这三个端口控制。CLOCK:外部时钟输入端(小于1MHz)。D0D7:数字量输出端。OE:A/D转换结果输出允许控制端。当OE为高电平时,允许A/D转换结果从D0D7端输出。ALE:地址锁存允许信号输入端。八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。START:启动A/D转换信号输入端。当START端输入一个正脉冲时,将进行

22、A/D转换。EOC:A/D转换结束信号输出端。当 A/D转换结束后,EOC输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。VCC和GND:芯片的电源端和地端。三、实验步骤1、单片机最小应用系统1的 P0口接A/D转换的D0D7口,单片机最小应用系统1的Q0Q7口接0809的A0A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统1的P1.0、P1.1连接到串行静态显示实验模块的DIN、CLK。2、用串行数据通信线连接计算机与仿真

23、器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 AD转换.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。5LED静态显示“AD XX”,“XX”为AD转换后的值,8位发光二极管显示“XX”的二进制值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD转换值的范围是0FFH。四、流程图及源程序1.源程序DBUF EQU 30H TEMP EQU 40H D

24、IN BIT P1.0 CLK BIT P1.1 ORG 0000H LJMP START ORG 30HSTART: MOV R0,#DBUF ;显示缓冲器存放0AH,0DH,-,0XH,0XH MOV R0,#0AH ;串行静态显示“AD XX”XX表示0F INC R0 MOV R0,#0DH INC R0 MOV R0, #10H INC R0 MOV DPTR,#0FEF3H ;A/D地址 MOV A,#0 ;清零 MOVX DPTR,A ;启动A/D JNB P3.3,$ ;等待转换结束 MOVX A,DPTR ;读入结果 MOV P1,A ;转换结果送入发光二极管显示 MOV B

25、,A ;累加器内容存入B中 SWAP A ;A的内容高四位与低四位交换 ANL A,#0FH ;A的内容高四位清零 XCHD A,R0 ;A/D转换结果高位送入DBUF3中 INC R0 MOV A,B ;取出A/D转换后的结果 ANL A,#0FH ;A的内容高四位清零XCHD A,R0 ;结果低位送入DBF4中 ACALL DISP1 ;串行静态显示“AD XX” ACALL DELAY ;延时 AJMP STARTDISP1: ;静态显示子程序 MOV R0,#DBUF MOV R1,#TEMP MOV R2,#5DP10: MOV DPTR,#SEGTAB ;表头地址 MOV A,R0

26、 MOVC A,A+DPTR ;取段码 MOV R1,A ;到TEMP中 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 RETSEGTAB: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77

27、H,7CH ;6,7,8,9,A,b DB 58H,5EH,79H,71H,0,40H ;C,d,E,F,(空格),-DELAY: ;延时 MOV R4,#08HAA1: MOV R5,#0FFHAA: NOP NOP NOP DJNZ R5,AA DJNZ R4,AA1 RET END2.流程图五、思考题1、A/D转换程序有三种编制方式:中断方式、查询方式、延时方式,实验中使用了查询方式,请用另两种方式编制程序。2、P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用P0口的数据口或地址地位口时,程序指令和硬件连线的关系。 六、电路图实验七 DAC0832数模转换

28、实验一、实验目的1、 掌握DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法2、 掌握D/A转换程序的编程方法和调试方法二、实验说明DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引脚排列如图所示,DAC0832各引脚功能说明:DI0DI7:转换数据输入端。CS:片选信号输入端,低电平有效。ILE:数据锁存允许信号输入端,高电平有效。WR1:第一写信号输入端,低电平有效,Xfer:数据传送控制信号输入端,低电平有效。WR2:第二写信号输入端,低电平有效。Iout1:电流输出1端,当数据全为1时,输出电流最大;当数据全为0时,输出电流最小。Iout2:

29、电流输出2端。DAC0832具有:Iout1+Iout2=常数的特性。Rfb:反馈电阻端。Vref:基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V+10V。VCC和GND:芯片的电源端和地端。DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。单缓冲方式使DAC0832的两个输入寄存器中有一

30、个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到80C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。三种工作方式区别是:直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通。三、实验步骤1、单片机最小应用系统1的 P0口接0832的DI0DI7口,单片机最小应用系统1的P2.0、WR分别接D/A转换的P2.0、WR,Vref接-5V,D/A转换的OUT接示波器探头。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 DA转换.ASM源程序,进行编译,直到编译无误。

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

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