项目22.ppt
《项目22.ppt》由会员分享,可在线阅读,更多相关《项目22.ppt(75页珍藏版)》请在三一文库上搜索。
1、项目二 超速报警系统设计与调试,任务2 速度显示模块,2,内容提要,速度显示通常有哪些形式? 数码管显示接口电路如何设计? 液晶显示接口电路如何设计? 数码管显示与液晶显示有何异同? 在数码管上显示小数点,有哪些处理方法? 按键接口电路如何设计?,3,项目效果图,4,主要内容,5,设计步骤,1,2,3,5,4,任务分析,确定方案,硬件设计,软件设计,系统调试,速度显示模块,6,设计要求,7,硬件电路设计 具体可分为,硬件电路设计,系统方案设计,具体电路方案设计,总电路原理图设计,8,软件设计,9,系统方案设计,10,具体电路方案设计-显示电路,动态显示,11,具体电路方案设计-显示电路,静态显
2、示,12,LED数码管,数码管内部由多个发光二极管组成。根据内部二极管连接方式,数码管在结构上又分为共阴极型和共阳极型两种。共阴极型内部发光二极管阴极连在一起,接低电平。共阳极型内部发光二极管阳极连在一起,接高电平。单个数码管内部共有8只发光二极管,7只为字段,可组成字形,第八个为小数点。故单个数码管有人称为七段数码显示,也有人称之为八段显示。如下图示,(a)为数码管引脚及外型图,(b)为共阴极型LED显示器,(c)为共阳极型LED显示器。,13,LED数码管,数码管引脚及内部结构图,14,LED数码管,数码管发光原理分两种情况: 共阴极型如图(b)所示,a、b、c、d、e、f、g各引脚输入高
3、电平有效。只要哪个引脚输入为高电平,对应的二极管就会发亮。 共阳极型,如图(c)所示。这种结构数码管的a、b、c、d、e、f、g各引脚输入低电平有效。只要哪个引脚输入低电平,对应的二极管就会发亮。,公共端接低电平,公共端接高电平,15,LED数码管,通过点亮不同的发光段可组成不同的字形。输入到数码管dp 、g、f、e、d、c、b、a的二进制码称为字段码(或称字形码),数码管显示的结果为字形。下表是显示字形与共阳极和共阴极两种接法的字段码对应关系。,16,LED数码管显示字形与段选码关系,17,LED数码管,上表中,各发光段a、b、c、d、e、f、g及dp与数据线的对应关系是D0D7,即a对应D
4、0、b对应D1、依次类推,而dp对应D7。 只要把共阳极数码管按照引脚a、b、c、d、e、f、g、dp的顺序分别接于单片机P1口的P2.0P2.7,如下图所示。由于P2口在输出时具有锁存功能,只要用指令向P2口送出字段码,数码管就可显示出所需字形。,18,LED数码管,思考: 有时候为了电路板布线方便,数码管与单片机的连接关系并非是“各发光段a、b、c、d、e、f、g及dp与数据线的对应关系是D0D7”。 当他们的连接关系为“D0-D7分别与数码管的g、f、a、b、e、d、c、dp”时,显示的字形码是什么?,19,单个LED数码管显示电路,数码管与P2口接口连接电路,20,单个LED数码管显示
5、电路,要求设计十秒计时器。包含一位数码管,数值在09变化。每位数显示一秒钟。 数码管的显示要用到数组。将字形码存放在数组中。比如 chr10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; P2=chri;(10i=0),这样完成了译码,当i=0时将chr0即0x3f送出了,从而实现了0的显示。,21,单个LED数码管显示电路,十秒计时器流程图,可用for循环实现。,22,单个LED数码管显示程序,void main(void) uchar i; uchar chr10=0x3F,0x06, 0x5B,0x4F,0x66,0x6D, 0x7
6、D,0x07,0x7F,0x6F; while(1) for(i=0;i10;i+) P2=chri; delay(); ,#define uchar unsigned char #define uint unsigned int #include void delay() uchar i; uint j; for(i=0;i124;+i) for(j=0;j1000;+j); ,23,显示接口设计,多位数码管显示时工作方式有两种:静态显示方式和动态显示方式。 1静态显示方式: 静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字形码。送入一次字形码显示字形一直保持,直到送入新字形
7、码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。静态显示接口电路有许多种,下图给出了一个并行接口显示电路的实例。,24,静态显示接口电路,如果要求实现显示34,chr10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; P2=chr3; P2=chr4;,25,练习,要求完成60秒的计时。 可用一个变量i用来存放时间值,初始值为0。当一秒钟时间到了之后,这个变量的值加一。一直减到59,到60后又变为0,从头开始。,要显示这个时间变量,需要将时间的个位和十位上的数值拆分出来。,用什么方法呢?,2
8、6,1基本算术运算符 基本算术运算符有如下5种: +(加法)、(减法)、*(乘法)、/(除法)、%(求余数) 1) 关于除法运算“/” C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,10/3=3。如果相除的两个数中至少有一个是实型的,则结果为实型。例如,10.0/3=3.333333。,算术运算符,27,如果商为负值,则取整的方向随系统而异。但大多数系统采取“向零取整”原则,既取整后向零靠拢,换句话说,取其整数部分。例如,-5/3=-1。 2) 关于求余数运算“%” 求余数运算要求两侧的操作数均为整型数据,否则出错。例如,5%2=1。,可以用除法运算和求余数运算将需要显示数据的个
9、位和十位的数码求出。,算术运算符,28,数字拆分,例如将69的个位和十位的数字分别拆出。 69/10=6 69%10=9,这样便获得了6和9,即可分别送数码管显示了。,29,60秒计时流程图。,30,void main(void) char i; unsigned char chr10=0x3F,0x06, 0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; while(1) for(i=0;i60;i+) P2=chri/10; P3=chri%10; delay(); ,31,显示接口设计,2动态显示:动态显示的特点是将所有数码管的段选线并联在一起,通过控制位
10、选信号来控制数码管的点亮。这样一来,就没有必要每一位数码管配一个锁存器,从而大大简化了硬件电路。数码管采用动态扫描显示,所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的限流电阻。下图给出一种2位LED动态显示电路。,32,动态显示接口电路,33,用动态显示法实现两位数58的显示。,34,动态显示接口程序,#define uchar unsigned char #define uint unsigned int #include voi
11、d delay(int k) uchar i; uint j; for(i=0;i124;+i) for(j=0;jk;+j); ,35,void display(unsigned char t) unsigned char n1,n2; unsigned char chr10=0x3F,0x06,0x5B, 0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; n1=t/10;n2=t%10; P3_1=1;P3_0=0; P2=chrn1; delay(10); P3_0=1;P3_1=0; P2=chrn2; delay(10); ,36,void main(void)
12、 unsigned char i=58; while(1) display(i); ,37,练习,采用动态显示法显示六位数应该如何绘制接口电路和编写程序?,38,display(long zt) char chr10=0x3F,0x06,0x5B,0x4F, 0x66,0x6D,0x7D,0x07,0x7F,0x6F; char i,lie,a6; a5 = zt%10; zt = zt/10; a4 = zt%10; zt = zt/10; a3 = zt%10; zt = zt/10; a2 = zt%10; zt = zt/10;,a1 = zt%10; zt = zt/10; a0 =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 22
链接地址:https://www.31doc.com/p-3377466.html