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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2305|回復(fù): 0
收起左側(cè)

基于STC12單片機(jī)的16路舵機(jī)控制源程序

[復(fù)制鏈接]
ID:635836 發(fā)表于 2019-11-5 10:53 | 顯示全部樓層 |閱讀模式
基本思路為pca用于產(chǎn)生50hz脈沖,兩個(gè)定時(shí)器分別控制8個(gè)舵機(jī)

單片機(jī)源程序如下:
  1. #include"STC12C5A60S2.h" //@12Mhz
  2. #include<intrins.h>
  3. typedef unsigned int u16;          //對數(shù)據(jù)類型進(jìn)行聲明定義
  4. typedef unsigned char u8;

  5. u16 time;//PCA counts 20ms
  6. u8 pwm_turn[2]={0,0};
  7. u8 data1[8]={1500,1500,1500,1500,1500,1500,1500,1500};
  8. u8 data2[8]={1500,1500,1500,1500,1500,1500,1500,1500};

  9. void sys_init()
  10. {
  11.         P0M0=0xff;
  12.         P2M0=0xff;
  13.        
  14.         time=20000;
  15.         CCON=0;
  16.         CL=0;
  17.         CH=0;
  18.         CMOD=0x00;
  19.         CCAP0L=time;
  20.         CCAP0H=time>>8;
  21.         CCAPM0=0x49;
  22.         CR=1;
  23.        
  24.         TMOD|=0X11;
  25.         TH0=0XFE;
  26.         TL0=0X0C;
  27.         TH1=0XFC;
  28.         TL1=0X18;       
  29.         ET0=1;//打開定時(shí)器0中斷允許       
  30.         ET1=1;//打開定時(shí)器1中斷允許
  31.        
  32.         EA=1;
  33. }

  34. void main()
  35. {
  36.         int j,k;
  37.         for(j=0;j<100;j++)
  38.         for(k=0;k<100;k++);
  39.         sys_init();
  40.         while(1);
  41. }
  42. void Timer0() interrupt 1
  43. {       
  44.         if(pwm_turn[0]>8)
  45.         {
  46.                 pwm_turn[0]=0;
  47.                 TR0=0;
  48.                 P0=0;
  49.         }
  50.         else
  51.         {
  52.                 pwm_turn[0]++;
  53.                 P0<<=1;
  54.         }
  55.         TH0=(65536-data1[pwm_turn[0]])>>8;
  56.         TL0=(65536-data1[pwm_turn[0]])%256;
  57. }
  58. void Timer1() interrupt 3
  59. {
  60.         if(pwm_turn[1]>8)
  61.         {
  62.                 pwm_turn[1]=0;
  63.                 TR1=0;
  64.                 P2=0;
  65.         }
  66.         else
  67.         {
  68.                 pwm_turn[1]++;
  69.                 P2<<=1;
  70.         }
  71.         TH1=(65536-data2[pwm_turn[1]])>>8;
  72.         TL1=(65536-data2[pwm_turn[1]])%256;
  73. }
  74. void PCA() interrupt 7
  75. {
  76.         CCF0=0;
  77.         TR0=1;//打開定時(shí)器
  78.         TR1=1;//打開定時(shí)器
  79.         P0=0x01;
  80.         P2=0x01;
  81.         time+=20000;
  82.         CCAP0L=time;
  83.         CCAP0H=time>>8;       
  84. }
復(fù)制代碼

所有資料51hei提供下載:
Text1.rar (673 Bytes, 下載次數(shù): 15)


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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