单片机系统常用的显示器有:发光二极管LED显示器、液晶LCD显示器、TFT液晶显示器等等。LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5x8、8x8点阵等)。
LED数码管根据LED的不同接法可以分为2类:共阴和共阳。
使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。我们实验板用共阴LED
显示器根据电路连接图显示16进制数的编码如下图:
静态显示原理:LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于检测可控制。缺点是硬件电路比较复杂,成本较高。
其中321是控制74HC573锁存功能。
静态数码管显示数字0的代码如下:
#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; sbit LSA P2^2; sbit LSB P2^3; sbit LSC P2^4; u8 code smgduan[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; void main() { LSA=0; LSB=0; LSC=0; P0=smgduan[0]; while(1); }
code的作用:code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改。程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的。code区也可以放在rom里面,也可以放在ram里面,data只能放在ram中。