单片机控制数码管显示1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机应用技术思考:用单片机系统可控制LED可实现信号灯的不同效果显示,那么能不能用单片机系统控制LED来实现字符显示呢?单片机应用技术学习情境2数码管显示系统设计单片机应用技术单片机应用技术数字型数码管应用电子万年历的士计价器电子秤电梯外呼器单片机应用技术单片机如何控制数码管显示数字?单片机应用技术一、数码管外形和电路结构数码管引脚顺序数码管段码图单片机应用技术1、终极目标:制作在数码管上显示任意字符的单片机控制系统。2、促成目标:(1)掌握单片机查表程序的设计方法;(2)掌握单片机的LED显示接口电路工作原理及其应用;(3)掌单片机LED显示接口的程序设计方法;(4)初步掌握单片机应用系统分析和软硬件设计的基本方法,建立单片机系统设计的基本概念;【教学目标】单片机应用技术任务1:•数码管循环显示0~9单片机应用技术【活动一】总体设计1.系统组成本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处理及控制功能等。本系统的硬件采用模块化设计,以AT89S52单片机为核心,与数码管接口电路组成控制系统。该系统硬件主要包括以下几个模块:AT89S52主控模块、数码管显示模块等。其中AT89S52主要完成外围硬件的控制以及一些运算功能,数码管显示模块完成字符、数字的显示功能。系统组成方框图如图2.1所示。【项目实践】单片机应用技术单片机数码管显示电路复位电路时钟电路电源电路图2.1数码管显示系统组成方框图【项目实践】单片机应用技术应用软件采用模块化设计方法。该系统软件主要由主程序、延时子程序等模块组成,系统软件结构框图如图2.2所示。延时子程序主程序图2.2系统软件结构框图单片机应用技术2.系统工作原理数码管由8个发光二极管构成,可以用来显示数字、字符等,它在家电及工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等,具有显示醒目、直观的有点,如图2.3所示。图2.3数码管实物图单片机应用技术图2.4数码管内部结构图【项目实践】单片机应用技术二、数码管如何显示数字0A、B、C、D、E、F引脚接高电平G、Dp引脚接低电平共阴极数码管公共脚接低电平DpGFEDCBA00111111显示数字0的段码为:0x3F单片机应用技术三、共阴极数码管如何显示其他数字根据这种方法,依次写出数字0-9的段码:数字00x3F数字50x6D数字10x06数字60x7D数字20x5B数字70x07数字30x4F数字80x7F数字40x66数字90x6F单片机应用技术四、电路连接单片机应用技术五、程序语句要让数码管显示数字0,只需要将单片机的P2端口输出数字0对应的段码0x3F即可,程序语句为P2=0x3F同理显示数字1,程序语句为P2=0x06同理显示数字9,程序语句为P2=0x6F单片机应用技术五、单片机控制数码管显示代码如下:#includereg51.hvoidmain(){while(1){P2=0x3F;}}单片机应用技术对于共阳极数码管而言,要想显示数字或字母,首先应该选中该数码管,然后相应字段被点亮。例如:显示一个“3”字,那么应当是a亮、b亮、c亮、d亮、e不亮、f不亮、g亮、dp不亮。那么可以列出数码管显示数字的段码表如表2.1所示。单片机应用技术表2.1共阳数码管显示数字的段码表段名称DPGFEDCBA对应段码对应引脚P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0数字011000000C0H数字111111001F9H数字210100100A4H数字310110000B0H数字41001100199H数字51001001092H数字61000001082H数字711111000F8H数字81000000080H数字91001000090H单片机应用技术如表2.1所示,由于数码管显示的数字“0~9”的字型码“0C0H、0F9H、0A4H、0B0H、99H、92H、82H、0F8H、80H、90H”没有规律可循,只能采用查表的方式来完成我们所需的要求。在程序设计中可以设计一个变量,每隔一定时间在“0~9”之间变化,然后按照这个数据去查找段码表,把查到的数据送到P2口。所谓表格是指在程序中定义的一串有序的常数,如平方表、字形码表、键码表等。因为程序一般都是固化在程序存储器(通常是只读存储器ROM类型)中,因此可以说表格是预先定义在程序的数据区中,然后和程序一起固化在ROM中的一串常数。在程序设计中,有时需要预先把非线性数据以表格的形式存放在存储器中,然后使用程序读出,这种能读出数据表格的程序就称为查表程序。查表程序的关键是表格的定义和如何实现查表。单片机应用技术定义段码表•unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedchark;while(1){for(k=0;k10;k++){P2=tab[k];//查表取数…查表语句单片机应用技术一维数组的查表功能数组的一个非常有用的功能之一就是查表。表可以事先计算后装入程序存储器中。如:•unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义数组tab[],并初始化unsignedchark;while(1){for(k=0;k10;k++){P2=tab[k];//查表取数单片机应用技术4.LED数码管显示方式根据LED显示的硬件设计方法的不同,LED显示驱动分为静态法和动态法两种方法。单片机应用技术静态显示方式连接•所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。••特点•原理简单;显示亮度强,无闪烁;占用I/O资源较多。单片机应用技术动态显示方式连接•所有LED的段选线共同连接在一起共用一个8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。•单片机应用技术任务20-99计数器利用AT89c52单片机来制作一个0~99计时器,并且通过两个共阴数码管显示计数结果,数码管显示采用静态显示方式。单片机应用技术0-99计数器电路设计P20P26P20P26P21P22P23P24P25P21P22P23P24P25R110kC130pFC230pFX1CRYSTALC310uFXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.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/A1427U1AT89S52R210k23456781RP14.7k-7单片机应用技术静态显示的概念静态显示是指显示驱动电路具有输出锁存功能,待显示的字符编码被CPU送出后,数码管会一直显示该字符不变,CPU不需要再控制数码管,如果要显示新的字符,CPU只要再次送出即可。采用静态显示方式,较小的电流就可以获得较高的亮度,且占用CPU时间较少,编程简单,显示便于检测和控制,但其占用的I/O口线较多,硬件电路复杂,成本高,只适合显示位数较少的场合。单片机应用技术0-99计数显示c语言程序•#includeAT89X52.H//包含AT89X52.H头文件•/*定义0~9十个数字的字型码表*/•unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,•0x6d,0x7d,0x07,0x7f,0x6f};•unsignedcharCount;//定义变量放置计数数值•voiddelay10ms(void)//定义10ms延时函数•{•unsignedchari,j;•for(i=20;i0;i--)•for(j=248;j0;j--);•}单片机应用技术0-99计时器显示c语言程序voidmain(void){Count=0;//计数变量初始为0For(Count=0;Count100;Count++){P0=table[Count/10];//显示十位数P2=table[Count%10];//显示个位数delay10ms();}while(1);//等待}单片机应用技术动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。单片机应用技术ABCDEFGDPS1S2S3S4S5S6S1S2S3S4S5S6ABCDEFGDPXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.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/A1427U1AT89C52X112MC130pFC230pFR110kC310uFVCCVCC234567891RP11kx8R24.7kGNDGND单片机应用技术#includeREG51.Hunsignedcharcodetable1[]={0x06,0x5b,0x4f,0x66,0x6d};//1-5的字形码unsignedcharcodetable2[]={0x76,0x79,0x38,0x38,0x3f};//HELLO的字形码unsignedcharcodetable3[]={0xfe,0xfd,0xfb,0xf7,0xef};//位选码unsignedchari,a;sbitbutton=P1^7;//位定义,不能直接用P1^7voidmain(void){while(1){for(i=0;i5;i++){P2=0xff;//清屏信号,必须使用if(button==1)P0=table1[i];//对1-5的字形码查表elseP0=table2[i];//对HELLO的字形码查表P2=table3[i];//对位选信号查表for(a=248;a0;a--);//字形显示延时,可调节}}}

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功