led数码管显示程序
麻烦用C语言写出具体程序是基于MSP430单片机的。不好意思,因为是帮别人问的,楼下的那个是符合上述条件的吗?...
麻烦用C语言写出具体程序
是基于MSP430单片机的。
不好意思,因为是帮别人问的,楼下的那个是符合上述条件的吗? 展开
是基于MSP430单片机的。
不好意思,因为是帮别人问的,楼下的那个是符合上述条件的吗? 展开
展开全部
#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; /* 位选指针回位 */
}
#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; /* 位选指针回位 */
}
奥蕾达
2024-11-14 广告
2024-11-14 广告
如果说原理的话,液晶是起到一个开关的作用。好比水龙头控制水量,液晶控制着光的通过量。 1 A:透明的不是液晶,而是整个显示系统。液晶显示器中的液晶显示系统在未浮花第拘郢饺电邪钉矛通电时是透明的(而且是Normaly White模式的)。 2...
点击进入详情页
本回答由奥蕾达提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询