步进电机正反转
2015-05-02 10:49
197 查看
main.c
#include<reg51.h> #include<function.h> #include<keyscan.h> #define speed 1 sbit PH1 = P1^0; //定义管脚 sbit PH2 = P1^1; sbit I01 = P1^2; sbit I11 = P1^3; sbit I02 = P1^4; sbit I12 = P1^5; void delay(int time){ int i,j; for(j=0; j <= time; j++) for(i =0 ; i <= 120; i++); } void init() { PH1 = 0; I01 = 0; I11 = 0; PH2 = 1; I02 = 1; I12 = 1; delay(speed); PH1 = 0; I01 = 0; I11 = 0; PH2 = 1; I02 = 1; I12 = 1; delay(speed); } void Go1() // !a=>!b=>a=>b=>!a { PH1 = 0; I01 = 0; I11 = 0; PH2 = 0; I02 = 1; I12 = 1; delay(speed); //okay; PH1 = 1; I01 = 1; I11 = 1; PH2 = 0; I02 = 0; I12 = 0; delay(speed); PH1 = 1; I01 = 0; I11 = 0; PH2 = 1; I02 = 1; I12 = 1; delay(speed); PH1 = 0; I01 = 1; I11 = 1; PH2 = 1; I02 = 0; I12 = 0; delay(speed); PH1 = 0; I01 = 0; I11 = 0; PH2 = 0; I02 = 1; I12 = 1; delay(speed); } void Go2() { PH1 = 0; I01 = 0; I11 = 0; PH2 = 1; I02 = 1; I12 = 1; delay(speed); PH1 = 1; I01 = 1; I11 = 1; PH2 = 1; I02 = 0; I12 = 0; delay(speed); PH1 = 1; I01 = 0; I11 = 0; PH2 = 0; I02 = 1; I12 = 1; delay(speed); PH1 = 0; I01 = 1; I11 = 1; PH2 = 0; I02 = 0; I12 = 0; delay(speed); PH1 = 0; I01 = 0; I11 = 0; PH2 = 1; I02 = 1; I12 = 1; delay(speed); } void main() { uchar key; initialKeyScan(); init(); while(1) { key = keyScan(); switch(key) { case 0x00:{Go1(); break;} case 0x01:{Go2(); break;} } key = 0x10; } }
相关文章推荐
- 51单片机的中断整理
- 时钟+温度+遥控设置,综合时钟例子
- 温度传感器+I2C+串口+PC上位机(pyserial)例子
- 51单片机中data,idata,xdata,pdata的区别
- 什么叫51单片机最小系统
- 用串口连接GSM手机发送和接收短消息,在应用程序中如何编程实现?
- MCU之心路分享
- 按键led
- 单片机学会释放CPU
- 单片机无线串行接口电路设计
- 单片机无线串行接口电路设计
- 单片机系统中的红外通信接口
- 单片机系统中的红外通信接口
- 单片机实现接收从电脑发送过来的字符串的方法
- 单片机IO口模拟串口程序(发送+接收
- DSP、ARM和单片机的区别
- 转:接地:数字地、模拟地、信号地、交流地、直流地、屏蔽地、浮地
- 单片机存储器之flash,eeprom,sram,dram简介
- 程序状态字(PSW)的动画说明,
- 51单片机