以下內容來源于《51單片機輕松入門 基于STC15W4K系列》,程序和電路肯定是能用的。完整工程見附件。
1—正反轉.rar
(15.68 KB, 下載次數: 6)
2017-8-25 19:15 上傳
點擊文件名下載附件
未命名1.JPG (91.06 KB, 下載次數: 112)
下載附件
2017-8-25 19:09 上傳
未命名2.JPG (156.76 KB, 下載次數: 105)
下載附件
2017-8-25 19:09 上傳
- /****************《51單片機輕松入門-基于STC15W4K系列》配套例程 *************
- ★★★★★★★★★★★★★★★★★★★★★★★★
- 《51單片機輕松入門-基于STC15W4K系列》 一書已經由北航出版社正式出版發行。
- 作者親手創作的與教材配套的51雙核實驗板(2個MCU)對程序下載、調試、仿真方便,不需要外部
- 仿真器與編程器,這種設計方式徹底解決了系統中多個最高優先級誰也不能讓誰的中斷競爭問題。
- 淘寶店地址:shop117387413點taobao點com
- QQ群:STC51-STM32(3) :515624099 或 STC51-STM32(2):99794374。
- 驗證信息:STC15單片機
- 郵箱:xgliyouquan@126.com
- ★★★★★★★★★★★★★★★★★★★★★★★★*/
- // 程序功能:上電后順轉200步,然后反轉200步,如此循環。
- // 使用P20、P21、P22、P23口驅動電機
- #include "STC15W4K.H "
- unsigned char code BiaoGe[8]={0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09};
- // 表格,換算成二進制 1000,1100,0100, 0110 ,0010,0011, 0001 1001
- // P2口輸出低4位驅動電機 A B /A /B
- // 1——2相勵磁,發8次脈沖(順序輸出上面表格)轉動4步
- void delay3ms(void)
- {
- unsigned char i,j,k;
- for(i=1;i>0;i--) // 注意后面沒分號
- for(j=65;j>0;j--) // 注意后面沒分號
- for(k=254;k>0;k--); // 注意后面有分號
- }
- void delay1s(void)
- {
- unsigned char i,j,k;
- for(i=85;i>0;i--) // 注意后面沒分號
- for(j=254;j>0;j--) // 注意后面沒分號
- for(k=255;k>0;k--); // 注意后面有分號
- }
- void PROT_Init(void)
- {
- P2M1 = 0x80; // 1000 0000 P2.0、P2.1、P2.2、P2.3、接驅動功率管,推挽輸出
- P2M0 = 0x0f; // 0000 1111 P2.7 接接霍爾傳感器信號輸入,高阻輸入
- }
- void shun200() // 順轉200步
- {
- unsigned int i;
- unsigned char n;
- n=0;
- for(i=0;i<400;i++) // 200步,i/2為實際步數
- {
- P2=BiaoGe[n]|0xf0; // 不影響P2口高4位
- delay3ms();
- n=n+1;
- if (n>7)
- {
- n=0;
- }
- }
- P2&=0xf0; // 保證電機繞組斷電
- }
- void fan200() // 反轉200步
- {
- unsigned int i;
- unsigned char n;
- n=8;
- for(i=0;i<400;i++) // 200步,i/2為實際步數
- {
- n=n-1;
- P2=BiaoGe[n]|0xF0; // 不影響P2口高4位
- delay3ms();
- if (n==0)
- {
- n=8;
- }
- }
- P2&=0xf0; // 保證電機繞組斷電
- }
- void main(void)
- {
- PROT_Init(); // 初始化端口
- while(1)
- {
- shun200();
- delay1s();
- fan200();
- delay1s();
- }
- }
復制代碼
書封面照片.JPG (440.22 KB, 下載次數: 111)
下載附件
2017-8-25 19:12 上傳
|