資源簡介
PROTEUS仿真
20路PWM控制舵機
VB上位機串口控制
學習機器人,工業控制的朋友可不要錯過

代碼片段和文件信息
/******************************************
創建時間?2005-5-13
芯片型號?:?M8
采用內部RC:?8.0000Mhz
******************************************/
#include?
#include?
#include?“me.h“?????????????????????//自定義的通用io簡化位操作
void?timer0_init(void);
void?port_init(void);
void?init(void);
void?UART_init(void);????????????????//串口初始化程序
void?UART_rx(void);??????????????????//串口接收中斷函數
void?send_text(unsigned?char?*s);????//字符串發送函數
void?sendchar(unsigned?char?c);??????//字符發送函數
void?dog_init(void);?????????????????//初始化看門狗
unsigned?char?RX_data[4]={0};????????//串口接收的數據
unsigned?char?RX_counter=0;??????????//串口接收到的字節數計數器
unsigned?char?pwm1pwm2pwm3pwm4pwm5pwm6pwm7pwm8pwm9pwm10pwm11pwm12pwm13pwm14pwm15pwm16pwm17pwm18pwm19pwm20;?//分別為20個pwm的值
unsigned?char?count;?????????????????//pwm定位變量
void?main(void)
{
//OSCCAL=0xAA;?????????????????????????//系統時鐘校準,不同的芯片和不同的頻率
init();
???while(1)
???{
????WDR();???????????????????????????//拼命喂狗
???????if(RX_counter==4)? ?//收到一個完整的命令信息
???{
???????RX_counter=0;? ?//清除串口接收到的字節數計數器
????? if((RX_data[0]==‘S‘)&&(RX_data[3]==‘E‘))//判斷頭尾是不是符合?
????{??
???
???CLI();?? ?//關閉中斷,開始判斷數據
???switch(RX_data[1])
???{
??????case?0x01:
??pwm1=RX_data[2];
??break;
??case?0x02:
??pwm2=RX_data[2];
??break;
??case?0x03:
??pwm3=RX_data[2];
??break;
??case?0x04:
??pwm4=RX_data[2];
??break;
??case?0x05:
??pwm5=RX_data[2];
??break;
??case?0x06:
??pwm6=RX_data[2];
??break;
??case?0x07:
??pwm7=RX_data[2];
??break;
??case?0x08:
??pwm8=RX_data[2];
??break;
??case?0x09:
??pwm9=RX_data[2]; ??
??break;
??case?0x0a:
??pwm10=RX_data[2];
??break;
??case?0x0b:
??pwm11=RX_data[2];
??break;
??case?0x0c:
??pwm12=RX_data[2];
??break;
??case?0x0d:
??pwm13=RX_data[2];
??break;
??case?0x0e:
??pwm14=RX_data[2];
??break;
??case?0x0f:
??pwm15=RX_data[2];
??break;
??case?0x10:
??pwm16=RX_data[2];
??break;
??case?0x11:
??pwm17=RX_data[2];
??break;
??case?0x12:
??pwm18=RX_data[2];
??break;
??case?0x13:
??pwm19=RX_data[2];
??break;
??case?0x14:
??pwm20=RX_data[2];
??break;
??default:
??SEI();?? ???????//錯誤時打開中斷,以便發送錯誤信息
??send_text(“ER“);? ???//范圍超出20個pwm,就發出大寫字母“ER“
??break;
???}???
???SEI();?????? ???//恢復中斷允許
???send_text(“OK“);? ???//判斷處理完畢返回ok;
}
???}
???}
}
void?init(void)
{
?CLI();?//disable?all?interrupts
?port_init();
?timer0_init();
?TIMSK?=?0x01;?//定時器中斷源
?UART_init();?
?SEI();?//re-enable?interrupts
}
void?port_init(void)
{
?PORTB?=?0x00;
?DDRB??=?0xFF;
?PORTC?=?0x00;?
?DDRC??=?0x7F;
?PORTD?=?0x00;
?DDRD??=?0xFF;
}
void?send_char(unsigned?char?c)??????//發送單字符函數
??{
?????while?(!(UCSRA&(1?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5506??2007-04-09?01:24??舵機\code\A.cof
?????文件???????5274??2007-04-09?01:24??舵機\code\A.dbg
?????文件???????2843??2007-04-09?01:24??舵機\code\A.hex
?????文件?????????11??2007-04-09?01:24??舵機\code\A.lk
?????文件??????23141??2007-04-09?01:24??舵機\code\A.lst
?????文件????????499??2007-04-09?01:24??舵機\code\A.mak
?????文件???????3199??2007-04-09?01:24??舵機\code\A.mp
?????文件???????1264??2007-04-09?01:24??舵機\code\a.prj
?????文件?????????49??2007-04-09?01:26??舵機\code\A.SRC
?????文件???????7016??2005-05-13?23:59??舵機\code\BACKUP\m8_pwm.c.050513235956
?????文件???????7037??2007-04-09?00:49??舵機\code\BACKUP\m8_pwm.c.070409004916
?????文件???????7037??2007-04-09?00:50??舵機\code\BACKUP\m8_pwm.c.070409005054
?????文件???????7057??2007-04-09?00:53??舵機\code\BACKUP\m8_pwm.c.070409005314
?????文件???????7059??2007-04-09?01:06??舵機\code\BACKUP\m8_pwm._c
?????文件???????1751??2007-04-09?10:36??舵機\code\DC.PWI
?????文件??????86943??2007-04-09?01:15??舵機\code\Last?Loaded?DC.DBK
?????文件???????7020??2007-04-09?01:08??舵機\code\m8_pwm.c
?????文件????????167??2007-04-08?22:42??舵機\code\m8_pwm.c_cbf
?????文件??????50690??2007-04-09?01:24??舵機\code\m8_pwm.lis
?????文件??????13219??2007-04-09?01:24??舵機\code\m8_pwm.o
?????文件???????4059??2005-04-22?01:15??舵機\code\me.h
?????文件??????16364??2011-04-08?17:37??舵機\schemetic.pdf
?????文件??????15044??2011-04-08?17:38??舵機\上位機.rar
?????文件?????150743??2007-04-09?10:36??舵機\未命名.JPG
?????文件??????85999??2007-04-09?10:33??舵機\舵機.DSN
?????目錄??????????0??2011-04-09?14:25??舵機\code\BACKUP
?????目錄??????????0??2011-04-09?14:25??舵機\code
?????目錄??????????0??2011-04-09?14:25??舵機
-----------?---------??----------?-----??----
???????????????508991????????????????????28
............此處省略1個文件信息
- 上一篇:vb 獲取任意程序窗體句柄
- 下一篇:漢英文字圖片識別vb編程
評論
共有 條評論