单片机原理和应用于实验指导_第1页
单片机原理和应用于实验指导_第2页
单片机原理和应用于实验指导_第3页
单片机原理和应用于实验指导_第4页
单片机原理和应用于实验指导_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用实验指南 前言由于单片机具有高可靠性、超小尺寸、价格低廉、易于产品化等特点,具有智能仪表、实时工控、实时数据采集、智能终端、通讯设备等优势。 、信息显示、家用电器等控制应用。用途非常广泛。由于51系列单片机在全国单片机应用中仍是主流单片机,本实验指导书是为学习51单片机的学生编写的,配合单片机原理与应用课程。单片机原理与应用是一门实践性很强的课程。提高教学质量的一个重要环节是计算机实践和培训,无论是学习C语言编程,还是学习接口电路和外设与计算机的连接。或者开发软硬件兼备的单片机应用系统,不加强动手就无法获得预期的效果。本实验指导书为很多实验提供了指导材料,有些实验有一些选修题,

2、有一定难度,可根据课时安排和教学要求进行选择。出于某些实验的目的,书中提供的参考程序与实际应用中的程序会有些出入,不一定是最优的。由于时间紧迫,需要将课程进度与实验时间同步,编者知识有限。如有不当之处,欢迎读者批评指正。实验笔记1、实验前必须阅读教材相关部分和本实验指南,了解实验的目的、内容和步骤,做好实验前的准备工作,编写需要编辑或修改的程序在实验中;准备工作完成后可以在电脑上进行实验,否则无法在电脑上操作。2、各种电源的电压和极性不能接错,严禁带电接线和插拔元件。通电前必须经过教练的检查和批准。3、不准乱动与实验无关的各种旋钮和开关。禁止使用和触摸任何与本实验无关的设备。注意安全。4、严禁

3、用手触摸印刷电路板的引脚和实验系统的元器件,以防芯片静电击穿。5、实验过程中仪器或部件如有损坏,应及时向指导教师报告。6、实验室内保持安静卫生,不要随意走动和吵闹,专心完成实验。7、实验完成后,关闭电源,整理实验台桌面,保持环境整洁。8.认真完成实验内容,按规定写在作业本上,在规定时间交作业。9、未按规定完成实验的学生不得参加本课程的考试。单片机实验工作格式实验名称一、实验目的2、实验设计与调试:(1)实验电路:画出与实验内容相关的实验电路。(2)实验设计与调试步骤:根据内容编写实验程序。调试程序并观察结果。(3)实验调试过程中遇到的问题、解决问题的思路和方法。三、实验后的经验总结目录 TOC

4、 o 1-3 h z u HYPERLINK l _Toc402348209 实验一:使用实验板,使用Keil C51软件 PAGEREF _Toc402348209 h 1 HYPERLINK l _Toc402348210 实验2 LED灯显示实验 PAGEREF _Toc402348210 h 6 HYPERLINK l _Toc402348211 实验3 单片机控制数码管实验 PAGEREF _Toc402348211 h 8 HYPERLINK l _Toc402348212 实验 4 按钮实验 PAGEREF _Toc402348212 h 12 HYPERLINK l _Toc4

5、02348213 实验5 中断系统应用实验 PAGEREF _Toc402348213 h 15 HYPERLINK l _Toc402348214 实验六定时器/计数器使用 PAGEREF _Toc402348214 h 18 HYPERLINK l _Toc402348215 实验 7 微控制器串行通信 PAGEREF _Toc402348215 h 22 HYPERLINK l _Toc402348216 实验八LCD1602液晶显示器 PAGEREF _Toc402348216 h 25实验一:使用实验板,使用Keil C51软件一、实验目的1、熟悉MCU实验板和Keil C51软件的

