1、项目二 键盘与显示系统设计任务2 数码管显示器设计任务内容 组装一个模拟城市交通灯系统,由单片机外接12个发光二极管,分别代表东南西北四个道口的红、绿、黄信号灯,红灯亮9秒,黄灯亮2秒,绿灯亮7秒,黄灯期间黄灯闪烁5次。同时外接1位数码管,用于倒计时。学习目标1.掌握数码管内部结构及数码管结构电路的设计;2.掌握C51数组的使用方法;3.学会单片机控制数码管显示器的电路设计;4.理解数码管静态显示和动态显示原理,学会设计控制代码。知 识 点知识点一 数码管结构及段选码知识点二 C51中的一维数组知识点三 数码管显示方式 LED数码管显示器按用途可分为通用型和专用型显示器,分别如下图所示。(a
2、a)通用通用7 7段段LEDLED数码管数码管 (b b)专用专用LEDLED数码管数码管 1.1.数码管显示器的外观数码管显示器的外观 知识点一 数码管结构及段选码2.2.内部结构内部结构 数码管由数码管由8 8个个LED(LED(发光二极管发光二极管)a)a、b b、c c、d d、e e、f f、g g和小和小数点数点dpdp构成,按结构分为共阴极和共阳极两种。构成,按结构分为共阴极和共阳极两种。知识点一 数码管结构及段选码dpcabdefgdpcabdefg5 Vadgfbceg fGND a bed GND cdp(a)(b)(c)当某发光二极管要点亮时,只需COM端接地,并在阳极加
3、高电平即可。dpcabdefgdpcabdefg5 Vadgfbceg fGND a bed GND c dp(a)(b)(c)(1 1)共阴极数码管)共阴极数码管 知识点一 数码管结构及段选码dpcabdefgdpcabdefg5 Vadgfbceg fGND a bed GND c dp(a)(b)(c)当某发光二极管要点亮时,只需COM端接高电平,并在阴极加低电平即可。(与共阴极相反)(2 2)共阳极数码管)共阳极数码管 知识点一 数码管结构及段选码COM端:共阴数码管接地;共阳数码管接电源数据口adp:通过单片机的IO口接电阻或驱动电路连接。(3)单个数码管接口电路单个数码管接口电路知
4、识点一 数码管结构及段选码 dp gfedcbaD7 D6 D5 D4 D3 D2 D1 D0(1 1)根据电路连接,列出码字的数据格式)根据电路连接,列出码字的数据格式 例:例:(4 4)LEDLED数码管码字设计数码管码字设计(2 2)根据待显示字符,列出各字形码表)根据待显示字符,列出各字形码表 例:例:共阴极共阴极LEDLED数码管字形码表数码管字形码表字形码字形码3F3F06065B5B4F4F66666D6D7D7D07077F7F6F6F显示显示字符字符0 01 12 23 34 45 56 67 78 89 9想一想:带小数点想一想:带小数点的显示,字型码是的显示,字型码是多少
5、?共阳的呢?多少?共阳的呢?知识点一 数码管结构及段选码 C语言具有使用户定义一组有序数据项的能力,这组有序的数据即数组。数组是一组具有固定和相同类型数据成员的有序集合,数据成员的类型为该数组的基本类型,各数据成员称为数组元素。数组数据是用同一个名字的不同下标访问的,数组的下标放在方括号中,是从0开始(0,1,2,3,n)的一组有序整数。数组有一维、二维、三维和多维数组之分。C51中常用的有一维、二维和字符数组。知识点二 C51中的一维数组1一维数组的定义一维数组的定义 定义格式:类型说明符类型说明符 数组名数组名 整型表达式整型表达式 例如:unsigned char ch10,定义了一个无
6、符号字符型数组,有10个元素,每个元素由不同的下标表示,分别是ch0,ch1,ch2,ch9。注意,数组的第一个元素的下标是0而不是1,即第一个元素是ch0,而第十个元素是ch9。知识点二 C51中的一维数组2 2数组的初始化数组的初始化 (1)在定义数组时对数组的全部元素赋值。例如,本任务中,数码管的09的码字表用一维数组定义并初始化:unsigned char tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;09的码字被依次列入数组中,数组的下标(对应显示字符)和数组元素(对应段选码)之间建立一一对应的关系
7、。例如,在P0口显示字符2,则执行代码P0=tab2即可。知识点二 C51中的一维数组 通常,表格存放于ROM中,在数组定义的时候用 code 指定ROM存储区域:unsigned char code tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;在程序编译中,就把数组中的10个元素存储到ROM中。(2)只对数组的部分元素初始化 例如:int a10=0,1,2,3,4,5;该数组共10个元素,但括号中仅6个初值,则数组的前6个元素被赋初值,而后面的4个元素值为0。(3)若定义数组时,不对元素赋值,则数组的全
8、部元素都被缺省地赋值为0。知识点二 C51中的一维数组1 1静态显示方式静态显示方式 静态显示是指数码管显示某一字符时,相应的LED恒定导通或恒定截止。静态显示时,各位数码管相互独立,公共端接固定电平(共阴极公共端接地,共阳极公共端接Vcc),各位的8根段码线则分别与一个8位I/O口相连,只要保持各位对应的段码线上电平不变,则该位显示的字符就保持不变。知识点三 数码管显示方式1 1静态显示方式静态显示方式 知识点三 数码管显示方式1 1静态显示方式静态显示方式 直接采用并行直接采用并行I/OI/O接口占用资源较多,静态显示可利用单接口占用资源较多,静态显示可利用单片机的串口,与外接移位寄存器片
9、机的串口,与外接移位寄存器74LS16474LS164构成显示接口电路。构成显示接口电路。知识点三 数码管显示方式1 1静态显示方式静态显示方式 采用静态显示方式,较小的电流即可获得较高的亮度,且采用静态显示方式,较小的电流即可获得较高的亮度,且占用占用CPUCPU时间少,时间少,编程简单编程简单,显示便于监测和控制,但其,显示便于监测和控制,但其占用占用的口线多的口线多,且要求该口具有锁存功能,且要求该口具有锁存功能,硬件电路复杂硬件电路复杂,成本高,成本高,只适用于显示位数较少的场合。只适用于显示位数较少的场合。知识点三 数码管显示方式2 2动态显示方式动态显示方式 动态显示是一位一位地轮
10、流点亮各位数码管,这种逐位点动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描,如图所示。亮显示器的方式称为位扫描,如图所示。知识点三 数码管显示方式各位数码管的段选线相应并联在一起,由一个8位的I/O口控制各位的位选线(公共阴极或阳极)由另外的I/O口控制。2 2动态显示方式动态显示方式 动态方式显示时,各数码管分时轮流选通,即在某一时刻动态方式显示时,各数码管分时轮流选通,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数位数码管,并送出相应的
11、段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示的,但由于人眼存在视觉暂留效应,只要每位显示间隔足显示的,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短(通常选择够短(通常选择1-2ms1-2ms),就可以给人以同时显示的感觉。),就可以给人以同时显示的感觉。知识点三 数码管显示方式2 2动态显示方式动态显示方式 和静态显示方式相比,采用动态显示方式比较节省和静态显示方式相比,采用动态显示方式比较节省I/OI/O口口资源,资源,硬件电路简单硬件电路简单,但其,但其亮度低亮度低,软件复杂点软件复杂
12、点,扫描占扫描占CPUCPU资源多资源多。为了提高系统实时性响应能力,编写动态扫描程序一般采为了提高系统实时性响应能力,编写动态扫描程序一般采用用2mS2mS中断进行轮流扫描的办法,具体以后介绍。中断进行轮流扫描的办法,具体以后介绍。知识点三 数码管显示方式知识点二 数码管显示方式2 2动态显示方式动态显示方式 例:显示例:显示89528952的流程及程序。的流程及程序。知识点二 数码管显示方式任务实施任务实施P10P11P12P13P14P15P16P10P12P11P13P14P15P16R2220R3220R4220R5220D1红D2黄D3绿D4红D5黄D6绿R6220R7220XTA
13、L218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6
14、/A1427U1AT89C51C122pFC222pFC310uFX112MR110kp0.0p0.1p0.2p0.3p0.4p0.5p0.0p0.1p0.2p0.3p0.4p0.5R8220R9220R10220D7红D8黄D9绿p0.0p0.1p0.2R11220D10红D11黄D12绿R12220R13220p0.3p0.4p0.5R141kR151kR161kR171kR181kR191kR201k课后练习课后练习1.1.修改红绿灯的亮灯时间,红灯修改红绿灯的亮灯时间,红灯2828秒,绿灯秒,绿灯2525秒,黄灯秒,黄灯3 3秒,秒,硬件电路该如何修改,控制程序如何修改?硬件电路该如何修改,控制程序如何修改?2 2设计单片机显示系统,外接设计单片机显示系统,外接5 5个数码管,显示个数码管,显示“HELLO”HELLO”。