欢迎来到天天文库
浏览记录
ID:30786041
大小:161.56 KB
页数:5页
时间:2019-01-03
《单片机51测速程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、〃实例100:电机转速表设计#include〃包含单片机寄存器的头文件#include〃包含_nop_()函数定义的头文件sbitRS=P2A0;〃寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2A1;〃读写选择位,将RW位定义为P2」引脚sbitE=P2A2;〃使能信号位,将E位定义为P2.2引脚sbitBF=P0A7;〃忙碌标志位,,将BF位定义为P0.7引脚unsignedcharcodedigit[]={“0123456789”};//定义字符数组显示数字unsignedintv;〃储
2、存电机转速unsignedcharcount;〃储存定时器TO中断次数bitflag;〃计满1秒钟标志位/•士•卜•丄"•卜•卜•士•士•卜•士•士•士*1*•士•士•士*4^•士f哼、哼、哼、函数功能:延时1ms(3j+2)*i=(3X33+2)X10=1010(微秒),可以认为是1毫秒voiddelaylms(){unsignedchari,j;for(i=0;i<10;i++)for(j=0;j<33;j++)函数功能:延时若十毫秒入口参数:nvoiddelay(unsignedcharn){unsignedchari;for(i=0;
3、i4、eturnresult;函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictatevoidWriteinstruction(unsignedchardictate){while(BusyTest()==l);//如果忙就等待RS=0;〃根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置”0”_nop_();_nop_();PO=dictate;_nop_();_nop_();〃空操作两个机器周期,给硬件反应时间〃将数据送5、入P0口,即写入指令或地址_nop_();_nop_();E=l;_nop_();_nop_();_nop_();_nop_();E=0;〃牢操作四个机器周期,给硬件反应时间//E置高电平〃空操作四个机器周期,给硬件反应时间〃当E山髙电平跳变成低电平时,液晶模块开始执行命令函数功能:指定字符显示的实际地址入口参数:xkL^^tz*2kL^kL^kL^^tzkL^^tzkL^kL^kL^trw6、elnstruction(xl()x80);〃显示位置的确定方法规定为"80H+地址码x"]•匕•1^•1^•1^•1^•1^a・p・p・p・p・p・p・p・p・p・p•,・p・p・p・p♦沪函数功能:将数据(字符的标准ASCII码)写入液品模块入口参数:y(为字符常量)voidWriteData(unsignedchary)while(BusyTest()==1);RS=1;RW=0;E=0;〃RS为高电平,RW为低电平时,可以写入数据//E置低电平(根据表8・6,写指令吋,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置”0“P0=7、y;〃将数据送入P0口,即将数据写入液晶模块_nop_();_nop_();_nop_();_nop_();E=l;_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间//E置高电平_nop_();E=0;〃空操作四个机器周期,给硬件反应时间〃当E由高电平跳变成低电平时,液晶模块开始执行命令[a^TV函数功能:对LCD的显示模式进行初始化设置voidLed!nitiate(void)delay(15);〃延时15ms,首次写指令时应给LCD—段较长的反应时间Writelnstruction(0x38);〃显示模8、式设置:16X2显示,5X7点阵,8位数据接口delay(5);Writelnstruction(0x38);〃延时5ms,给硬件一点反应时间delay(5);Wr
4、eturnresult;函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictatevoidWriteinstruction(unsignedchardictate){while(BusyTest()==l);//如果忙就等待RS=0;〃根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置”0”_nop_();_nop_();PO=dictate;_nop_();_nop_();〃空操作两个机器周期,给硬件反应时间〃将数据送
5、入P0口,即写入指令或地址_nop_();_nop_();E=l;_nop_();_nop_();_nop_();_nop_();E=0;〃牢操作四个机器周期,给硬件反应时间//E置高电平〃空操作四个机器周期,给硬件反应时间〃当E山髙电平跳变成低电平时,液晶模块开始执行命令函数功能:指定字符显示的实际地址入口参数:xkL^^tz*2kL^kL^kL^^tzkL^^tzkL^kL^kL^trw6、elnstruction(xl()x80);〃显示位置的确定方法规定为"80H+地址码x"]•匕•1^•1^•1^•1^•1^a・p・p・p・p・p・p・p・p・p・p•,・p・p・p・p♦沪函数功能:将数据(字符的标准ASCII码)写入液品模块入口参数:y(为字符常量)voidWriteData(unsignedchary)while(BusyTest()==1);RS=1;RW=0;E=0;〃RS为高电平,RW为低电平时,可以写入数据//E置低电平(根据表8・6,写指令吋,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置”0“P0=7、y;〃将数据送入P0口,即将数据写入液晶模块_nop_();_nop_();_nop_();_nop_();E=l;_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间//E置高电平_nop_();E=0;〃空操作四个机器周期,给硬件反应时间〃当E由高电平跳变成低电平时,液晶模块开始执行命令[a^TV函数功能:对LCD的显示模式进行初始化设置voidLed!nitiate(void)delay(15);〃延时15ms,首次写指令时应给LCD—段较长的反应时间Writelnstruction(0x38);〃显示模8、式设置:16X2显示,5X7点阵,8位数据接口delay(5);Writelnstruction(0x38);〃延时5ms,给硬件一点反应时间delay(5);Wr
6、elnstruction(xl()x80);〃显示位置的确定方法规定为"80H+地址码x"]•匕•1^•1^•1^•1^•1^a・p・p・p・p・p・p・p・p・p・p•,・p・p・p・p♦沪函数功能:将数据(字符的标准ASCII码)写入液品模块入口参数:y(为字符常量)voidWriteData(unsignedchary)while(BusyTest()==1);RS=1;RW=0;E=0;〃RS为高电平,RW为低电平时,可以写入数据//E置低电平(根据表8・6,写指令吋,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置”0“P0=
7、y;〃将数据送入P0口,即将数据写入液晶模块_nop_();_nop_();_nop_();_nop_();E=l;_nop_();_nop_();_nop_();〃空操作四个机器周期,给硬件反应时间//E置高电平_nop_();E=0;〃空操作四个机器周期,给硬件反应时间〃当E由高电平跳变成低电平时,液晶模块开始执行命令[a^TV函数功能:对LCD的显示模式进行初始化设置voidLed!nitiate(void)delay(15);〃延时15ms,首次写指令时应给LCD—段较长的反应时间Writelnstruction(0x38);〃显示模
8、式设置:16X2显示,5X7点阵,8位数据接口delay(5);Writelnstruction(0x38);〃延时5ms,给硬件一点反应时间delay(5);Wr
此文档下载收益归作者所有