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

標題: 單片機智能充電器程序 [打印本頁]

作者: 楚門的世界    時間: 2019-6-27 14:24
標題: 單片機智能充電器程序
智能充電器的源程序
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit GATE = P2^0;
  5. sbit BP = P2^1;

  6. uint t_count,int0_count;
  7. /* 定時器0中斷服務子程序 */
  8. void timer0() interrupt 1 using 1
  9. {
  10.         TR0 = 0;                                // 停止計數

  11.         TH0 = -5000/256;                // 重設計數初值
  12.         TL0 = -5000%256;

  13.         t_count++;       

  14.         if (t_count>600)                // 第一次外部中斷0產生后3s
  15.         {
  16.                 if (int0_count==1)        // 還沒有出現第二次外部中斷0,則認為充電完畢
  17.                 {
  18.                         GATE = 0;                // 關閉充電電源
  19.                         BP = 0;                        // 打開蜂鳴器報警
  20.                 }
  21.             else                                // 否則即是充電出錯
  22.                 {
  23.                         GATE = 1;       
  24.                         BP = 1;               
  25.                 }
  26.        
  27.                 ET0 = 0;                        // 關閉T0中斷
  28.                 EX0 = 0;                         // 關閉外部中斷0

  29.                 int0_count = 0;
  30.                 t_count = 0;
  31.         }
  32.         else
  33.                 TR0 = 1;                        // 啟動T0計數
  34. }

  35. /* 外部中斷0服務子程序 */
  36. void int0() interrupt 0 using 1
  37. {
  38.         if (int0_count==0)
  39.         {
  40.                 TH0 = -5000/256;        // 5ms定時
  41.                 TL0 = -5000%256;       
  42.                 TR0 = 1;                        // 啟動定時/計數器0計數
  43.                 t_count = 0;                // 產生定時器0中斷的計數器清零
  44.         }
  45.         int0_count++;
  46. }

  47. /* 初始化 */
  48. void init()
  49. {
  50.         EA = 1;                                // 打開CPU中斷

  51.         PT0 = 1;                        // T0中斷設為高優先級
  52.         TMOD = 0x01;                // 模式1,T0為16位定時/計數器
  53.         ET0 = 1;                        // 打開T0中斷

  54.         IT0 = 1;                        // 外部中斷0設為邊沿觸發
  55.         EX0 = 1;                        // 打開外部中斷0       
  56.        
  57.         GATE = 1;                    // 光耦正常輸出電壓
  58.         BP = 1;                                // 關閉蜂鳴器

  59.         int0_count = 0;                // 產生外部中斷0的計數器清零
  60. }

  61. void main()
  62. {
  63.         /* 調用初始化函數 */
  64.         init();
  65.        
  66.         /* 無限循環 */
  67.         while(1);
  68. }
復制代碼



作者: admin    時間: 2019-6-27 19:32
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




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