利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为1

利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。
用定时器方式1写,谢谢

第1个回答  2012-08-05
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
uchar T_Count = 0;
void main()
{
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
IE = 0x82;
TR0 = 1;
while(1);
}
void LED_Flash() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
if(++T_Count == 10)
{
LED = !LED;
T_Count = 0;
}
}追问

#define uint unsigned int

为啥要加这个宏定义没用到uint吧

printf()格式命令的一般形式为:%+/-0m.nl
m最小宽度 指的是什么啊?+/-和0呢?请写下运行结果
main()
{
char c='a';
char str[]="see you";
int i=123;
printf("1: %c,%s,%d\n",c,str,i);
printf("2: %4c,%10s,%6d\n",c,str,i );
printf("3: %-4c,%-10s,%-6d\n",c,str,i);
printf("4: %0c,%6s,%3d\n",c,str,i);
}

追答

习惯写法,这里确实没用到。

追问

大神,请问 if(++T_Count == 10)
{
LED = !LED;
T_Count = 0;
} 这个发光二极管是以2HZ闪烁也不是1HZ啊?

追答

我理解的是1秒一个周期(闪一次),这不是1HZ吗?

本回答被提问者和网友采纳
第2个回答  2012-08-05
代码应该是自己去写了。
就是抄,网上都有例程,你也要学会怎么炒