如何用led幻彩数码管呈现图像

日期:2022-09-21 11:52:33 人气:26

如何用led幻彩数码管呈现图像
如何用led幻彩数码管呈现图像
这个回答起来很麻烦,其实就是用控制器来带动,LED数码管(也叫护栏管)需要外控的,价格不是很高,20多块钱吧,外控护栏管根据控制器输出的信号,由内置的IC集成电路进行分析,再经过各输出脚控制每个像素点的不同发光来...
如何用led幻彩数码管呈现图像
    A+
热门评论

led数码管显示程序

#include"
at89x51.h"
#define uchar unsigned char #define uint unsigned int /
************************* 全局变量定义部分 **************************/
/
/
硬件设计接口不同,要修改下一行 uchar code acLEDCS[]={0x7f,0xbf,0xdf,0xed};
/
* 位选地址码,“0”有效,位选接的是P2口高4位 */
uchar code acLedSegCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};
/
* 段码 */
uchar acLED[4];
/
* 显示缓冲区 */
char cScanIndex;
/
* 位选指针0~3 */
uint t=0;
/
************************* 数码管显示函数 ***************************/
void Display(void) { /
/
添加要显示的数据(变量) acLED[3]=acLedSegCode[t/
1000];
/
* LED显示第1位 */
acLED[2]=acLedSegCode[t%1000/
100];
/
* LED显示第2位 */
acLED[1]=acLedSegCode[t%100/
10];
/
* LED显示第3位 */
acLED[0]=acLedSegCode[t%10];
/
* LED显示第4位 */
} /
************************** 主函数 *****************************/
void main(void) { /
**************** 定时器初始化 *******************/
TMOD= 0x02;
/
* 定义定时器0工作于方式2(8位自动重装) */
TH0 = -200;
/
* 8位自动重装定时器约每100uS中断1次,9216次为1秒 */
TL0 = -200;
TR0 = 1;
ET0 = 1;
EA = 1;
/
* 开总中断 */
while(1) { Display();
} } void IntT0(void) interrupt 1 /
* 定时器0中断,完成1秒定时和LED延时 */
{ t++;
if(t==10000) t=0;
P0 = 0;
/
* 先清显示再换位选 */
P2 = acLEDCS[cScanIndex];
/
* 送位选数据 */
P0 = acLED[cScanIndex++];
/
* 送显示数据,位选指针移位 */
cScanIndex &= 3;
/
* 位选指针回位 */
}

如何用led幻彩数码管呈现图像
阅读全文