当前位置:首页 > 基于单片机的步进电机电路控制设计
淮阴工学院毕业设计说明书(论文)
第 29 页 共 33 页
while(1)
{
delay(speed); P3_7=~P3_7;
}
}
LCD显示
#include
#define uint unsigned int #define uchar unsigned char
unsigned char TempBuffer[4]; //存放转换成液晶字符(ASIIC)的数组,××注意此数组的定义
main() {
unsigned char i=234;
Lcd_Init(); //液晶初始化
GotoXY(1,0); //液晶字符显示位置 Print(\
TempBuffer[3]='\\0'; //最后一个字符是回车 TempBuffer[2]=i/100+0x30; TempBuffer[1]=i0/10+0x30; TempBuffer[0]=i0+0x30;
GotoXY(6,1);
Print(TempBuffer); while(1); }
LCD的驱动函数
#include \
#define uchar unsigned char #define uint unsigned int 延时1.64ms
淮阴工学院毕业设计说明书(论文)
void delay1_64ms(void) {
uchar i;
for(i = 0;i < 250;i++) {
}
_nop_(); _nop_(); _nop_(); _nop_();
第 30 页 共 33 页
}
延时40us /*void delay40us(void) {
uchar i;
for(i = 0;i < 20;i++) { ; }
}*/
判断LCD忙 unsigned char Lcd_Wait(void) {
while(1) {
DBPort=0xff; LcdEn=0; _nop_(); LcdRs=0;
_nop_(); _nop_(); LcdRw=1; _nop_(); _nop_(); LcdEn=1; _nop_(); _nop_(); _nop_(); _nop_();
淮阴工学院毕业设计说明书(论文)
}
if((DBPort&0x80)==0) {
break; }
LcdEn=0; }
//delay40us(); return DBPort;
第 31 页 共 33 页
写LCD函数 void Lcd_Write(bit style,unsigned char input) {
LcdEn=0;
_nop_(); _nop_();
LcdRs=style; _nop_(); _nop_(); LcdRw=0;
DBPort=input; _nop_(); _nop_(); LcdEn=1; _nop_(); _nop_(); LcdEn=0; _nop_();
Lcd_Wait();
}
LCD清屏函数 void ClrScreen(void) {
Lcd_Write(Lcd_Command,Lcd_Clear_Screen); //delay1_64ms(); }
LCD归位函数 /*void Screen_home(void)
淮阴工学院毕业设计说明书(论文)
{
Lcd_Write(Lcd_Command,Lcd_Home); //delay1_64ms(); }*/
设置显示模式 void Lcd_SetDisplay(unsigned char DisplayMode) {
Lcd_Write(Lcd_Command,0x08|DisplayMode);
}
LCD移动设置 void Lcd_Move(unsigned char MoveMode) {
第 32 页 共 33 页
Lcd_Write(Lcd_Command,0x10|MoveMode); }
LCD输入设置
void Lcd_SetInput(unsigned char InputMode) {
Lcd_Write(Lcd_Command,0x04|InputMode); }
LCD初始化 void Lcd_Init(void) {
delay1_64ms();
Lcd_Write(Lcd_Command,0x38); //8位数据端口,2行显示,5*7点阵
Lcd_Write(Lcd_Command,0x38); Lcd_Write(Lcd_Command,0x38);
Lcd_SetDisplay(Lcd_Display_On); //开启显示, 无光标|Lcd_Cursor|Lcd_Flash
//Lcd_Move(Lcd_CursorMove|Lcd_Left);
Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move); //AC递增, 画面不动_To
淮阴工学院毕业设计说明书(论文)
}
显示位置设置 ** void GotoXY(unsigned char x,unsigned char y) {
if(y==0)
{Lcd_Write(Lcd_Command,0x80|x); } if(y==1)
{Lcd_Write(Lcd_Command,0x80|(x+0x40));
第 33 页 共 33 页
} }
LCD显示函数
void Print(unsigned char *str) {
while(*str!='\\0') {
Lcd_Write(Lcd_Data,*str); str++; } }
void print_char(uchar a) {
if(a>=0&&a<=9)
Lcd_Write(Lcd_Data,a+'0'); else if(a>=0x0a &&a<= 0x0f) Lcd_Write(Lcd_Data,a+0x37); }
共分享92篇相关文档