久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 單片機(jī)PWM調(diào)速程序+Proteus仿真 [打印本頁]

作者: 1216864428    時(shí)間: 2020-4-11 14:15
標(biāo)題: 單片機(jī)PWM調(diào)速程序+Proteus仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <REG52.H>
  2. #include <STDIO.H>
  3. #include <LM1602.H>
  4. #include <BUTTON.H>
  5. #include <DS18B20.H>
  6. #include <Interface.H>

  7. #define FOSC 11059200L      //System frequency
  8. #define BAUD 9600               //UART baudrate

  9. sbit PWM = P3^5;

  10. extern unsigned int frequency = 0;                                        // 頻率
  11. extern unsigned char Interface = 1;                                        // 正在處于的界面
  12. extern unsigned char Menu_option = 1;                                // 菜單選項(xiàng)
  13. extern unsigned char hour = 8, min = 0, sec = 0;        // 時(shí)間變量
  14. extern bit update_time_state = 0;                                        // 更新時(shí)間標(biāo)志
  15. extern bit update_temp_state = 0;                                        // 更新溫度標(biāo)志
  16. extern unsigned int PWM_val;                                                // PWM的設(shè)置等級
  17. extern unsigned int time_count = 0;                                        // 時(shí)鐘計(jì)時(shí)
  18. void Initial();                        // 系統(tǒng)初始化
  19. void Timer_Init();                // 中斷初始化
  20. void Count_second();        // 秒計(jì)更新計(jì)時(shí)
  21. void Count_temp();                // 溫度更新計(jì)時(shí)
  22. void PWM_control();                // PWM控制

  23. void Main()
  24. {
  25.         Initial();
  26.         while(1)
  27.         {
  28.                 KeyProc();
  29.                 Update_data();
  30.         }
  31. }

  32. void Timer1()interrupt 3
  33. {
  34.         TL1 = 0x00;                //設(shè)置定時(shí)初值
  35.         TH1 = 0xDC;                //設(shè)置定時(shí)初值
  36.         Count_second();
  37.         Count_temp();
  38.         PWM_control();
  39. }

  40. void Uart()interrupt 4
  41. {
  42.         if(RI)                                                         /*        RI:串口接收中斷申請標(biāo)志位  */
  43.         {
  44.                 RI=0;                                                //必須重新對RI清
  45.         }
  46. }

  47. void Count_second()
  48. {
  49.         if(++time_count == 100)
  50.         {
  51.                 time_count = 0;
  52.                 update_time_state = 1 ;
  53.                 frequency = TH0<<8 | TL0;
  54.                 TH0 = TL0 = 0;
  55.                 if(++sec == 60)
  56.                 {
  57.                         sec = 0;
  58.                         if(++min == 60)
  59.                         {
  60.                                 min = 0;
  61.                                 if(++hour == 24)
  62.                                 {
  63.                                         hour = 0;
  64.                                 }
  65.                         }
  66.                 }
  67.         }
  68. }

  69. void PWM_control()
  70. {
  71.         static bit w;
  72.         static unsigned char count;
  73.         if(PWM_val == 0)
  74.         {
  75.                 PWM = 0;
  76.         }
  77.         else if(PWM_val == 15)
  78.         {
  79.                 PWM = 1;
  80.         }
  81.         else
  82.         {
  83.                 if(w == 0)
  84.                 {
  85.                         if(++count == PWM_val)
  86.                         {
  87.                                 count = 0;
  88.                                 PWM = 0;
  89.                                 w = 1;
  90.                         }
  91.                 }
  92.                 else
  93.                 {
  94.                         if(++count == (15 - PWM_val))
  95.                         {
  96.                                 count = 0;
  97.                                 PWM = 1;
  98.                                 w = 0;
  99.                         }
  100.                 }
  101.         }
  102. }

  103. void Count_temp()
  104. {
  105.         static unsigned int temp_count;
  106.         if(++temp_count == 20)
  107.         {
  108.                 temp_count = 0;
  109.                 update_temp_state = 1;
  110.         }
  111. }

  112. void Timer_Init()
  113. {
  114.         SCON=0x50;
  115.         T2CON=0x34;
  116.         TH2=RCAP2H=(65536-(FOSC/32/BAUD)) >> 8;
  117.         TL2=RCAP2L=(65536-(FOSC/32/BAUD));
  118.         ES=1;
  119.         ET1 = 1;
  120.         TMOD = 0x15;
  121.         TL1 = 0x00;                //設(shè)置定時(shí)初值
  122.         TH1 = 0xDC;                //設(shè)置定時(shí)初值
  123.         TR1 = 1;
  124.         TR0 = 1;
  125.         TF0 = 0;        
  126.         EA = 1;
  127. }

  128. void Initial()
  129. {
  130.         DS18B20();
  131.         Init_1602();
  132.         display_1602(0,0,"*Function Board*");
  133.         display_1602(1,1,"Welcome to use");
  134.         Timer_Init();
  135.         while((P2&0x1e) == 0x1e);
  136.         while((P2&0x1e) != 0x1e);
  137.         Init_1602();
  138.         display_1602(0,0,"Function Menu:  ");
  139.         Updata_Menu(Menu_option);
  140.         Timer_Init();
  141. }
復(fù)制代碼
全部資料51hei下載地址:
電子工程實(shí)訓(xùn).zip (157.25 KB, 下載次數(shù): 57)


作者: aqiang123    時(shí)間: 2020-4-16 15:45
好的 十分感謝




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91成人在线观看喷潮蘑菇 | www久久久久| 欧洲色综合| 免费在线观看毛片 | 国产偷自拍 | 精品一区二区国产 | 久久久三级 | 成人手机在线视频 | 爱福利视频网 | 女人一级一片30分 | 欧美成人精品欧美一级乱黄 | 欧美一级做性受免费大片免费 | 日韩国产在线播放 | 黄色片播放 | 性大毛片视频 | 日韩三级精品 | 成人激情综合网 | 三级黄色| 69av在线| 国产精品免费在线 | 特黄aaaaaaaaa真人毛片 | 一本到av| 免费在线黄色网址 | 久久精品日韩 | 欧美www| 日韩毛片在线 | 免费网站观看www在线观看 | 精品国产乱码久久久久久蜜臀网站 | 一级毛片黄色 | 国产精品免费一区 | 精品久久免费视频 | 三上悠亚激情av一区二区三区 | 成人免费毛片片v | 久久狠狠干 | 国产精品一区二区不卡 | 日韩在线视频免费 | 91久久综合亚洲鲁鲁五月天 | 欧美亚洲国产精品 | 欧美综合久久 | 一级中国毛片 | 国产精品久久久久久久久久久久午夜片 |