- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
按键和液晶,可以组成我们最简易的计算器。下面我们来写一个简易整数计算器提供给大家学习。为了让程序不过于复杂,我们这个计算器不考虑连加,连减等连续计算,不考虑小数情况。加减乘除分别用上下左右来替代,回车表示等于,ESC 表示归 0。程序共分为三部分,一部分是 1602 液晶显示,一部分是按键动作和扫描,一部分是主函数功能。
/***************************Lcd1602.c 文件程序源代码*****************************/
#include reg52.h
#define LCD1602_DB P0
sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E = P1^5;
/* 等待液晶准备好 */
void LcdWaitReady()
{
unsigned char sta;
LCD1602_DB = 0xFF;
LCD1602_RS = 0;
LCD1602_RW = 1;
do {
LCD1602_E = 1;
sta = LCD1602_DB; //读取状态字
LCD1602_E = 0;
} while (sta 0x80); //bit7 等于 1 表示液晶正忙,重复检测直到其等于 0 为止
}
/* 向 LCD1602 液晶写入一字节命令,cmd-待写入命令值 */
void LcdWriteCmd(unsigned char cmd)
{
LcdWaitReady();
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_E = 1;
LCD1602_E = 0;
}
/* 向 LCD1602 液晶写入一字节数据,dat-待写入数据值 */
void LcdWriteDat(unsigned char dat)
{
LcdWaitReady();
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_E = 1;
LCD1602_E = 0;
}
/* 设置显示 RAM 起始地址,亦即光标位置,(xy)-对应屏幕上的字符坐标 */
void LcdSetCursor(unsigned char x unsigned char y)
{
unsigned char addr;
if (y == 0) //由输入的屏幕坐标计算显示 RAM 的地址
addr = 0x00 + x; //第一行字符地址从 0x00 起始
else
addr = 0x40 + x; //第二行字符地址从 0x40 起始
LcdWriteCmd(addr | 0x80); //设置 RAM 地址
}
/* 在液晶上显示字符串,(xy)-对应屏幕上的起始坐标,str-字符串指针 */
void LcdShowStr(unsigned char x unsigned char y unsigned char *str)
{
LcdSetCursor(x y); //设置起始地址
while (*str != \0) //连续写入字符串数据,直到检测到结束符
{
LcdWriteDat(*str++);
}
}
/* 区域清除,清除从(xy)坐标起始的 len 个字符位 */
void LcdAreaClear(unsigned char x unsigned char y unsigned char len)
{
LcdSetCursor(x y); //设置起始地址
while (len--) //连续写入空格
{
LcdWriteDat( );
}
}
/* 整屏清除 */
void LcdFullClear()
{
LcdW
您可能关注的文档
- 小学英语一般过去时练习试题.docx
- landmark的中文教程stratamodel模块油藏建模培训课件(stratamodel-train).ppt
- 2019年【初三话题作文】寒窗苦读十年书-只为一朝救国来作文.docx
- 挂篮行走安全交底三角.docx
- 计算信息中心“男性健康日”座谈会.ppt
- 甘肃省临夏州临夏市第一中学2018-2019学年八年级上册地理期中试卷Word版无答案.docx
- 互换性和测量技术基础第9章螺纹连接的互换性.ppt
- 孕沙成珠展新城-文明言行助崛起.docx
- 2020届高考词汇变形总汇(教师版带答案).docx
- 天池养老营销业务流程.pptx
- 2020春人教版九年级数学下册课件:第28章 《锐角三角函数》章末检测试卷.ppt
- 伍家岗区2019年春季期末调研考试八年级数学试卷.docx
- 地质版必修技术和设计 1.2技术的性质 .ppt
- 济南版八年级上册生物 第2章 动物的生殖和发育 复习题(包含答案).doc
- 沪教版地理七年级上册 3.2降水分布.ppt
- 鲁教版五四制地理六年级上册第二章第一节《大洲和大洋》.ppt
- 语文一上组词.doc
- 北师大版数学八年级上册3.3 轴对称与坐标变换 教案设计.doc
- 部编人教版八年级历史上册第10课 中华民国的创建课件.pptx
- 吉林省长春市德惠市第五中学2019-2020年七年级(上)第一次月考数学试题(含答案解析).doc
最近下载
- 新人教版数学六年级上册期中考试卷(附答案) 2套.docx VIP
- 肺弥漫性微小结节的诊断与鉴别诊断【共63张PPT】.ppt VIP
- DB23T 3469-2023 高寒地区公路工程振动拌和水泥混凝土施工技术规程.pdf VIP
- 亚磷酸铝 阻燃协效剂.pdf VIP
- DB23T 3504-2023 湿地资源分布图制图规范.pdf VIP
- DB23T 3528-2023 黄芩与油莎豆间作保苗培肥标准化栽培技术规程.pdf VIP
- 一种高分散且有机亲和的亚磷酸铝阻燃剂及其制备方法.pdf VIP
- XF 95-2015 灭火器维修 消防标准.docx VIP
- 托福阅读真题(含答案)20140419Reading.docx VIP
- 高三班家长会课件.ppt VIP
原创力文档


文档评论(0)