6、使用2. 实验说明本实验介绍了实验板的组成、 Keil C51软件的使用和编程软件的使用。通过本实验,学生可以了解单片机的编程和调试方法。三、 Keilc软件使用说明1.打开程序:双击程序2、新建工程:工程新建工程保存工程选择CPU(一般选择ATMEL公司的AT89S51)3.设置工程:右键Options for Target 1选择Create HEX(输出HEX4、新建源文件:选择文件新建输入,编辑源程序保存(汇编源程序:filename.asm;C源程序:filename.c)5. 将源文件添加到项目:在项目导出文件页面上,单击文件组,选择将文件添加到组的源组1选项,选择您的源文件和文件

7、类型,然后单击添加,然后单击关闭。6. 编译:点击或右键Target 1 Build Target F7 编译源程序。当程序出现语法错误时,会在输出窗口(Output Windows)中显示错误信息和警告信息,修改编译成功后生成HEX文件。7、下载调试:编译成功后,使用在线编程程序将.HEX文件下载到单片机的ROM中运行。运行过程中如发现错误,应重新修改程序,编译后下载运行。四、刻录软件的使用1.打开在线烧录程序2.选择MCU类型( STC 89C51RC )3.点击打开工程目录下的hex文件4.选择端口(通常是COM1)5.点击下载烧录程序6.打开实验板上的电源(烧录过程中如果出现问题,点击

8、停止)注意:第 5 步和第 6 步的顺序不能颠倒!即在点击下载前关闭实验板上的电源。五、实验内容及步骤1、启动PC,安装Keil C51软件烧录软件,用串口线连接电脑和实验板(USB线供电)。2 、打开Keil uVision仿真软件,先创建本实验的工程文件,再创建源程序,编译无误后全速运行程序。3 、源程序可以编译成可执行文件,用刻录机烧录到89芯片中。实验2 LED灯显示实验1 、实验目的:让小灯以多种方式显示。2、实验内容:向端口发送不同的数据,点亮LED灯。3、实验设备:单片机模块(89S51或89S52)、LED灯显示模块。4 、实验原理:5 、实验步骤:将单片机模块的P1口接LED

9、灯,控制LED灯的各种显示模式,如:开灯、一一关/开、交错开/关, ETC。实验步骤说明:本实验需要使用单片机最小应用系统。使用P 1端口作为输出端口,程序功能使LED 亮起。用串口数据通讯线连接电脑和实验板,用USB给实验板供电2 、打开Keil uVision2仿真软件,首先建立本实验的工程文件,输入源程序(参考程序1 ),编译直到编译正确。生成一个十六进制文件。3、通过STC-ISP下载软件,下载hex文件到实验板,观察LED显示。参考程序:C程序代码:#include#define uchar 无符号字符#define uint 无符号整数无效延迟(uint a)uint i;ucha

10、r j;for(i=0;ia;i+)for(j=0;j200;j+);无效的主要() 而(1)P1=0 x00;延迟(200);P1=0X01;延迟(500);P1=0X02;延迟(500);P1=0X04;延迟(500);P1=0X08;延迟(500);P1=0X10;延迟(500);P1=0X20;延迟(500);P1=0X40;延迟(500);P1=0X80;延迟(500);6、实验要求:请在keil环境下编写如下程序:1)打开最后一个LED(或任何LED,或任意数量的LED)2) 使点亮的 LED 闪烁板上L 0、 L 2、 L 4、 L 6灯,与L 1、 L 3、 L 5、 L 7灯

11、交替闪烁4) 设计一个流水灯程序,依次点亮L 1- L 7。实验3 单片机控制数码管实验一、实验目的1.掌握数码管如何显示字符2.掌握延时子程序的使用2、实验原理一、数码管的两种连接方式2.共阴极数码管编码0 x 3f, 0 x06 , 0 x5b , 0 x 4f, 0 x66 , 0 x6d ,0 1 2 3 4 50 x7d , 0 x07 , 0 x 7f, 0 x 6f, 0 x77 , 0 x 7c,6 7 8 9 A乙0 x39 , 0 x5e , 0 x79 , 0 x71 , 0 x00CDEF 不显示请考虑共阳极数码管的编码。三、实验电路图4.参考例子1)让第一个数码管显示

