微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 这段简单的代码,为什么有问题

这段简单的代码,为什么有问题

时间:10-02 整理:3721RD 点击:
不做什么功能,就是测试,下面这段简单的代码,问题出在哪

  1. #include <STC12C5A60S2.H>

  2. void init();

  3. void delay(unsigned char i)
  4. {
  5.         unsigned int k;
  6.         while(i--)
  7.         {
  8.                 for(k=2000;k>0;k--)
  9.                 {
  10.                 }
  11.         }
  12. }
  13. void main()
  14. {
  15.         P2=0Xff;
  16.         delay(5);
  17.         init();
  18.         while(1)
  19.         {
  20.         }
  21. }

  22. void itint0()        interrupt 1
  23. {
  24.         TL0 = 0xCD;                //设置定时初值
  25.         TH0 = 0xD4;                //设置定时初值
  26.         P2=0x00;
  27.         TR0 = 0;
  28. }
  29. void init()                //1毫秒@11.0592MHz
  30. {
  31.         AUXR |= 0x80;                //定时器时钟1T模式
  32.         TMOD &= 0xF0;                //设置定时器模式
  33.         TMOD |= 0x01;                //设置定时器模式
  34.         TL0 = 0xCD;                //设置定时初值
  35.         TH0 = 0xD4;                //设置定时初值
  36.         EA=1;
  37.         TF0 = 0;                //清除TF0标志
  38.         TR0 = 1;                //定时器0开始计时

  39. }

复制代码

P2一直是高电平!

定时器初始化加上ET0 = 1;

看来真的是细节决定成败,居然把这么简单的开关给忘了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top