五、实验结果分析
实验初,对电路原理图没弄清楚,共阴级和共阳极不分,导致led灯不是按照预料的想法进行工作,经过多次实验,终于弄清楚问题所在,完成实验
实验二 数码管实验
一、设计题目
1、用一个数码管循环演示0-9
2、用数码管显示1,2,3,4,5,6,7
二、实验原理
数码管是一种半导体发光器件,是MCS-51单片机系统中用得非常多的一种输出通设 备,其基本单元是发光二级管。MCS-51单片机系统中最常使用的是8段数码管。 1、数码管显示原理
gfGNDabaabcdefgdp+5V abcdefgdp e dgfbcdp·
edGNDcdp(a)(b)图4-1 数码管内部原理图
共阳极数码管的8个发光二极管的阳极(正极)连接在一起接高电平(一般接电源),其它管脚接各段驱动电路输出端。当某段的输出端为低电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
共阴极数码管的8个发光二极管的阴极(负极)连接在一起接低电平(一般接地),其它管脚接各段驱动电路输出端。当某段的输出端为高电平时,则该段所连接的发光二极管导
通并点亮,根据发光字段的不同组合可显示出各种数字或字符。因此我们在显示数字的时候首先做的就是给“0-9”十个数字编码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。 2、数码管静态显示
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是,当显示多位数字时,将占用较多的I/O端口,硬件电路比较复杂,成本较高。
3、数码管动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。点亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
三.软件设计:
<1> //用一个数码管循环演示0-9 #include
unsigned char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
main() {
unsigned char i; unsigned int j; while(1) {
for(i=0;i<10;i++) //循环演示0-9 {
P2=tab[i];
for(j=0;j<50000;j++); //延时 } } }
<2> //用数码管显示1,2,3,4,5,6,7 // 数码管同时显示1-7
#include
unsigned char code wei[7]={0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; /*共阳0有效*/ unsigned char code duan[7]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; /*共阴1有效*/ main() {
unsigned char i; unsigned int j; while(1)
{for(i=0;i<7;i++) //循环演示1-7 {
P0=wei[i]; //位选 P2=