欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: HC6800單片機實現呼吸燈源代碼 [打印本頁]

作者: 豬腳    時間: 2019-1-18 21:29
標題: HC6800單片機實現呼吸燈源代碼
用定時器實現的呼吸燈(內有原理圖

單片機源程序如下:
  1. #include <reg51.h>
  2. #define ON 1
  3. #define OFF 0
  4. #define STANYBY 2
  5. sbit EN1 = P2^0;
  6. sbit EN2 = P1^5;
  7. sbit K2 = P3^0;
  8. sbit K3 = P3^2;
  9. int pwm_val_left;
  10. int push_led=1;
  11. int dir=STANYBY;
  12. unsigned int count=0;
  13. void KeyScan(void);
  14. void pwm_val_left_moto(void);
  15. //延時函數
  16. void delay_ms(unsigned int xms)
  17. {
  18.         unsigned int i,j;
  19.         for(i=xms;i>0;i--)
  20.                 for(j=112;j>0;j--);
  21. }

  22. void main()
  23. {
  24.         TMOD = 0x11;
  25.         EA = 1;
  26.         ET0 = 1;
  27.         ET1 = 1;
  28.         TH0 = 0xFC;
  29.         TL0 = 0x66;
  30.         TH1 = (65535-50000)/256;
  31.         TL1 = (65535-50000)%256;
  32.         TR0 = 1;
  33.         TR1 = 1;
  34.         while(1)
  35.         {
  36.                 if(K2==0)
  37.                 {
  38.                         dir=ON;
  39.                 }
  40.                 if(K3==0)
  41.                 {
  42.                         dir=OFF;
  43.                 }
  44.         }
  45. }
  46. void timer0()interrupt 1
  47. {
  48.         TH0 = 0xFC;
  49.         TL0 = 0x66;
  50.         pwm_val_left++;
  51.         pwm_val_left_moto();
  52. }
  53. void pwm_val_left_moto(void)
  54. {
  55.         if(dir==ON || dir == OFF)
  56.         {
  57.                 if(pwm_val_left<=push_led)
  58.                 {
  59.                         EN1 = 0;
  60.                 }
  61.                 else
  62.                 {
  63.                         EN1 = 1;
  64.                 }
  65.                 if(pwm_val_left>=25)
  66.                         pwm_val_left=0;
  67.         }
  68. }
  69. void timer1()interrupt 3
  70. {
  71.         TH1 = (65535-50000)/256;
  72.         TL1 = (65535-50000)%256;
  73.         count++;
  74.         if(count%6)
  75.         {
  76.                 if(dir == ON)
  77.                 {
  78.                         if(push_led<25)
  79.                                 push_led++;
  80.                 }
  81.                 else
  82.                 {
  83.                         if(push_led>0)
  84.                                 push_led--;       
  85.                 }
  86.         }

  87.        
  88. }
復制代碼

所有資料51hei提供下載:
呼吸燈.zip (263.45 KB, 下載次數: 7)







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1