12、一个3字对于实验板(共阴极),数码管的位WE1-WE6对应74HC573-2芯片,WE P2.7位选择信号控制74HC573-2芯片,数码管的频闪是为了通过WE P2.7选择74HC573-2芯片,P0口控制WE1-WE6使第一个数码管显示3个字符,然后关闭其他数码管的位选择,即只有第一个数码管是打开的。控制位选择的P0口要输出的数据位为0 xfe(二进制为1111 1110)。位选择确定后,段选择确定,显示为3,则P0口应输出0 x 4f(二进制0100 1111)。2) 在四个数码管上显示 8位选择:WE P2.7与74HC573-2有效连接,对应P0口左边四个数码管分别是WE1 WE2

13、WE3 WE4对应P0端口:0 xfe 0 xfd 0 xfb 0 xf7(1111 1110) (1111 1101) (1111 1011) (1111 0111)段选择:接P0口共阴极代码0 x7f5. 参考程序(1)让第一个数码管显示一个3字#include sbit 杜拉=P26; /段选择信号的锁存控制sbit wela=P27; /位选择信号的锁存控制无效的主要()杜拉=0;韦拉=0;P0=0 x 4f; /“数字”的代码3杜拉=1;杜拉=0;P0=0 xfe; /选择第一个数码管韦拉=1;韦拉=0;而(1);(2)让前两个数码管显示88#include sbit 杜拉=P26;

14、 /段选择信号的锁存控制sbit wela=P27; /位选择信号的锁存控制无效延迟(无符号整数计数)无符号整数 i,j;for(i=0;icount;i+)for(j=0;j120;j+);无效的主要()杜拉=0;韦拉=0;而(1)P0=0 x 7f; /数字“8”的代码杜拉=1;杜拉=0;P0=0 xfe; /选择第一个数码管韦拉=1;韦拉=0;延迟(2);P0=0 x 7f; /数字“8”的代码杜拉=1;杜拉=0;P0=0 xfd; /选择第二个数码管韦拉=1;韦拉=0;延迟(2);(3)让数码管流动显示3个字符#include sbit 杜拉=P26; /段选择信号的锁存控制sbit

15、wela=P27; /位选择信号的锁存控制无符号字符码表=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/数码管的代码表无效延迟(无符号整数计数)无符号整数 i,j;for(i=0;icount;i+)for(j=0;j120;j+);无效的主要()无符号字符数;而(1)for(num=0;num6;num+)P0=表编号; 韦拉=1;韦拉=0;P0=0 x 4f; /“数字”的代码3杜拉=1;杜拉=0;延迟( 1000 );六、实验内容基本内容: 1)第二位数码管显示8;2)用数码管显示你的生日;扩展能力: 1)第一个数码管循环显示0-9。实验四键实验一。目的1.进

16、一步熟悉编程和程序调试2.学习如何使用独立按钮二。实验说明如果系统只需要几个按键,可以直接用I/O线组成一个按键电路。每个按键相互独立,一条线路的按键状态不会影响其他输入线路的工作状态,又称独立键盘。接口电路。检测是否有按键关闭,如果有按键关闭,则去除按键抖动,判断按键编号,转入相应按键处理。在编写单片机的键盘检测程序时,一般在检测按下时添加去抖动延迟,在检测释放时不需要添加。三、实验电路图4.参考例子(1)按K2灯亮,按K1灯灭参考程序代码:C程序代码:#include位 K1=P 3 4 ;sbit K2= P3 5 ;位 D1=P 1 0;无效的主要()如果(K1=0)D1=1;如果(

