编写c51:用定时器0通过p1口引脚控制8个发光二极管,按200ms的间隔循环顺序点亮(输出低电平
编写c51:用定时器0通过p1口引脚控制8个发光二极管,按200ms的间隔循环顺序点亮(输出低电平点亮),设晶振频率为12mhz...
编写c51:用定时器0通过p1口引脚控制8个发光二极管,按200ms的间隔循环顺序点亮(输出低电平点亮),设晶振频率为12mhz
展开
1个回答
展开全部
咱今天就做回好人,帮你写一个,这个程序很简单的如下:
#include "REG52.H"
unsigned char Time_Data;
unsigned char MAXD_Data;
const unsigned char code TABLE_BUF[]=
{
0xFE,
0xFD,
0xFB,
0xF7,
0xEF,
0xDF,
0xBF,
0x7F
};
int main(void)
{
// 初始化IO
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
//配置TO定时器
TMOD = 0x01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
while(1) ;
}
void Timer0_IRQ(void) interrupt 1
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
Time_Data++;
if(Time_Data == 4)
{
Time_Data = 0;
P1 = TABLE_BUF[MAXD_Data];
MAXD_Data++;
if(MAXD_Data == 8)
{
MAXD_Data = 0;
}
}
}
#include "REG52.H"
unsigned char Time_Data;
unsigned char MAXD_Data;
const unsigned char code TABLE_BUF[]=
{
0xFE,
0xFD,
0xFB,
0xF7,
0xEF,
0xDF,
0xBF,
0x7F
};
int main(void)
{
// 初始化IO
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
//配置TO定时器
TMOD = 0x01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
while(1) ;
}
void Timer0_IRQ(void) interrupt 1
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
Time_Data++;
if(Time_Data == 4)
{
Time_Data = 0;
P1 = TABLE_BUF[MAXD_Data];
MAXD_Data++;
if(MAXD_Data == 8)
{
MAXD_Data = 0;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询