|
*本文及代碼參閱彭偉《單片機C語言程序設計實訓100例》
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (774.78 KB, 下載次數: 73)
下載附件
2020-7-6 12:47 上傳
圖1
二,調整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (236.05 KB, 下載次數: 62)
下載附件
2020-7-6 12:47 上傳
圖2
3.png (268.29 KB, 下載次數: 61)
下載附件
2020-7-6 12:47 上傳
圖3
4.png (331.56 KB, 下載次數: 63)
下載附件
2020-7-6 12:47 上傳
圖4
三,點擊Source Code標簽。(如下圖5所示)
5.png (157.34 KB, 下載次數: 77)
下載附件
2020-7-6 12:47 上傳
圖5
四,編輯main.c Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a18_正反轉可控步進電機 (如下圖6所示)
6.png (168.12 KB, 下載次數: 58)
下載附件
2020-7-6 12:47 上傳
圖6
五,Main.c 代碼:
//-----------------------------------------------------------------
// 名稱: 正反轉可控的步進電機
//-----------------------------------------------------------------
// 說明: 本例運行過程,按下K1電機正轉3圈,按下K2反轉3圈,
// 按下K3時停止.在進行相應操作時,對應LED將被點亮.
//
//-----------------------------------------------------------------
#include "myfunc01.h"
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
INT8U r= 3;
DDRB= 0xFF; PORTB= FFW[0];
DDRC= 0xFF; PORTC= 0xFF;
DDRD= 0x00; PORTD= 0xFF;
while(1) {
if(K1_DOWN()) {
while(K1_DOWN());
PORTC= 0xFE;
STEP_MOTOR_RUN(0, r);
}
if(K2_DOWN()) {
while(K2_DOWN());
PORTC= 0xFD;
STEP_MOTOR_RUN(1, r);
}
PORTC= 0xFB;
}
}
Myfunc01.h
//******************************************************************************************
#ifndef _MYFUNC01_H_
#define _MYFUNC01_H_
//#define F_CPU 2000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//本例四相步進電機工作于八拍方式
//正轉勵磁序列為A->AB->B->BC->C->CD->D->DA
static INT8U FFW[]= { 0x01, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x09 };
//反轉勵磁序列為A->AD->D->CD->C->BC->B->AB
static INT8U REV[]= { 0x01, 0x09, 0x08, 0x0C, 0x04, 0x06, 0x02, 0x03 };
//按鍵定義
#define K1_DOWN() ((PIND & _BV(PD0))== 0x00)
#define K2_DOWN() ((PIND & _BV(PD1))== 0x00)
#define KX_DOWN() (PIND != 0xFF)
void STEP_MOTOR_RUN(INT8U Direction,INT8U n);
#endif
六,點擊構建工程按鈕,編譯工程。(如下圖7所示)
7.png (199.25 KB, 下載次數: 79)
下載附件
2020-7-6 12:47 上傳
圖7
七,點擊窗口左下方仿真按鈕,可見虛擬步進電機運行。 (如下圖8,9,10所示)
8.png (342.02 KB, 下載次數: 61)
下載附件
2020-7-6 12:47 上傳
圖8
9.png (343.02 KB, 下載次數: 79)
下載附件
2020-7-6 12:47 上傳
圖9
10.png (334.7 KB, 下載次數: 84)
下載附件
2020-7-6 12:47 上傳
圖10
八,選擇release,點擊構建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (198.85 KB, 下載次數: 81)
下載附件
2020-7-6 12:47 上傳
圖11
附件Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a18_正反轉可控步進電機在已安裝Proteus8.9的計算機文件夾中打開即可
需要進一步了解,請加入QQ群:976235464
|
-
-
a18_正反轉可控步進電機02pt.rar
2020-7-6 12:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
132.58 KB, 下載次數: 12, 下載積分: 黑幣 -5
在已安裝Proteus8.9的計算機文件夾中打開即可
評分
-
查看全部評分
|