查看: 2059|回复: 0

ARM实现的LED显示器接口

[复制链接]

该用户从未签到

发表于 2011-5-11 16:20:29 | 显示全部楼层 |阅读模式
分享到:
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;

}
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|与非网

GMT+8, 2025-1-9 10:42 , Processed in 0.118660 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.