标题:
驱动步进电机 12864(串口)显示
[打印本页]
作者:
jubaolun
时间:
2018-10-18 19:27
标题:
驱动步进电机 12864(串口)显示
用定时器0产生脉冲。
程序如下:
#include "main.h"
#include "delay.h"
#include "key.h"
#include "12864Serial.h"
uint count=0;
u8 circle=0;
u8 cou=0,num=0;
bit flag=0;
u16 Table[4]={0x00};
uchar code disA[]= {" 试 验 "};
uchar code disB[]= {"脉冲 /圈"};
uchar code disC[]= {"转"};
void Timer0Init(void) //100u秒@11.0592MHz
{
// AUXR &= 0x7F; //定时器时钟12T模式
// TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值
EA=1;
ET0=1;
// TR0 = 1; //定时器0开始计时
}
void display()
{
Lcd_SetPos(1,3);
LCD_WriteDat(':');
Table[0]=(circle%1000/100+0x30);
Table[1]=(circle%100/10+0x30);
Table[2]=(circle%10+0x30);
LCD_WriteDat(Table[0]);
LCD_WriteDat(Table[1]);
LCD_WriteDat(Table[2]);
}
int main()
{
u8 key,j,key_num=0;
Timer0Init();
LCD_Init();
// delay_ms(10);
for(j=1;j>0;j--)
{
Lcd_DispLine(0,0,disA);
Lcd_DispLine(1,1,disB);
Lcd_DispLine(2,2,disC);
}
display();
while(1)
{
key=key_Scan(0);
if(key==key_mcu)
{delay_ms(15);
key_num++;
}
if(key_num==2)key_num=0;
if((key==key_up)&&(key_num==1))
{
delay_ms(25);
circle+=1;
}
if((key==key_down)&&(key_num==1))
{
delay_ms(25);
circle-=1;
}
display();
if((key==key_en)&&(key_num==0)&&(flag==0))
{
TR0=1;flag=~flag;
}
else if((key==key_en)&&(key_num==0)&&(flag==1)) {TR0=0;flag=~flag;}
if(cou==circle)
{
cou=0;CW=0;num++;Lcd_DispLine(2,1,"顺");
}
if(num ==2)num=0;
if(num==1)
{
CW=1;Lcd_DispLine(2,1,"逆");
}
display();
}
}
void Timer0() interrupt 1//100u秒@11.0592MHz
{
uint i;
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值
i++;
if(i==15)
{
led=0;
i=0;
CLK=~CLK;
count++;
}
if(count==400){count=0;cou++;}
}
复制代码
步进电机.rar
2018-10-18 19:26 上传
点击文件名下载附件
下载积分: 黑币 -5
46.42 KB, 下载次数: 14, 下载积分: 黑币 -5
作者:
admin
时间:
2018-10-18 23:51
能补全原理图吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1