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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验指导书 打印Word格式文档下载.docx

1、 ,或右击Target 1 Build Target F7,就可对源程序进行编译。当程序有语法错误时,会在输出窗口(Output Windows)中显示错误信息和警告信息,修改编译成功后会生成 HEX文件。7、下载、调试: 编译成功后,用在线烧录程序将.HEX文件下载到单片机内部ROM中运行,在运行过程中若发现错误要重新修改程序,并编译后再下载运行。五、烧录软件的使用1、打开在线烧录程序 2、选择MCU类型(STC89C52RC)3、点击, 打开工程目录下的hex文件4、选择端口5、点击Download烧录程序6、 打开实验板上的电源(如果烧录的时候出现问题,点击stop)注意: 5、6 两步

2、骤的顺序不能颠倒!即在点击Download之前要先关掉实验板上的电源。实验二 单片机控制LED灯点亮1.进一步熟悉编程和程序调试2.学习I/O端口使用方法3.学习延时子程序的编写和使用4.学习独立按键的使用方法三、实验说明(1)输出控制。如下图所示 ,当P1 . 0端口输出高电平,即P1.01时 ,根据发光二极管的单向导电性 可知,这时发光二极管D1熄灭;当 P1 .0端口输出低电平,即 P1 .00时,发光二极管D1亮;我们可以使用SETB P1.0指令使 P 1. 0端口输出高电平 , 使用CLR P1.0指令使 P1 .0 端口输出低电平 。(2)输入控制如下图所示,当键盘S17未按下时

3、,P3.2端口为高电平;当按下键盘S17时,P3.2端口输入低电平。(3)延时子程序的设计方法汇编延时子程序如下:DELAY: MOV R6, #2 /给R6赋值 DELAY1:MOV R7, #248 /给R7赋值 DJNZ R7, $ DJNZ R6, DELAY1 RET 上面的延时程序为1ms。 (4)键盘说明如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态,又称独立式键盘接口电路。检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的按键处理。编写单片机的键盘检测程序时,一般在检测按下时加入去抖

4、延时,检测松手时就不用加了。四、实验步骤本实验需要用到单片机最小应用系统。用P1口做输出口,P3口做输入口,程序功能使发光二极管点亮。1.用串行数据通信线连接计算机与实验板,用USB给实验板提供电源2.打开Keil uVision4仿真软件,首先建立本实验的项目文件,输入源程序,进行编译,直到编译无误。生成hex文件。3.通过STC_ISP_V4.83下载软件,将hex文件下载到实验板内,观察发光二极管显示情况。五、实验内容1.点亮D12.编写程序使D1闪烁。3. S17键盘按下D1点亮,松开D1熄灭六、参考程序1) LOOP: MOV P1, #0xfe /LED亮 END /表示汇编程序结

5、束2)LOOP: LCALL DELAY /子程序调用 LCALL DELAY MOV P1, #0xff /LED灭 LJMP LOOP /循环执行 /-/延时子程序 MOV R7, #0xff /给R7赋值 * 4DELAY2: MOV R6, #0xff /给R6赋值 NOP /空指令 NOP DJNZ R6, DELAY1 / * 4 DJNZ R7, DELAY2 RET /子程序结束,返回主程序END /表示汇编程序结束3)ORG 0000H MOV P1, #0xff /LED灭 JB P3.2,$ /判断按键是否被按下,没被按下则等待 /若被按下则执行下一条指令 MOV P1,

6、 #0xfe /LED亮 JNB P3.2,$ /判断按键是否被释放,没被释放则等待 /若被释放则执行下一条指令 SJMP LOOP END /表示汇编程序结束 实验三 中断系统应用实验1.掌握外部中断技术的基本使用方法2.掌握中断处理程序的编写方法1.外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断触发方式设置。中断触发方式设置一般有两种方式:电平触发方式和脉冲(边沿)触发方式,本实验选用后者,即前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.

7、3)引入,本实验由INT0(P3.2)引入。2.中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。3.中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是哪一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应