17、K2=0)D1=0;(2)按k1键打开LED灯,再按一下关闭灯。#include#define uchar 无符号字符uchar 编号;sbit led=P10;位 k1=P34;无效延迟(uchar i)uchar j,k;对于(j=i;j0;j-)for(k=125;k0;k-);无效的主要()而(1)如果(k1=0) 延迟(20); /去抖动如果(k1=0) 而(!k1); /等待按钮被释放 数+; 开关(数量) 案例1:led=0;休息;案例2:led=1;数=0;休息; 方法二:#include位 s2=P34; /收集按钮状态,此时作为输入引脚sbit led=P10; /此时,它

18、被用作输出引脚。无效延迟(无符号字符 p)无符号字符 m,n;对于(m=p;m0;m-)for(n=125;n0;n-);无效的主要()而(1)如果(s2=0) 延迟(10); /去抖动如果(s2=0) while(!s2);/等待释放密钥。领导=领导; 五、实验内容基本内容:按键控制数码管显示:按K1,第一个数码管显示1,再按数码管显示2,依次按加1,加1后返回显示1显示为 5。扩展能力:通过K1、K2、K3、K4分别控制8个led灯,显示不同的流水灯效果。实验5中断系统应用实验一、实验目的1.掌握外部中断技术的基本用法2.掌握编写中断处理程序的方法2、实验原理1.外部中断初始化设置有三项:

19、总中断使能EA=1,外部中断使能EXi=1(i=0或1),中断触发方式设置。设置中断触发方式一般有两种方式:电平触发方式和脉冲(边沿)触发方式。本实验选用后者。当上一次为高电平,下一次为低电平时,为有效的中断请求。因此,高电平状态和低电平状态至少保持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入。2 、中断控制原理:中断控制是提供给用户的一种中断控制方式。其实就是控制一些寄存器。为此,51 系列有四个控制寄存器:TCON、IE、SCON 和 IP。3 、中断响应的过程:首先中断采样,然后中断轮询,最后中断响应。采样是中断处理的第一步。对于本实验的脉冲方式中断请求,若

20、采样在相邻两个周期内为高电平再低电平,则中断请求有效,IE0或IE1置“1”;否则,继续为“0”。所谓查询,就是CPU通过检测TCON和SCON中各个标志位的状态,判断是否有中断请求,发生了哪个中断请求。中断响应是对中断请求的接受,是在中断查询之后进行的。当查询到一个有效的中断请求时,它会响应一个中断。4. 51的中断系统51的中断系统包括5个中断源,提供两个优先级,用户可以独立控制中断源和设置中断优先级。 8051支持的5个中断源分别是外部中断0、定时器0溢出中断、外部中断1、定时器1溢出中断和串口中断。对应的中断号为0、1、2、3、4;寄存器有4个工作组可以切换,分别为0-3;在C51中,

21、中断服务程序是以中断函数的形式实现的。5、中断函数格式如下:void function name() 使用工作组的中断中断号 中断服务程序内容; 3.参考例子8个LED为流水灯。按下按钮后,8个LED灯闪烁4次后恢复原状。 (按钮连接到P3.2 ,即外部中断0。)参考程序(适用于上图仿真电路)#include#include#define uchar 无符号字符无效延迟(uchar k)uchar i,j;for(i=0;ik;i+)for(j=0;j125;j+);无效INT0_init(无效)EX0=1;IT0=1;EA=1;无效的主要() uchar q,温度;INT0_init();而

22、(1)温度=0 xfe;for(q=0;q8;q+)P1=温度;延迟(200);温度=_croll_(P1,1);无效 int0_1() 中断 0 uchar m;for(m=0;m4;m+)P1=0 x00;延迟(200);P1=0 xff;延迟(200);四、实验容基本内容:使用外部中断1实现以下功能8个led水灯循环显示,按下按钮后,数码管显示“ sos ” ,蜂鸣器发出报警声。注:1)注意C51中不同的中断号2)分析开发板原理图,注意外部中断1使用的按键和程序设置。扩容:使用外部中断1实现:第一个数码管从0开始计数,加到9再返回0,使用外部中断1实现,按下按键后暂停计数,再按下继续计数

