这段简单的代码,为什么有问题
时间:10-02
整理:3721RD
点击:
不做什么功能,就是测试,下面这段简单的代码,问题出在哪
- #include <STC12C5A60S2.H>
- void init();
- void delay(unsigned char i)
- {
- unsigned int k;
- while(i--)
- {
- for(k=2000;k>0;k--)
- {
- }
- }
- }
- void main()
- {
- P2=0Xff;
- delay(5);
- init();
- while(1)
- {
- }
- }
- void itint0() interrupt 1
- {
- TL0 = 0xCD; //设置定时初值
- TH0 = 0xD4; //设置定时初值
- P2=0x00;
- TR0 = 0;
- }
- void init() //1毫秒@11.0592MHz
- {
- AUXR |= 0x80; //定时器时钟1T模式
- TMOD &= 0xF0; //设置定时器模式
- TMOD |= 0x01; //设置定时器模式
- TL0 = 0xCD; //设置定时初值
- TH0 = 0xD4; //设置定时初值
- EA=1;
- TF0 = 0; //清除TF0标志
- TR0 = 1; //定时器0开始计时
- }
P2一直是高电平!
定时器初始化加上ET0 = 1;
看来真的是细节决定成败,居然把这么简单的开关给忘了