8、一次中断。 4. STC89C52的中断系统STC89C52的中断系统包括5个中断源,并提供两个优先级,允许用户对中断源进行独立控制和中断优先级设置. STC89C52支持的5个中断源分别为外部中断0、定时器0溢出中断、外部中断1、定时器1溢出中断和串口中断。 对应的中断号为0、1、2、3、4;寄存器有4个工作组可以切换,为0-3; STC89C52中,中断服务程序是以中断函数的方式来时实现的。四、实验内容利用实验二的知识编写程序点亮板子上的D2、D4、D6、D8灯,与D1、D3、D5、D7灯交替闪烁。利用外部中断0,使产生一次中断时二极管全部熄灭。五、参考程序ORG 0000H LJMP M

9、AIN ORG 0003H LJMP EXT0 ORG 0030H MAIN: SETB IT0 /外部0中断触发方式为脉冲 SETB EA /开放总中断 SETB EX0 /允许外部0中断 MOV A, #0xaa /LED1,3,5,7亮 * 4 MOV P1, A LCALL DELAY /延时子程序调用 LCALL DELAY CPL A /LED2,4,6,8亮 LCALL DELAY LJMP LOOP /循环执行 /中断子程序EXT0: PUSH ACC /保护现场 PUSH PSW MOV A,0xff /中断响应时全灭 MOV P1, A RETI /中断返回 NOP DJN

10、Z R6, DELAY1 / * 4 DJNZ R7, DELAY2 RET /子程序结束,返回主程序实验四 单片机控制数码管显示1. 掌握数码管是如何显示出字符2. 学习定时计数器的使用和编程方法三、实验原理及说明(1)数码管显示说明1.数码管两种接法使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。本实验板用共阳LED显示器,根据电路连接图显示16进制数的编码已列在下表。2.共阳极数码管编码 0xc0 , 0xf9 , 0xa4 , 0xb0 , 0x99 , 0x9

11、2 , 0 1 2 3 4 5 0x82 , 0xf8 , 0x80 , 0x90 , 0x88 , 0x83 , 6 7 8 9 A B 0xc6 , 0xa1 , 0x86 , 0x8e , 0xff C D E F 无显示请思考共阴极数码管的编码。3.原理图(2)定时器/计数器使用说明1、51单片机有两个16位内部定时器/计数器(T/C,Timer/ Counter)。若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。由于脉冲周期固定由计数值可以计算出时间,有定时功能。定时器有关的寄存器

12、有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。2、TMOD1) M1M0工作方式控制位M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。2) C/T 定时器方式或计数器方式选择位 若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 3)GATE 定时器/计数器运行门控标志位 当GATE=1时, T/C的启动受双重控制,即要求INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的T/

13、C才被选通工作。若GATE=0, T/C的启动仅受TR0 (或 TR1)控制,即置 1, T/C就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。3、TCONTF0、TF1分别是定时器/计数器T0、 T1 的溢出中断标志位, 加法计数器计满溢出时置1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时被清 0。4、初始化1)初始化步骤在使用51系列单片机的T/C前,应对它进行编程初始化,主要是对TCON

14、和TMOD编程,还需要计算和装载T/C的计数初值。一般完成以下几个步骤:(1)确定T/C的工作方式编程TMOD寄存(2)计算T/C中的计数初值,并装载到TH和TL;(3)T/C在中断方式工作时,必须开CPU中断和源中断编程IE寄存器;(4)启动定时器/计数器编程TCON中TR1或TR0位。2)计数初值的计算(1)定时器的计数初值:在定时器方式下,T/C是对机器周期脉冲计数的,fOSC=12MHZ,一个机器周期为12/fOSC=1us,则方式0 13位定时器最大定时间隔=213*1us=8.192ms方式1 16位定时器最大定时间隔=216*1us=65.536ms方式2 8位定时器最大定时间隔

15、=28*1us=256us 若T/C工作在定时器方式1时,要求定时50ms,求计数值。如设计数初值为x,则有:(216-x)*1us=50000us 推出x=216-50000因此,TH,TL可置65 536-50000(2)计数器的计数初值在计数器方式下:方式0 13位计数器的满计数值=213=8192方式1 16位计数器的满计数值=216=65 536方式2 8位计数器的满计数值=28=256 若T/C工作在计数器方式2时,则要求计数10个脉冲的计数初值,如设计数初值为x。则有 28-x=10 即 x= 28-10因此,TH=TL=256-10四、参考列子让第一个数码管显示一个8字对于自制