23、。实验六定时器/计数器使用一、实验目的1.学习89C51定时器计数器的使用和编程方法2.进一步掌握中断处理程序的编写方法2、实验原理1、51单片机有两个16位定时器/计数器(T/C,Timer/Counter)。如果晶振驱动时钟,就是定时器;如果是8051输入管脚的脉冲信号,就是计数器。定时器实际上工作在计数模式下,只是对固定频率的脉冲进行计数。由于脉冲周期是固定的,因此可以从计数值计算时间,并具有计时功能。与定时器相关的寄存器包括工作模式寄存器 TMOD 和控制寄存器 TCON。 TMOD用于设置定时器/计数器0-3的工作模式,判断是用于计时还是计数。 TCON 的主要作用是设置定时器溢出时

24、的标志位,并控制定时器的运行或停止。2. TMOD1) M 1M0 工作模式控制位2 ) C/T定时器模式或计数器模式选择位如果C/T = 1 ,则为计数器模式;当 C/T = 0时,为定时器模式。 3 ) GATE定时器/计数器操作门控制标志当GATE=1时, T/C的启动由双控控制,即要求INT0(或INT1)引脚为高电平且TR0(或TR1)置1时,对应的T /C 被门控工作。如果GATE=0,则T/C的启动只由TR0(或TR1)控制,即如果设置为1 ,则无论INT0(或INT1)的电平是否为高,T/C都是门控的或低。3. TCONTF0和TF1分别是定时器/计数器T0和T1的溢出中断标志

25、位。当加法计数器溢出时,会置1,申请中断,响应中断后自动复位为0 。 TF产生的中断申请是否被接受,取决于中断是否打开。 TR1和TR0分别是定时器/计数器T1和T0的操作控制位。定时器/计数器被软件置1后开始工作,系统复位时清0 。4. 初始化1)初始化步骤使用51系列单片机的 T/C 前,要对其进行编程和初始化,主要是对TCON和TMOD进行编程,还需要计算并加载T/C 的初始计数值。一般完成以下步骤:( 1 )确定T/C是如何工作的对TMOD寄存器进行编程;T/C中的计数初值,并加载到TH和TL中;(3) T/C工作在中断模式时,必须使能CPU中断和源中断烧写IE寄存器;(4) 启动定时

26、器/计数器对TCON中的TR1或TR0位进行编程。2 )count初值的计算(1)定时器的初始计数值:在定时器模式下, T/C对机器周期脉冲进行计数, f OSC =6MHZ ,一个机器周期为12/f OSC =2us ,则模式0 13位定时器最大计时间隔=2 13 *2us=16.384ms模式 1 16位定时器最大计时间隔=2 16 *2us=131.072ms模式2 8位定时器最大计时间隔= 2 8 *2us=512us如果T/C工作在定时器模式1下,需要计时1ms并计算计数值。如果设计编号的初始值为x ,则有:(2 16 -x)*2us=1000us推出x=2 16 -500因此, T

27、H、TL可以设置为65 536-500(2) 计数器的初始计数值在计数器模式下:模式0 13 位计数器的全计数值= 2 13 =819216 位计数器的全计数值= 2 16 =65 536模式2 8 位计数器的全计数值= 2 8 =256如果T/C工作在计数器模式2 ,则需要对10个脉冲的初始值进行计数,例如设计数的初始值为x 。然后有2 8 -x=10或x= 2 8 -10因此, TH=TL=256-103.参考例子将单片机的晶振频率设置为12MHz ,用定时器在P1.0引脚输出一个周期为2ms的方波。分析:定时器/计数器选择T0作为定时器,输出为P1.0引脚。 2ms的方波可以由1ms间隔

