LED 概述
LED:七段发光二极管, 在专用的微型计算机系统中,特别是在嵌入式控制系统中, 应用非常普遍。它价格低廉、体积小、功耗低,可靠性好。
两种结构:共阳极和共阴极。
LED译码
在多个LED显示电路中,通常把阴(阳)极控制端接至一输出端口,我们称它为位控端口;
把数据显示段接至一个输出端口,我们称这个端口为段控端口。段控端口处应输出十六进制数的7段代码。
两种译码方法:
(1)采用专用芯片,可以实现对BCD码的译码,但不能对大于9的二进制数译码。
(2)软件译码法。在软件设计时,将0到F共16个数字(也可以为0到9)对应的显示代码组成一个表。
LED段码表
用ARM芯片实现LED显示接口1
1.接口电路
用ARM芯片实现LED显示接口2
2.初始化设置
(1)设置PCONF、PCONG寄存器
由于需要设定端口F、G为输出口,因此,在端口工作之前设置:
rPCONF= 001 001 001 01 01 01 01 01 B=0x12555;
rPCONG= 01 01 01 01 01 01 01 01 B=0x5555;
(2)设置PUPF、PUPG寄存器
设置内部上拉电阻的语句为:
rPUPF=0x00; //使能PF0-7的内部上拉电阻
rPUPG=0x00; //使能PG0-7的内部上拉电阻
用ARM芯片实现LED显示接口3
3 .LED显示流程图
10
用ARM芯片实现LED显示接口4
4 .LED显示代码
在内存中开辟一个数组dis_8_num[],用来存放将要在8个LED数码管上显示的字符。
缓冲区第1个数据送最左边的LED,下一个数据送左边的第2个LED,依次进行直到最后一个数据送最右边的LED;led_dis[]数组内放置0~f对应的7段段码表,LED为共阳极结构。
#include
#include
void DisplayLedl(unsigned char dis_8_num[])
{
unsigned char led_dis[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x8C}; //0~F及小数位段码表unsigned char i, j, D_val , B_val ;
用ARM芯片实现LED显示接口5
} rPCONF= 0x12555;
rPCONG=0x5555;
rPUPF=0x00; //使能PF0~PF7的内部上拉电阻
rPUPG=0x00; //使能PG0~PG7的内部上拉电阻
B_val = 0x80;
for(i=0;i 1;
} |