单片机应用技术基础(C语言)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机应用技术基础(C语言)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 应用技术 基础 语言 课件
- 资源描述:
-
1、模块5 显示和键盘接口技术模块5 显示和键盘接口技术任务7 LED数码管显示的简易秒表倒计时设计任务8 编制数码管动态显示程序任务9 字符型LCD液晶显示欢迎界面任务10 用矩阵键盘控制8路跑马灯模块5 显示和键盘接口技术任务7 LED数码管显示的简易秒表倒计时设计模块5 显示和键盘接口技术1.任务目的通过对由LED数码管显示一位数09简易倒计时秒表的制作,熟悉单片机与LED数码管的接口技术,进一步了解数组的定义、赋值、初始化等操作方法。2.任务要求用单片机实现一位数简易秒表倒计时控制,计时范围为09 s,并将计时时间在一位数码管上显示出来。3.电路设计用单片机控制LED数码管显示的简易秒表硬
2、件电路如图5.1所示,单片机的P0口8个引脚接到数码管的8个段控制端。图5.1中采用的是共阳极数码管,所以COM端(公共端)接P2.7作为选通端。如果是共阴极数码管,则须将COM端接地。模块5 显示和键盘接口技术4.程序设计/*功能:数码管显示10秒倒计时*/*数码管硬件结构选择为:三极管驱动8位共阳型数码管*/#include#define uchar unsigned char#define uint unsigned int#define sm_data P0 /P0选择段sbit p2_7=P27;void delay1s()uchar i;for(i=0;i=0;i-)sm_data
3、=zki;delay1s();模块5 显示和键盘接口技术5.程序运行测试编译、链接过程参见任务2,将二进制文档ex5_1.hex下载到单片机的程序存储器中,接通电路板电源,即可观察到一位简易秒表按照90的顺序显示。模块5 显示和键盘接口技术5.1 数 组模块5 显示和键盘接口技术5.1.1 一维数组1.一维数组的定义定义格式如下:类型说明符 数组名 常量表达式;类型说明符是数组中各个元素的数据类型;数组名是用户定义的数组标识符;常量表达式表示数组元素的个数。如:int a4;/定义整型数组a,有4个元素,a0、a1、a2、a3char b5;/定义字符数组b,有5个元素定义数组时,应注意以下几
4、点:(1)对于同一数组,所有元素的数据类型都必须是相同的。模块5 显示和键盘接口技术(2)数组名的书写规则应符合标识符的书写规定。(3)数组名不能与其他变量名相同。(4)方括号中的常量表达式不可以是变量,但可以是符号常数和常量表达式。如:#define NUM 4main()int aNUM,b4-2;(5)可以在一个类型说明中,定义多个数组和变量。2.数组元素数组元素也是一种变量,其标识方法为数组名后跟一个下标,它只能为整型数或整型表达式。定义形式:数组名下标如:zk7,ai等都是合法的。下标表示该数组元素在数值中的位置,其值从0开始,下标为0的数组元素是数组中的第一个数组元素,zk7为该数
5、组中的第8个元素。模块5 显示和键盘接口技术在程序中不能一次引用整个数组,只能逐个使用数组元素。如任务7秒表倒计时程序中程序段:for(i=9;i=0;i-)sm_data=zki;3.数组赋值给数组赋值的方法有赋值语句和初始化赋值两种。(1)在程序执行过程中,可用赋值语句对数组元素逐个赋值,如:for(i-0;i10;i+)Numi=i;(2)数组初始化赋值是指在数组定义时给数组元素赋予初值,如:int num10=0,1,2,3,4,5,6,7,8,9;这种赋值方式是在编译阶段完成的,可以减少程序运行时间,提高程序执行效率。模块5 显示和键盘接口技术5.1.2 字符数组前面介绍的数组是数值
6、型的数组,数组中的每一个元素都是用来存放数值型的数据。数组不仅可以是数值型的,也可以是字符型的或其他类型的(如指针型、结构体型)。字符数组的定义格式与一维数组定义类似,用来存放字符数据的数组是字符数组。字符数组中的一个元素就是一个字符。可以在定义字符数组时对各元素赋初值,即初始化。例如:char c10=I,a,m,h,a,p,p,y;把10个字符分别赋给c0c9这10个元素。如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预知的。如果大括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定义为空字符(即0
7、)。模块5 显示和键盘接口技术任务8 编制数码管动态显示程序模块5 显示和键盘接口技术1.任务目的根据电路编写在4个数码管上稳定显示“1234”的程序,了解数码管的动态显示的驱动。2.任务要求采用动态显示方式,用单片机实现4位数码管稳定显示“1234”。3.电路设计用动态显示方式点亮4个共阳极数码管的电路图如图5.2所示。图中将各个共阳极数码管相应的段选控制端并联在一起,仅用一个P0口控制。各位数码管的公共端,也称为“位选端”,由P2口高四位控制,用4个PNP型三极管驱动。模块5 显示和键盘接口技术4.程序设计4位数码管动态显示“1234”的程序如下。/*功能:让4个数码管依次显示1到4,调整
8、delay函数中的数值,可使数码管全亮或每次只亮一个。*/*数码管硬件结构选择为:三极管驱动8位共阳型数码管*/#include#define uchar unsigned char#define uint unsigned int#define sm_data P0 /P0选择段#define sm_dp P2 /P2选择位void delay(uint x);void main()uchar i;uint zk10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x98;/共阳型数码管对应的 /1到9十六进制编码 while(
9、1)模块5 显示和键盘接口技术 for(i=0;i4;i+)sm_dp=(i=0)?0 xEF:(sm_dp1)+1;/(sm_dp1)+1保证每次只点亮一个数码管 sm_data=zki;delay(5);/延时时间决定只亮一个数码管,还是所有数码管均有显示 /改变delay函数中的数值,可观察到不同的视觉暂留效果 /根据实践所得,当delay函数中的数值为15时,数码管全亮效果最佳 /当delay函数中的数值为80以上时,清楚可见每次只有一个数码管有显示 void delay(uint n)uchar i;while(n-)for(i=0;i125;i+);模块5 显示和键盘接口技术5.2
10、 单片机与LED数码管接口模块5 显示和键盘接口技术5.2.1 LED数码管的结构及原理1.LED数码管的结构在单片机系统中,经常采用LED数码管来显示单片机系统的工作状态、运算结果等各种信息,LED数码管是单片机人机对话的一种重要输出设备。单个LED数码管的外形如图5.3所示,外部引脚如图5.4所示。LED数码管由8个发光二极管组成,通过不同的发光字段组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“.”等。按照内部8个发光二极管连接方式的不同,LED数码管可分为共阳极型LED数码管和共阴极型LED数码管两种,其内部结构如图5.5所示。模块5 显示和键盘接口技术5.
11、程序运行测试编译、链接过程参见任务2,将二进制文档ex5_1.hex下载到单片机的程序存储器中,接通电路板电源,即可观察到一位简易秒表按照90的顺序显示。2.LED数码管的工作原理这里以共阳极型为例说明LED数码管的工作原理。从任务7中我们知道,若将数值0送至单片机的P0口,数码管上不会显示数字“0”。显然,要使数码管显示出数字或字符,直接将相应的数字或字符送至数码管的段控制端是不行的,必须使段控制端输出相应的字型编码。如图5.5(a)所示,共阳极数码管的8个发光二极管的阳极连接在一起,作为公共控制端(com),阴极作为“段”控制端。模块5 显示和键盘接口技术(1)当公共端接低电平时,每个发光
12、二极管都是截止的状态,无法发光。(2)当公共端接高电平时,当某段控制端为低电平时,该段对应的发光二极管导通并点亮。通过点亮不同的段,显示出不同的字符。如显示数字1时,b、c两端接低电平,其他各端接高电平。在任务7中,单片机P0口的八个引脚依次与数码管的a、b、f、dp八个段控制引脚相连接。要显示数字“0”,则数码管的a、b、c、d、e、f六个段应点亮,其他段熄灭,需向P0口传送数据11000000(C0H),该数据就是与字符“0”相对应的共阳极字型编码。5.2.2 LED数码管静态显示1.静态显示的概念静态显示是指当数码管显示某一字符时,相应的某段发光二极管恒定导通或恒定截止。这种显示方式的各
13、位数码管的公共端恒定接地(共阴极)或+5 V电源(共阳极)。每个数码管的8个段位控制引脚分别与一个8位I/O端口相连。只要I/O端口有显示字型码输出,数码管就显示给定字符,并保持不变,直到I/O端口输出新的段码。任务7采用的就是一位数码管的静态显示方式。2.静态显示的接口采用静态显示方式,较小的电流就可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但占用单片机的I/O端口线多,n位数码管的静态显示需占用8n个I/O端口,所以限制了单片机连接数码管的个数。同时,硬件电路复杂,成本高,只适合显示位数较少的场合。模块5 显示和键盘接口技术静态显示电路和实例见任务7。5.2.3 L
14、ED数码管动态显示1.动态显示的概念动态显示是一种按位轮流点亮各位数码管的显示方式,即在某一时段,只让其中一位数码管的“位选端”有效,并送出相应的字型显示编码。此时,其他位的数码管因“位选端”无效而都处于熄灭状态。下一时段按顺序选通另外一位数码管,并送出相应的字型显示编码,按此规律循环下去,即可使各位数码管分别间断的显示出相应的字符。虽然在同一时刻只有一位数码管在点亮,但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多位数码“同时”显示。这一过程称为动态扫描显示。2.动态显示的接口动态显示方式下,数码管的所有段选口共用一个8位I/O口,而每个数码管显示位要占用一根I/O线,因此
15、,n位动态显示的数码管只占用一个8位I/O端口和n根I/O线。显示n位数码时,连接段选的8位I/O端口依次送出n位数码的段码数据。同时,依次控制相应位公共端,当公共端电平为“0”(共阴极)或“1”(共阳极)时,该位数码管点亮。模块5 显示和键盘接口技术任务9 字符型LCD液晶显示欢迎界面模块5 显示和键盘接口技术1.任务目的通过对字符型LCD液晶欢迎界面的显示,让读者了解LCD显示器与单片机的接口方法,理解LCD显示程序的设计思路。2.任务要求实现在1602液晶的第一行显示“WELCOME!”,第二行显示“WWW.WTC.EDU.CN”。3.电路设计LCD液晶显示电路如图5.6所示,现对接口做
16、简要说明:液晶1、2端为电源端,15、16为背光电源端,为防止直接加5 V电压会烧坏背光灯,在15脚串入一个10 k电阻限流。3端为液晶对比度调节端,通过一个1 k的可调电阻来调节显示对比度。模块5 显示和键盘接口技术4端为向液晶的控制器写数据或写命令的选择端,接单片机的P3.5端口。5端为读/写选择端,此任务中,只向液晶写入命令和显示数据,所以此端始终为“写”状态,即低电平状态。6端为使能信号,是操作时必需的信号,接P3.4口。4.程序设计#include#define uchar unsigned char#define uint unsigned intuchar code table=
17、WELCOME!;uchar code table1=WWW.WTC.EDU.CN;sbit lcden=P35;/液晶使能端sbit lcdrs=P34;/液晶数据命令选择端uchar num;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);模块5 显示和键盘接口技术void write_command(uchar com)lcdrs=0;/选择写命令模式 P0=com;/将要写的命令字送到数据总线上 delay(5);/稍做延时以待数据稳定 lcden=1;/使能端给一高电平,因为初始化函数中已将lcden置为0 dela
18、y(5);lcden=0;/将使能端置0以完成高脉冲void write_data(uchar dat)lcdrs=1;P0=dat;delay(5);lcden=1;delay(5);lcden=0;模块5 显示和键盘接口技术void init()lcden=0;write_command(0 x38);/设置16*2显示,5*7点阵,8位数据接口 write_command(0 x0c);/设置开显示,不显示光标 write_command(0 x06);/写一个字符后地址指针加1 write_command(0 x01);/显示清0,数据指针清0void main()init();wri
19、te_command(0 x80);for(num=0;num8;num+)write_data(tablenum);delay(5);模块5 显示和键盘接口技术 write_command(0 x80+0 x40);for(num=0;num14;num+)write_data(table1num);delay(5);while(1);模块5 显示和键盘接口技术5.3 单片机与LCD液晶显示器接口模块5 显示和键盘接口技术5.3.1 LCD芯片介绍液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,20世纪中叶开始广泛应用在轻薄型显示器上。液晶显示器(Liquid Crystal Dis
20、play,LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。通常,我们把各种液晶显示器都直接叫做液晶。各种型号的液晶通常是按照现实字符的行数或液晶点阵的行、列数来命名的。比如:1602的意思是每行显示16个字符,一共可以显示两行,类似的命名还有0801,0802,1601等。这类液晶通常都是字符型液晶,只能显示ASCII码字符,如数字、大小写字母、各种符号等。12232液晶属于图形型液晶,它是由122列、32行组成,即共有12232个点来显示各种图形,类似的命名还有12864、19264、192128等。根据客户需求,厂家还可以设计出任意数组合的点阵液晶。模块5 显示
展开阅读全文