电子设计工程师认证课程
uchar i,sel;
ORDER8155 = 0x03; sel = 0x01; { }
PB8155 = table[*p]; PA8155 = sel; del_ms(50); p++; sel = sel<<1;
//设定8155 工作在I/O口扩展方式
for(i = 0; i <= 5; i++)
} void main() {
while(1) {
display(dis_buffer); } }
4、 设计调试步骤
1、 把电源模块、CPU模块、8155扩展模块、LED显示器模块、串口通信模块插在正确的位置
上,并把跳帽进行正确短接。
2、 建立Keil工程,编辑、编译源代码并生成可下载的HEX文件 3、 连接串口线,通过串口通信模块使用STC-ISP软件下载程序
4、 观察LED显示数据,如果以上步骤正确的话,在LED上应能显示0、1、2、3、4、5六个
数字。
3.3.4电子设计DIY
设计要求:请参考上述8155模块电原理图在EDP试验仪的面包板上自行完成一个16路I/O扩展电路设计,画出电原理图并完成相应的硬件设计。电源为单5V。
设计提示:可以采用并行8155或8255 I/O扩展芯片或者串行I/O扩展芯片,与实验仪单片机的连接可以采用串行或并行方式。试验仪面包板的引脚定义可参照图3.17。
16
电子设计工程师认证课程
VCC GND VCC GND 3.17:试验仪面包板的引脚定义
GND VCC VCC GND 3.4 Led显示模块
3.4.1 设计目的及任务
1、设计任务:设计一个8段6位LED数码管显示器以及相应的驱动电路。
5、 功能指标:可以显示0~9数字以及A~F英文字符,并带小数点。电源为+5V供电 6、 设计要求:所设计的显示器应满足EDP实验仪系统设计要求,并能与整个系统有效结合。 以下是一个LED显示器的原理、设计范例及其相应电路的讲解,仅供参考。
3.4.2 LED显示器的基本工作原理
1 、LED的结构
(a)数码管结构 (b)共阳极接法 (c)共阴极接法 图3.18: LED数码管原理图
17
电子设计工程师认证课程
LED显示器采用发光二极管显示字段。单片机糸统中经常采用的是八段显示器,即LED显示器中有8个发光二极管,每段LED的笔画分别称为a、b、c、d、e、f、g,代表“a.b.c.d.e.f.g.”七个字段和一个小数点“dp”。它有共阴和共阳两种结构。七段LED的阳极连在一起称为共阳极接法,而阴极接在一起的称为共阴极接法。如图3.18所示。
具体引脚与笔画的对应因厂家和型号的不同而略有差异。一位显示器数码管的结构如图1所示。
2、LED的工作原理
共阴极的LED,只要在某该段二极管加上高电平,该段即点亮,反之则暗。共阴极的与之相反。对共阴极LED显示器的控制采用“接地方式”即通过控制LED的“GND”引脚的电平高低来达到选通的目的,该引脚即通常所说的位选线。共阳极LED显示器控制方式则相反。两种控制方式中,共阴极LED控制方式受糸统器件功耗限制,只能用在小尺寸的LED显示器中。对于大尺寸LED显示器的控制(如大屏幕计时器)一般使用共阳极方式。使用LED显示器时,工作电流一般为5-10mA/段,这样当LED处于全亮状态时,工作电流约40-80 mA左右。LED显示器的亮度除与工作电流有关外,还与LED的型号有关。根据显示亮度的不同划分为普通亮度和高亮度LED,高亮度LED显示器的发光强度远大于普通亮度的LED,正常情况下的发光强度越是普通LED的10倍,即在1-2 mA/段时便可点亮。一个单片机应用系统中,通常将控制LED显示字符的8位数据称之为段选码,七段LED的段选码如图3.19所示,共阴级与共阳极段选码互为补码,即两数值相加等于FFH。
图3.19:七段LED的段代码 字符 0 1 2 3 4 5 6 7 共阴 3FH 06H 5BH 4FH 06H 6DH 7DH 07H 共阳 COH F9H A4H BOH 99H 92H 82H F8H 字符 8 9 A B C D E F 共阴 7FH 6FH 77H 7CH 39H 5EH 79H 71H 共阳 80H 90H 88H 83H C6H A1H 86H 8EH 段选码的数值大小根据LED结构很容易得出,假设一个共阴LED要显示数字“0”,根据图4-1则有:a=b=c=d=e=f=1=1,g=0 dp=0 即二进制的“00111111B”,也就是16进制的“3FH”。
3.4.3设计内容
1. 试验仪LED显示器接口定义
试验仪LED显示器接口定义如图图3.20。
18
电子设计工程师认证课程
VCC GND VCC GND LED 数码管 VCC SS1 SS3 SS5 SS7 ZA ZC ZE ZG GND VCC SS2 SS4 SS6 SS8 ZB ZD ZF ZH GND 图3.20 :LED数码管模块的双26针插脚位置及定义
2、原理图及其说明
试验仪LED显示器的原理图可参照图3.21和3.22,由于单片机的I/O口有限,因此通过一片I/O口扩展芯片8155的PA和PB口作为LED的“段选线”和“位选线”。试验仪上的LED采用共阴极模块。为了驱动各段LED,需要外加驱动电路。本模块采用两片正向驱动器7407与LED段选线连接,通过一片反向驱动器7406与LED的位选线连接。
单片机 D0—D7 扩展芯片8155 PA口 数码管 控制位PB口
图3.21 LED数码管原理框图
19
电子设计工程师认证课程
1 IC2AZF1IC2BZE3IC2CZD5IC2DZA9IC2EZB11IC2FZC13IC3EZG11234527407474076740787407FEVCCDFGEDHCBA123456789U1AC30.1uC10.1uC20.1u10B740712C740710G740787407HVCC8*1K从PB口输入IC3DZH9送给数码管显示101010IC1ASS1174062W198769876GGNDFGGNDFGGNDFEGNDDSS2IC1B37406ABAB4W2EGNDDEGNDDSS3IC1C56740687406W3…………LED6W6CDPCDPSS4IC1D9W4LED11234512345SS5IC1E1110W5J1740612W67406从PA口输入SS6IC1F13选定数码管 插接线W1W2LED212345CDPAB9876 图3.22: LED数码管模块电原理图 3.用动态显示方式实现在六个LED显示器显示不同字符。 EDP实验型通过8155 I/O扩展芯片控制LED显示。8155的PB口和PA口分别作为字形口和字位口,它们的地址分别为0fd02H和0fd01H,8155控制口为0fd00H。设8155的工作方式命令字为03H,即8155的PA、PB口作为输出口且工作于方式0,PC口不用。 在程序编写中,为了显示6个不同的字符,必须在存贮器中开辟一个显示缓冲区,缓冲区里放置欲显示字符的字形码。程序从显示缓冲区中逐个取出要显示的字形码,依次把字符显示在规定的B12345TitleSizeNumber字位上。在每点亮一个LED显示器后,延时一段时间,使之发光稳定,然后顺序点亮其它的显示器,这样循环扫描显示。由于延时时间短,因此我们看到的效果是所有字符同时被显示出来,这种显示方式就称为动态显示。通过对延时时间的控制,可以使显示达到不同的效果。 4、软件设计方法
软件设计中,首相定义8155的命令寄存器的外部地址是0x0fd00,定义PA和PB口的外部地址为0x0fd01和0x0fd02,然后定义一个数据缓存数组Led_number[6],存储显示数据。其流程见图4-4-5,根据软件流程得到的LED动态显示与51单片机的C语言接口函数LED.c见例3.23。
Date:File:12-Mar-2008D:\\学习软件\\protel\\led.DDB20