单片机控制步进电机及1602.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机控制步进电机及1602

单片机控制步进电机及1602 2010-04-12 19:35 最近无聊,学了点单片机,用一用。 只按第一个键,步进电机正向运动,而且LED显on。 只按第二个键时,步进电机反向运动,且LED显off. 其他时候显示stop,步进电机停止运动。其C语言编制为: #includereg52.h sbit LCDRS=P2^7;//数据指令控制 sbit LCDRW=P2^6;//读写控制 sbit LCDEN=P2^5;//液晶屏使能控制 sbit A=P2^0;?? //定义两个按键 sbit X=P2^1; //**********延时函数,延时n*1ms********* void delay(unsigned char n) { ???????? int i,j; for (i=0; in; i++) ???????????? for (j=0; j100; j++) ; ????????????????? } //***********正向运动***两周***** void zhengxiang() {??? unsigned int g=0x01; ?? int c; ???? P1=g; ?? for(c=0;c8;c++)?? //正向运动两周 ?? { ?? g=g2; ?? P1=g; ?? delay(30); ?? ?? } } //**********停止运动***** void?? tingzhi() {?? P1=0x0FF; ????? delay(100); ???????? } //**********反向运动两周******** void?? fanxiang() {??? unsigned int g=0x01; ?? int c; ???? P1=g; ?? for(c=0;c8;c++)?? //反向运动动两周 ?? { ?? g=g2; ?? P1=g; ?? delay(30); } } ?? //*************写命令*************** void Write_Cmd(unsigned char C) { LCDEN=0;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令 LCDRS=0;//指令寄存器选择 P0=C; delay(5); LCDEN=1; delay(5); LCDEN=0; } //**************写数据************** void Write_Data(unsigned char D) { LCDEN=0;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令 LCDRS=1;//选择数据寄存器 P0=D; delay(5); LCDEN=1; delay(5); LCDEN=0; } //**********LCD初始化***************** void LCD_Init() { LCDRS=0;//指令寄存器选择 Write_Cmd(0x01);//清屏 Write_Cmd(0x38);//功能设置8位双行显示5*7点阵 Write_Cmd(0x0C);//开关显示设置 Write_Cmd(0x06);//输入方式设置,光标从左向右移动,内容不移动 } //*********显示开了0n********** void on() { unsigned char Code1[]=on! ; unsigned char m; LCDRW=0;//写选择 LCD_Init(); Write_Cmd(0x81);//写入显示缓冲区起始地址为1行2列 for(m=0;m3;m++) { Write_Data(Code1[m]); delay(5); } } //**********显示关off********** void OFF() { unsigned char Code2[]=OFF; unsigned char m; LCDRW=0;//写选择 LCD_Init(); Write_Cmd(0x81);//写入显示缓冲区起始地址为1行2列 for(m=0;m3;m++) { Write_Data(Code2[m]); delay(5); } } //*********显示stop********* void stop() { unsigned char Code3[]=stop; unsigned char m; LCDRW=0;//写选择 LCD_Init(); Write_Cmd(0x81);//写入显示缓冲区起始地址为1行2列 for(m=0;m4;m++) { Write_Data(Code3[m]); delay(5); } } /////////////主函、、、、、、 v

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档