实验三数码管静态显示实验目的1、掌握数码管静态显示原理;2、掌握数码管静态显示编程。实验设备与文件PC机、stc89c52实验箱、USB线、stc89c52实验板原理图。k18588258589888838869e11674HC57315AAE8.8.8.8.8.8.8.8.R文RL318808BN58M9858838869K74HC573E1GNE数码管锁存器模块8位共阴极数码管图1原理图
1 实验三 数码管静态显示 一、 实验目的 1、掌握数码管静态显示原理; 2、掌握数码管静态显示编程。 二、 实验设备与文件 PC 机、stc89c52 实验箱、USB 线、stc89c52 实验板原理图。 图 1 原理图
三、实验原理3.1LED数码管显示原理LED数码管:“8”字型,7段(不包括小数点)或8段(包括小数点),每段对应一个发光二极管,共阳极和共阴极两种,如图2。共阳极数码管的阳极连接在一起,接+5V;共阴极数码管阴极连在一起,接地。fGNDabt体109876aoaoA体abobo体cocO体Hdodo体eoeo体fofo体dgog0dpdpodpo本345112d GND edp.(a)共阴极(b)共阳极(c)外形及引脚图28段LED数码管结构及外形对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被显示。同样,共阳极数码管阳极连在一起,公共阳极接+5V,当某个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各段提供一字节的二进制码,即字型码(也称段码),如图3所示:显示共阴极显示共阴极共阳极共阳极字符字型码字型码字符字型码字型码0c3FHCOH39HC6H106HF9Hd5EHA1H25BHA4HE79H86H34FHBOHF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8H6EH91Hy00H7FH80H76H89H96FH90HL38HC7H“灭”A77H88HOOHFFHb7CH83H....图3段码表2
2 三、 实验原理 3.1 LED 数码管显示原理 LED 数码管:“8”字型,7 段(不包括小数点)或 8 段(包括小数点), 每段对应一个发光二极管,共阳极和共阴极两种,如图 2。共阳极数码管的阳极 连接在一起,接+5V;共阴极数码管阴极连在一起,接地。 图 2 8 段 LED 数码管结构及外形 对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相 应段被显示。同样,共阳极数码管阳极连在一起,公共阳极接+5V,当某个发光 二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。 为使 LED 数码管显示不同字符,要把某些段点亮,就要为数码管各段提供 一字节的二进制码,即字型码(也称段码),如图 3 所示: 图 3 段码表
3.2数码管静态显示1)静态显示时数码管的段需要一个8位I/O口控制。2)数码管的位:接“电源”或接“地”3)静态显示编程简单,但占用的1/O口线较多4)一般适用于显示位数较少的场合。74HC573数据锁存使用3.3OELEDQHLHHHLLLXLLQOHxXZ图574HC573的真值表由图5这个真值表可以看出:OE为高时,输出始终为高阻态,此时芯片处于不可控制状态,所以在一般应用中,将OE接低电平。LE则是输出端状态改变端,当LE为低电平时,输出端O始终保持上一次锁存的信号(从D端输入);当LE为高电平时,Q紧随D的状态变化而实时变化。即当锁存使能端LE为高时,74HC573的锁存对于数据是透明的(输出同步);当锁存使能端LE为低时,数据会被锁存。在本实验中74HC573的应用实现了PO的分时复用。在不同时刻,PO输出数码管的段选数据与位选数据。注意事项:PO口和P26,P27不能接任何设备,杜邦线等,否则影响实验效果。不能插上液晶,点阵等模块。四、实验内容及步骤4.1内容与要求1、利用keil4软件搭建好实验环境2、烧录程序后左边第一个数码管显示1。3
3 3.2 数码管静态显示 1) 静态显示时数码管的段需要一个 8 位 I/O 口控制。 2) 数码管的位:接“电源”或接“地” 3) 静态显示编程简单,但占用的 I/O 口线较多 4) 一般适用于显示位数较少的场合。 3.3 74HC573 数据锁存使用 图 5 74HC573 的真值表 由图 5 这个真值表可以看出:OE 为高时,输出始终为高阻态,此时芯片处 于不可控制状态,所以在一般应用中,将 OE 接低电平。 LE 则是输出端状态改变端,当 LE 为低电平时,输出端 Q 始终保持上一次 锁存的信号(从 D 端输入);当 LE 为高电平时,Q 紧随 D 的状态变化而实时 变化。即当锁存使能端 LE 为高时,74HC573 的锁存对于数据是透明的(输出同 步);当锁存使能端 LE 为低时,数据会被锁存。 在本实验中 74HC573 的应用实现了 P0 的分时复用。在不同时刻,P0 输出数 码管的段选数据与位选数据。 注意事项:P0 口和 P26,P27 不能接任何设备,杜邦线等,否则影响实验效果。 不能插上液晶,点阵等模块。 四、 实验内容及步骤 4.1 内容与要求 1、 利用 keil4 软件搭建好实验环境; 2、烧录程序后左边第一个数码管显示 1
五、实验参考程序#include<reg52.h>//51头文件#define ucharunsigned char /宏定义Ⅱ宏定义#define uint unsigned intsbit we=P2^7;/位定义数码管位选锁存器接口sbit du= P2^6;1/位定义数码管段选锁存器接口1/数码管段选表uchar code leddata[]=!0x3F,"0"1"1"0x06,1"2"0x5B,1"3"0x4F,1/"4"0x66,1/"5"0x6D,1"6"0x7D,1"7"0x07,1"8"0x7F,1/"9"0x6F,I"A"0x77,0x7C,II"B""C"0x39,I"D"0x5E,0x79,I"E"I"F"0x71,I"H"0x76,I"L"0x38,0x37,I/"n"0x3E,I"u"I/"P"0x73,/"0"0x5C,1""0x40,0x00,1/熄灭0x001/自定义3:void main()4
4 五、 实验参考程序 #include <reg52.h> //51 头文件 #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 sbit we = P2^7; //位定义数码管位选锁存器接口 sbit du = P2^6; //位定义数码管段选锁存器接口 //数码管段选表 uchar code leddata[]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 0x00 //自定义 }; void main()
du=1;1/打开段选PO=leddata[1]; 1/显示1du=0,I关闭段选we=1;//打开位选PO=Oxfe;//左边第一位数码管显示we=0/关闭位选while(1);//程序停留5
5 { du = 1; //打开段选 P0 = leddata[1]; //显示 1 du = 0; //关闭段选 we = 1;//打开位选 P0 = 0xfe;//左边第一位数码管显示 we = 0; //关闭位选 while(1);//程序停留 }