28、的高低电平交替形成,因此只需每1ms反转一次P1.0即可。你可以得到这个方波。机器周期=12 12MHz = 1s1 msT0需要计数N次: N= 1 ms 1 s = 1000由于计数器向上计数,为了使定时器在1000 次计数后溢出,定时器的初始值必须设置为:65536-1000。参考程序:(1)设置一个周期为2ms的方波查询方式:#include位 P1_0=P10;无效的主要() P1_0=1;TMOD=0 x01; /T 0工作在定时器模式 1 16 位定时器TR0=1; /开始T0for(;) /主程序循环TH0=(65536-1000)/256; /预设计数初始值TL0=(6553

29、6-1000)%256;做P1_0=!P1_0; /P1.0 否定TF0=0; /软件清除TF0while(!TF0); /查询等待TF0被设置中断方法:#include位 P1_0=P10;无效的主要()P1_0=0;TMOD=0 x01; /T 0工作在定时器模式1TH0=(65536-1000)/256; /预设计数初始值TL0=(65536-1000)%256;EA=1; /CPU打开中断TF0=0;ET0=1; /T0开启中断TR0=1; /启动T0开始计时而(1);void timer0(void) interrupt 1 /T/C中断服务程序入口TF0=0; /清除中断标志P1_

30、0=!P1_0; /P1.0 否定TH0=(65536-1000)/256; /计数初值重载TL0=(65536-1000)%256;(2)用定时器精确计时1s,控制LED以秒为单位闪烁。已知fosc=12MHzT1选择模式 1 。计时时间为10ms。当10ms的定时时间到了,TF1=1,连续定时100次,调用亮灯函数;连续计时100次后,调用熄灯功能。循环工作,即达到每1s闪烁一次的效果。1、初值计算:(65536-X)12/fosc=10ms初始值X=55536=0D 8F0H因为(65536-1000 0 )/256 是 55536 的高 8 位,而 (65536-1000 0 )%25

31、6 是 55536 的低 8 位,所以TH1= (65536-1000 0 ) /256 , TL1= (65536-1000 0 ) % 2562.程序设计:C语言程序:#include 位 LED=P10;无符号字符 i;无效的主要()LED=1; /定义灯的初始状态为关闭我=0;TMOD=0 x10; /设置定时器1工作在模式1TL1= (65536-1000 0 ) % 256 ;TH1= (65536-1000 0 )/256 ; /设置计时初始值TR1=1; /启动定时器1ET1=1; /启用定时器1中断EA=1;而(1); 无效 timer1_int() 中断 3TL1=(655

32、36-1000 0 ) % 256; /定时器重新加载初始值TH1=(65536-1000 0 )/256;我+;如果(我=100)LED=LED;我=0;四、实验内容1)基本内容:根据开发板原理图,设计9秒倒计时,数码管从9开始每秒递减1,到0时,定时器关闭,蜂鸣器响起.2)扩容:设计60秒倒计时。实验7 MCU串行通信目的1、了解单片机串口的工作原理;2.学会使用单片机的TXD和RXD端口;3.了解MAX232芯片的功能。实验原理计算机与其外部设备之间的数据交换称为通信。通信的基本方式可分为并行通信和串行通信。在并行通信中,至少有8个数据通道,可以同时向对方发送一个字节的8位二进制码。串行

33、通信使用两条传输线传输数据,一次只能发送一位二进制。串行通信技术按传输的编码格式可分为同步通信和异步通信两种方式:1、同步方式:数据以数据块为单位传输。同步字符用于在传输开始之前进行指示,发送方和接收方之间的同步是通过时钟来实现的。2.异步模式:数据不连续传输。以字符为单位进行传输。传输的字节分为:起始位、数据位、校验位和停止位,称为一帧。常见格式:a、1bit起始位+8bit数据位+无校验位+1bit停止位湾。 1bit起始位+8bit数据位+1bit偶校验位+1bit停止位串行通信技术按数据流向分为三种方式:1、单工通信:数据流向是固定的,数据只能从一方发送到另一方。2、半双工通信:数据的

