solidworks工程文件分享:
單片機源程序如下:
- //////////////////////////////智成工作室出品////////////////////////////////
- #include <STC12C5A60S2.H>
- #include "intrins.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define XIAO 65186 //這里定義定時器的
- #define DA XIAO-2000 //兩個極限值的
- uint jd=1000; //轉到的角度可以從100到2000,100以下電機就轉不到位置了,有燒電機的風險。
- uchar jishu=0; //計數
- sbit duoji = P1^2; //接舵機的
- void Timer0Init(void)
- {
- uchar j=0;
- AUXR &= 0x7F; //定時器時鐘12T模式
- TMOD &= 0xF0; //設置定時器模式
- TMOD |= 0x01; //設置定時器模式
- j=XIAO-jd;
- TL0 = j; //設置定時初值
- TH0 = j>>8; //設置定時初值
- TF0 = 0; //清除TF0標志
- TR0 = 1; //定時器0開始計時
- ET0 = 1;
- }
- void Timer0Interrupt(void) interrupt 1
- {
- uint j=0;
- j=XIAO-jd;//高電平的時間
- if(duoji==0) //低電平的時候就把他設成高,且把定時器初值設成高電平的時間
- {
- TL0 = j; //設置定時初值
- TH0 = j>>8; //設置定時初值
- duoji=1;
- }else
- { //高電平的時候就把他設成低,且把定時器初值設成低電平的時間
- j=65536-j; //低電平的時間
- TL0 = j; //設置定時初值
- TH0 = j>>8; //設置定時初值
- duoji=0;
- }
- }
- void Delay100ms() //@11.0592MHz
- {
- unsigned char i, j, k;
- i = 5;
- j = 52;
- k = 195;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void Delay500ms()
- {
- uchar i=0;
- for(i=0;i<5;i++)
- {
- Delay100ms();
- }
- }
- void Delay2s()
- {
- uchar i=0;
- for(i=0;i<20;i++)
- {
- Delay100ms();
- }
- }
- void main(void)
- {
- while(1)
- {
- jd=100; //在主程序中只要改變這個變量就可以控制舵機轉到指定位置
- Delay2s(); //程序中盡量不要用延時,我這是為了演示
- jd=1900;
- Delay2s(); //程序中盡量不要用延時,我這是為了演示
- }
-
- }
復制代碼
所有資料51hei提供下載:
機械手快換機構模塊設計.zip
(6.57 MB, 下載次數: 12)
2018-6-5 13:28 上傳
點擊文件名下載附件
|