16、实验板(共阳极),数码管的选通是通过P2口控制的。要让第一个数码管显示8字,那么别的数码管的位选就要关闭,即只打开第一个数码管的位选。控制位选的P2口要输出的数据位0xfe(二进制为0000 1000)。位选确定后,在确定段选,要显示的是8,那么只有dp段为1,其余段为0,所以P0口要输出0x80(二进制1000 0000)。参考程序 MOV P2,#0FEH / 显示在第一个二极管 MOV P0,#80H / 显示8 END 在第一个数码管上利用定时器0,间隔1s依次显示,0-9。ORG 0000HAJMP STARTORG 000BH ;T0中断入口地址AJMP INT_T0ORG 003

17、0HSTART: MOV SP,#60H MOV TMOD,#01H ;置T0为方式1 MOV TL0,#0B0H ;延时50mS的时间常数 MOV TH0,#3CH MOV R0,#00H ;数码管显示单元 MOV R1,#20 ;定时次数 SETB TR0;启动定时器1,开始定时 SETB ET0 SETB EA ;开中断Slop: acall display SJMP SlopINT_T0: ;T0中断服务子程序 PUSH ACC;保护现场 PUSH PSW PUSH DPL PUSH DPH CLR TR0;关闭定时器1,停止定时 MOV TL0,#0B0H;延时50mS常数 MOV

18、TH0, #3CH DJNZ R1, EXIT MOV R1,#20;重置定时次数 MOV A, R0 INC A ;数码管显示单元内容加一 MOV R0, A CJNE A, #10, EXIT MOV R0,#00H ; 数码管显示单元清0EXIT: SETB TR0;启动定时器0,开始定时 POP DPH;恢复现场 POP DPL POP PSW POP ACCRETI;显示子程序display: mov a,R0 mov dptr,#numtab;指定查表启始地址 MOVC A,A+DPTR ;得到段码 mov P0,a ; 段码送P0口 clr P2.0 ;送位码 acall del

19、ay1 ;延时10ms SETB P2.0 ret延时子程序delay1:MOV R2,#20L1: MOV R3,#248 DJNZ R3,$ DJNZ R2,L1 RET 实验板上的7段数码管09数字的共阴显示代码numtab: DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90HEND实验五 串口通信的应用1.学习串口通信的使用方法2.进一步掌握中断处理程序的编写方法串行口在方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。波特率的计算 在串行通信中,收

20、发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64) fosc 方式1的波特率 =(2SMOD/32)(T1溢出率)方式3的波特率 =(2SMOD/32)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率

21、取决于TH1中的计数值。 T1 溢出率 = fosc /12256 (TH1) 在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。利用串口通信使二极管的灯亮,并在显示窗口显示输入

22、的数。ORG 0000HJMP MAINORG 0023H ;串行中断入口地址CALL URT_INT ;调用串口中断服务子程序 ORG 0030HCALL URT_INIT ;调用初始化子程序 JMP $ ;等待中断初始化子程序URT_INIT: MOV SCON,#50H ;设置成串口工作方式在8位URT,并允许接收 MOV TMOD,#20H ;设置T1为可重装8位定时器 MOV TL1,#0FDH ;11.0592MHz,波特率9600时定时器1的初值设置 MOV TH1,#0FDH SETB TR1 ;开启定时器 SETB ES ;开启串口中断 SETB EA ;开总中断 RET串口中断服务子程序URT_INT: CLR EA ;关全局中断 CLR RI ;清接收中断标志 PUSH DPL ;现场保护 PUSH DPH PUSH ACC MOV A,SBUF ;接收到数据后将数据返回 MOV P1,A ;接受到的数据送到P1口显示 MOV SBUF,A ;将接受的数据送回PC机器 JNB TI,$ ;等待发送是否完成 CLR TI ;发送完成,则清发送中断标志 POP ACC ;恢复保护 POP DPH POP DPL 开全局中断 RETI END附录:实验教学板电路原理图

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

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