34、流向是双向的,但在某一时刻,数据只能单向流动。3、全双工通信:允许数据在两个方向流动,即通信双方的数据发送和接收同时进行。串口控制寄存器SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2任TB8RB8T1RISM0 、 SM1 :软件置位或清零,选择串口的四种工作模式。SM2 :多机通讯控制位。在模式2和模式3中,如果SM2=1 ,当接收到的第 9位数据(RB8)为0时,接收中断标志RI(即RI=0)不会被激活,接收到的前8位数据将丢弃;当RB8为1 时,将接收到的前 8位数据发送到SBUF ,并设置 RI以产生中断请求。当SM2=0时,无论第9位数据是0还是

35、1 ,前8位数据都加载到SBUF中,并产生中断请求。在模式0中, SM2必须为0 。REN :使能串行接收控制位。如果REN=0 ,接收被禁用;如果REN=1 ,则启用接收,并且该位由软件设置或复位。TB8 :传输数据D8位。在模式2和模式3中, TB8 是要发送的第 9 位数据。在多机通讯中, TB8位的状态表示主机发送的是地址还是数据: TB8=0为数据, TB8=1为地址;它也可以用作数据的奇偶校验位。该位由软件置位或复位。RB8 : 接收数据D8位。在模式2和模式3中,接收到的第9位数据可以用作奇偶校验位或地址帧或数据帧标志。在模式1中,如果SM2=0 , RB8为接收到的停止位。在模

36、式0 中,不使用RB8位。TI :发送中断标志位。在模式0下,当数据的第 8位发送完毕,或在其他模式下发送停止位后,硬件将置位TI向CPU 请求中断。 CPU响应中断后,必须用软件清零。此外, TI也可供询价。RI :接收中断标志位。在模式0 ,当接收数据的第8位完成时,或者在其他模式下,在接收停止位的过程中, RI由硬件置位,并向CPU请求中断。此外,它必须在CPU 响应中断后用软件清零。 RI也可用于查询。功率控制寄存器 PCON 的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMODCF1CF0PDIDLPCON的最高位SMOD 为串口波特率系数控制位。当SMOD=1时,波特

37、率加倍。其余位与串口无关。波特率设置:串口的四种工作模式对应三种波特率模式。对于模式0 ,波特率固定为fosc/12 。对于模式2 ,波特率由振荡频率fosc和SMOD (PCON.7)决定。其对应公式为波特率= 2 SMOD fosc/64 。当SMOD=0时,波特率为fosc/64 ;当SMOD=1时,波特率为fosc/32 。对于模式1和模式3 ,波特率由定时器/计数器T1 和 SMOD的溢出率决定,其由下式决定:波特率= 2 SMOD 定时器/计数器T1溢出率/323.参考方案在上位机上使用串口调试助手发送一个字符X ,单片机接收到该字符后返回上位机“我得到X” ,串口波特率设置为96

38、00。如果f osc = 11.0592MHz ,波特率为9600bps , SMOD = 0 ,定时器/计数器T1的初始计数值是多少?X=256 -void main()void main() init(); while(1) if (flag=1) ES=0; for(i=0;i6;i+) SBUF=table1i; while(!TI); TI=0; SBUF=a; while(!TI); TI=0; ES=1; flag=0; =256 -=253= 0 xfd#include #define uchar 无符号字符#define uint 无符号整数uchar 标志,a,i;ucha

39、r 代码 table1=我得到;无效初始化()TMOD=0X20;TH1=0Xfd;TL1=0Xfd;TR1=1;任=1;SM0=0;SM1=1;EA=1;ES=1;void fzhd() interrupt 4void fzhd() interrupt 4RI=0;a=SBUF;flag=1;四、实验内容基本内容:1、在上位机上使用串口调试助手发送一个字符。单片机接收到字符后,如果是X ,则返回上位机“OK” ,否则返回“error”。串口波特率设置为 96 00 。2 、实现两台单片机之间的通讯,一台单片机控制另一台单片机的LED灯亮灭。扩容能力:在上位机上,使用串口调试助手发送1 ,单片

