




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实例100:电机转速表设计#include<reg51.h> 包含单片机寄存器的头文件#i nclude<intri ns.h> 包含_nop_()函数定义的头文件sbit rs=p2a0;寄存器选择位,将rs位定义为p2.0引脚sbit rw=p2a1; 读写选择位,将rw位定义为p2引脚sbit e=p2a2;使能信号位,将e位定义为p2.2引脚sbit bf=p0a7;忙碌标志位,将bf位定义为p0.7引脚unsigned char code digit = “0123456789”;/定义字符数组显示数字 unsigned int v;储存电机转速unsigne
2、d char count; 储存定时器to中断次数bit flag; 计满1秒钟标志位/ 士 卜丄"卜卜士 士卜士 士士 *1* 士士 士 *4 士f哼、哼、哼、函数功能:延时1ms(3j+2)*i=(3x33+2)x 10=1010(微秒),可以认为是 1 毫秒void delay lms()unsigned char i,j; for(i=0;i<10;i +) for(j=0;j<33;j+)函数功能:延时若十毫秒 入口参数:nvoid delay(unsigned char n) unsigned chari;for(i=0;i<n;i+)delay lms
3、();/*1*匕匕匕匕匕 *1* 匕g tv、函数功能:判断液晶模块的忙碌状态返回值:resulto result=l,忙碌;result二0,不忙unsigned char busytest(void)bit result;rs=0;根据规定,rs为低电平,rw为高电平时,可以读状态rw=1;e=l;作=1,才允许读写_nop_();空操作_nop_();_nop_();_nop_();空操作四个机器周期,给破件反应时间result=bf; 将忙碌标志电平赋给resulte=0;将e恢复低电平return result;函数功能:将模式设置指令或显示地址写入液晶模块 入口参数:dictate
4、void writeinstruction (unsigned char dictate) 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_();空操作两个机器周期,给硬件反应时间将数据送入p0 口,即写入指令或地址_nop_(); _nop_(); e=l;_nop_();_nop_();_nop_(); _nop_();e=0
5、;牢操作四个机器周期,给硬件反应时间/e置高电平空操作四个机器周期,给硬件反应时间当e山髙电平跳变成低电平时,液晶模块开始执行命令函数功能:指定字符显示的实际地址 入口参数:xkl tz *2kl kl kl tzkl tzkl klkl trw <jw 卜 7*<t*rt<trj% <1%<t<trw <1% <1%<t/void writeaddress(unsigned char x)writelnstruction(xl()x80); 显示位置的确定方法规定为"80h+地址码x"匕1 11 11apppp ppp
6、 p p p ,p p p p 沪函数功能:将数据(字符的标准ascii码)写入液品模块 入口参数:y(为字符常量)void writedata(unsigned char y)while(busytest()= 1);rs=1;rw=0;e=0;rs为高电平,rw为低电平时,可以写入数据/e置低电平(根据表86,写指令吋,e为高脉冲,/就是让e从0到1发生正跳变,所以应先置”0“p0=y;将数据送入p0 口,即将数据写入液晶模块_nop_();_nop_();_nop_();_nop_();e=l;_nop_();_nop_();_nop_();空操作四个机器周期,给硬件反应时间/e置高电平
7、_nop_();e=0;空操作四个机器周期,给硬件反应时间当e由高电平跳变成低电平时,液晶模块开始执行命令a tv函数功能:对lcd的显示模式进行初始化设置void led!nitiate(void)delay(15);延时15ms,首次写指令时应给lcd 段较长的反应时间writelnstruction(0x38);显示模式设置:16x2显示,5x7点阵,8位数据接口delay(5);writelnstruction(0x38);延时5ms ,给硬件一点反应时间delay(5);writelnstmction(0x38); 连续三次,确保初始化成功delay(5);writelnstruct
8、ion(oxoc);delay(5);writelnstruction(0x06);delay(5);显示模式设置:显示开,无光标,光标不闪烁显示模式设置:光标右移,字符不移writelnstruction(0x01);淸屏幕指令,将以前的显示内容清除delay(5);/ rt» *t* *tw rtw rte»t« ; »tw ? rtw rtw 91 rtw *y»<t« »tw rt rtw rtw »tw r rtw *y»»tw »t rtw rtw rtw rtw r
9、tw 丫»t* rtw n rtw rt» rtw *y» 丫<t »tw rtw rtw rtw rtwry»<t* ? rtw rtw rtw rtw rtw rtw 打 9t函数功能:显示速度提示符*1 土 上士上 *1 卜士 士 *1*1 丄"卜卜士 *1*卜 士 卜土«£* 卜 士 士 *1*上 士 土«£*1 *1 士 /t> #t%t>#t% 哼、t>#t% 哼、t>哼、#t%哼、#t%哼、t> #t%t>哼、#t% #t%t>
10、fvoid display_sym(void)writeaddress(oxoo); 写显示地址,将在第1行第1列开始显示 writedatac'v*);将字符常量v写入lcdwritedatac1);将字符常量=写入lcd函数功能:比示速度数值1 1 1 1 / p p pp p p p pp p ppp p,pivoid display_val(unsigned int x)unsigned char i,j,k,l;i=x/1000;j,kj分别储存温度的百位、十位和个位 取千位j=(x% 1000)/100; k=(x%100)/10; l=x%10;取百位収十位取个位writ
11、e address(0x02);writedata(digiti);writedata(digit|j);writedata(digitkj);writedata(digitl);写显示地址,将在第1行第3列开始显示 /将千位数字的字符常量写入lcd /将白位数字的字符常量写入lcd 将十位数字的字符常量写入lcd 将个位数字的字符常量写入lcd/ p p pppp卩卩函数功能:显示速度单位“i7min”/ppp p p ppppp fvoid display_unit(void)write address(0x06);writedata('r');writedatac/*);
12、writedatac'm*);writedatact);writedata(b');写显示地址,将在第2行第7列开始显示将字符常量r写入lcd将字符常量/写入lcd将字符常量m写入lcd将字符常量i写入lcd将字符常量n写入lcd/ kl klklklkl tz *2kl tzkl kl tz tzf<|* "卜 卜 7*卜 7*卜 7*<tw <t* 卜卜 卜函数功能:主函数kllx kl£z kl£z kl£z vl/rjw ej% rj r rj% rj rj% rjw rj rj. rj. rj* ry* rj
13、rj% rj rj% rj. rj* rj. rj*r|% rj% rj% rj% rj. rj* rj. rjw rjw rj* rj% r|w rj% rj% rj% rj rj rjw rj rj% rjw rj% r|w rj% rj rj rjw /void main(void)lcdlnitiate();调用lcd初始化函数tmod=0x51;式1;定时器t1工作于计数模式1,定甘器t0工作于计时模th0=(65536-46083)/256; 定时器to的高8位设置初值,每50ms产生一次屮断tl0=(65536-46083)%256; 定时器to的低8位设置初值,每50ms产生一
14、次中断ea=1;eto=i;tr0= 1; count=0;开总屮断定时器to中断允许启动定时器to将t0中断次数初始化为0display_sym(); display_val(oooo);显示速度提示符显示器工作正常标志display_unit(); while(l) f显示速度单位无限循环itr1=1;th 1=0;定时器t1启动定时器t1高8位赋初值0tl1=o;flag=o;while(flag=o)/定时器t1低8位赋初值0时间还未满1分钟时间未满等待v=(th 1 *256+tl 1 )*60/16; /计算速度,每周产生16个脉冲 display_val(v);显示速度tzf 1* "卜 7* 卜<t* 卜 <|* 1%卜卜<t*卜卜<t*1%<r*函数功能:泄吋器to的中断服务函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑项目咨询服务合同模板
- 个人装修吊顶合同标准文本
- 仓库储存租赁合同标准文本
- 中介返佣协议合同标准文本
- 公路承包协议合同范例
- 全屋定制承揽合同标准文本
- 万江水果配送合同标准文本
- 终止劳动合同
- 产品标签设计合同标准文本
- 美发连锁店战略合作合同书
- 2025年个体古董借款质押合同示范本
- 交管12123驾驶证减分学法题库(部分)(图文版)
- 油气藏产能预测模型-深度研究
- 2025年四川成都市蒲江乡村建设发展集团有限公司招聘笔试参考题库附带答案详解
- 2024版房产经纪人无底薪劳动协议
- 2025年上半年度交通运输部南海航海保障中心公开招聘126人工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上海烟草集团上海新型烟草制品研究院限公司招聘8人高频重点提升(共500题)附带答案详解
- 2025年中邮证券有限责任公司招聘笔试参考题库含答案解析
- 社戒社康培训
- DB11-T 1754-2024 老年人能力综合评估规范
- 2025年中考语文名著复习计划
评论
0/150
提交评论