简易计算器(1602加矩阵键盘).doc

简易计算器(1602加矩阵键盘).doc

ID:58650402

大小:74.50 KB

页数:7页

时间:2020-10-16

简易计算器(1602加矩阵键盘).doc_第1页
简易计算器(1602加矩阵键盘).doc_第2页
简易计算器(1602加矩阵键盘).doc_第3页
简易计算器(1602加矩阵键盘).doc_第4页
简易计算器(1602加矩阵键盘).doc_第5页
资源描述:

《简易计算器(1602加矩阵键盘).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、原理图:二、程序#include//包含单片机寄存器的头文件#include//包含_nop_()函数定义的头文件#includesbitRS=P2^0;//寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;//读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;//使能信号位,将E位定义为P2.2引脚sbitBF=P1^7;//忙碌标志位,#defineNO_KEY_PRESS0xff/****************************************************

2、****************************************************/unsignedcharcodetab[]={0xb7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb};unsignedcharcodenum[]={""};unsignedlongnum1,num2,alg;unsignedcharflag;voiddelay1ms(){unsignedchari,j;for(i=0;i<10;i++)for(j=0;j<15;j++);}/************************

3、********************************************************************************/voiddelay(unsignedcharn){unsignedchari;for(i=0;i

4、**************/unsignedcharBusyTest(void){bitresult;RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1;//E=1,才允许读写_nop_();//空操作_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间result=BF;//将忙碌标志电平赋给resultE=0;returnresult;}/*****************************************************函数功能:将模式设置指令或显示地址写入液晶模块入口参数:di

5、ctate***************************************************/voidWriteInstruction(unsignedchardictate){while(BusyTest()==1);//如果忙就等待RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令RW=0;E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置"0"_nop_();_nop_();//空操作两个机器周期,给硬件反应时间P1=dictate;//将数据送入P1口,即写入指令或地址_nop_

6、();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间E=1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/*****************************************************函数功能:指定字符显示的实际地址入口参数:x***************************************************/voidWriteAddress(unsig

7、nedcharx){WriteInstruction(x

8、0x80);//显示位置的确定方法规定为"80H+地址码x"}/*****************************************************函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)***************************************************/voidWriteData(unsignedchary){while(BusyTest()==1);RS=1;//RS为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。