找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1922|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

分享舵機(jī)扇形擺動(dòng)的單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:355521 發(fā)表于 2018-6-20 21:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include "delay.h"

  3. sbit OUT = P0^0;

  4. unsigned char TH_H,TL_H,TH_L,TL_L;//

  5. /*------------------------------------------------
  6.                     定時(shí)器初始化子程序
  7. ------------------------------------------------*/
  8. void Init_Timer0(void)
  9. {
  10. TMOD |= 0x01;          //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響        TOMD = TOMD | 0X01            
  11. TH0=0x00;              //給定初值,這里使用定時(shí)器最大值從0開始計(jì)數(shù)一直到65535溢出
  12. TL0=0x00;
  13. EA=1;            //總中斷打開
  14. ET0=1;           //定時(shí)器中斷打開
  15. TR0=1;           //定時(shí)器開關(guān)打開
  16. }
  17. /*------------------------------------------------
  18.                  數(shù)據(jù)處理
  19. ------------------------------------------------*/
  20. void DataPro(unsigned int temp)
  21. {
  22.           TH_H=(65536-temp)/256;
  23.      TL_H=(65536-temp)%256;
  24.          TH_L=(46536+temp)/256;
  25.          TL_L=(46536+temp)%256;
  26. }
  27. /*------------------------------------------------
  28.                  主程序
  29. ------------------------------------------------*/
  30. main()
  31. {
  32.   unsigned int  temp=1500;
  33.   bit flag=0;
  34.   Init_Timer0();
  35.   DataPro(temp);

  36.   while(1)
  37.      {
  38.      while(!flag){
  39.          if(temp<2300)
  40.         temp+=10;
  41.      else
  42.           flag=1;
  43.          DelayMs(3);
  44.          DataPro(temp);
  45.                   }
  46.          while(flag)
  47.            {
  48.      if(temp>700)
  49.         temp-=10;
  50.      else
  51.         flag=0;
  52.          DelayMs(3);
  53.          DataPro(temp);
  54.                 }

  55.          }
  56. }

  57. /*------------------------------------------------
  58.                  定時(shí)器中斷子程序
  59. ------------------------------------------------*/
  60. void Timer0_isr(void) interrupt 1
  61. {
  62. if(OUT)
  63. {
  64. TH0=TH_L;                  //重新賦值
  65. TL0=TL_L;
  66. }
  67. else
  68. {
  69.   TH0=TH_H;                  //重新賦值
  70.   TL0=TL_H;
  71.   }
  72. OUT=!OUT;
  73. }


復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表