40、机接收到字符后,数码管显示1 ,发送2 ,显示2 ;发送3 ,显示3 。 . .串口波特率设置为9600。实验八 LCD1602液晶显示器液晶显示模块已被用作计算器、万用表、电子手表和许多家用电子产品等许多电子产品的传递装置,可以看到,主要显示数字、特殊符号和图形。1、实验目的:掌握单片机控制LCD1602液晶显示器的原理和方法;2、实验原理:一、液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压来控制其显示区域,有电就有显示,从而可以显示图形。液晶显示器具有厚度薄的特点,适合直接驱动大规模集成电路,易于实现全彩显示。目前已广泛应用于便携式电脑、数码相机、PDA移动通讯工具等诸多领域。液

41、晶显示器的分类:通常按其显示方式可分为段型、字符型、点阵型等。除了黑白显示,液晶显示器还有多灰度和彩色显示。按驱动方式可分为静态、简单矩阵和有源矩阵三种。二、1602字液晶介绍字符液晶模组是一种专门用于显示字母、数字、符号等的点阵液晶显示器,目前常用的有16*1、16*2、20*2、40*2行的模组。一般的1602字符液晶显示如图2所示:图1 1602字符液晶显示器实物图(一) 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种。主控驱动电路为HD44780。带背光的比不带背光的要厚一些。有无背光的应用没有区别。1) 1602LCD主要技术参数:显示容量:162个字符芯片

42、工作电压:4.55.5V工作电流:2.0mA (5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm2)引脚功能说明1602LCD采用标准14针(不带背光)或16针(带背光)接口。各管脚接口说明如表1所示:表 11602LCD 引脚编号象征引脚说明编号象征引脚说明1VSS电源地9D2数据2VDD正电源10D3数据3VL液晶偏压11D4数据4RS数据/命令选择12D5数据5读/写读/写选项13D6数据6乙使能信号14D7数据7D0数据15BLA背光正极8D1数据16黑色背光负极引脚 1:VSS 为地电源。引脚 2:VDD 接 5V 正电源。3脚:VL为液晶显示器的对比度调节

43、端。连接正电源时对比度最弱,接地时对比度最高。当对比度过高时,会产生“鬼影”。使用时可以通过10K电位器调节对比度。4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。5脚:R/W为读写信号线,读操作为高电平,写操作为低电平。当 RS 和 R/W 都为低时,可以写入命令或显示地址。当 RS 为低电平时,R/W 为高电平,可以读取忙信号。当 RS 为高时,R/W 为低。可以写入数据。引脚 6:E 端为使能端。当E端从高电平跳到低电平时,液晶模块执行指令。引脚 7 到 14:D0 到 D7 是 8 位双向数据线。Pin 15:背光灯正极。第16脚:背光源负极。三、LCD1602

44、液晶显示方案设计一、1602LCD指令说明及时序1602液晶模块的控制器共有11条控制指令,如表2所示:表2控制命令表序列号操作说明RS读/写D7D6D5D4D3D2D1D01清晰的显示00000000012光标返回000000001*3设置输入模式00000001ID小号4显示开/关控制0000001DC乙5光标或字符移位000001S/C右/左*6设置功能00001深度学习F*7设置字符生成内存地址0001字符生成内存地址8设置数据存储器地址001显示数据存储器地址9读取繁忙标志或地址01高炉柜台地址10将数据写入 CGRAM 或 DDRAM)10要写入的数据11从 CGRAM 或 DDRAM 读取11读取数据内容1602液晶模块的读写操作、屏幕操作和光标操作都是通过指令编程实现的。 (注:1为高电平,0为低电平)(1)命令1:清除显示,命令代码01H,光标复位到地址00H。(2)命令2:光标复位,光标返回

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论