微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 程序细节注意,来讨论下

程序细节注意,来讨论下

时间:10-02 整理:3721RD 点击:

  1. #include<reg52.h>

  2. #define uint unsigned int
  3. uint aa;
  4. unsigned char pp;
  5. bit close;

  6. sbit didi=P2^3;


  7. void main()
  8. {
  9.         TMOD=0x01;                 //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。
  10.         TR0=1;                         //打开定时器
  11.         TH0=0xff;//计时器每隔100微秒(0.1ms)发起一次中断。
  12.         TL0=0x9c;//产生频率为1000HZ的声音信号。
  13.         ET0=1;                         //开定时器0中断
  14.         EA=1;                         //开总中断
  15.         while(1)
  16.         {
  17.                 if(pp==10)
  18.                 {
  19.                         pp=0;
  20.                         if(!close)
  21.                                 didi=~didi;         //频率为1KH的音频信号
  22.                         aa++;
  23.                 }        
  24.                 if(aa==200)
  25.                 {
  26.                         didi=1;
  27.                         close=1;                 //方波音频信号持续时间为200*10*100us=0.2s
  28.                 }
  29.                 if(aa==300)                         //滴滴声的周期为300*10*100us=0.3s
  30.                 {
  31.                         close=0;
  32.                         aa=0;
  33.                 }
  34.         }
  35. }

  36. void time0() interrupt 1
  37. {        TH0=0xff;
  38.         TL0=0x9c;
  39.         pp++;
  40. }

复制代码


这个close的定义为什么用bit?我用uint 定义后运行无错误啊

虽能运行,但有本质的区别

这个运行是没有错误的,用unsigned int 型不会出现错误,bit代表位,unsigned int 存储为2个字节,1Byte=8bit

bit就用一位就行了,uint要16位才行啊,多浪费资源呀

要是变量多了都用uint就有可能不够了

谢谢,懂了

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

网站地图

Top