- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的简易酒店点菜系统文档
第1章.设计总体思路与系统框图
1.1设计总体思路
根据设计要求我们可知酒店点菜终端系统由控制模块,液晶显示模块,键盘模块组成。控制模块有80C51和80C52可供选择,但考虑到程序占用的空间比较大,所以我选择了80C52单片机。对于液晶显示模块我们这里采用的是LCD12864(64行128列组成)。对于键盘模块由于只要用到三个键,故我们可以用三个按键分别来实现上移,确定,下移功能。再加以简单的辅助电路和C语言程序就可以构成简单的酒店点菜终端系统,在此,我们采用proteus软件进行仿真。
1.2系统框图
按照设计思路,系统框图如下:
AT
A
T
8
9
C
5
2
AMPIRE128X64
键盘控制模块
键盘控制模块
图一 系统框图
1.3系统显示框图
将各模块在Proteus仿真软件中连接好后,点击“运行”,结合键盘上的“上移”、“确定”、“下移”键可以在LCD上看到开机画面、各系菜单以及其子菜单。显示框图如图二。
开始
开始
显示作者名称字样
显示作者名称字样
返回湘菜粤菜苏菜浙菜闽菜川菜鲁菜
返回
湘菜
粤菜
苏菜
浙菜
闽菜
川菜
鲁菜
各菜系子菜单
各菜系子菜单
显示 点菜成功!
显示 点菜成功!
图二 显示框图
第2章.单元函数模块设计
2.1 AT89C52单片机控制模块
2.1.1AT
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和HYPERLINK /view/1493903.htmFlash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
2.1.2AT89C52管脚图
AT89C52管脚图如下:
图三 AT89C52管脚图
2.1.3头文件注解
在用c语言编程是往往第一行就是reg52.h或者其他的自定义头文件,系统编程将要使用到两个头文件,分别是reg52.h和code.h。下面就reg52.h头文件作简单解释,code.h头文件的编写主要是为了存放菜单中所要使用的汉字的字模,以便主程序调用,程序清单将在附录中给出。程序的第一行是一个“文件包含”处理,所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来。程序中包含REG51.h头文件的目的是为了要使用P1 (还有其他更多的符号)这个符号,即通知C 编译器,程序中所写的P1 是指80C51 单片机的P1 端口而不是其它变量。
2.2键盘控制模块
2.2.1键盘功能
本系统采用的是三个BUTTON分别实现“上移”,“确定”,“下移”三个功能,有了这三个键我们就能实现菜单,子菜单,功能的进入和返回。
图四 键盘控制模块
2.2.2键盘控制程序
程序中我定义了P3.0,P3.4,P3.7分别为“上移”,“确定”,“下移”三个功能按键。按键引脚的一端接单片机,一端接低电平,当单片机接收到某个端口的低电平是就表示拿个按键已经按下。否则表示按键没按下,为了更好的实现按键的准确性我加入了消抖程序与松手检测程序。按键判断程序如下:
void keyscan() //按键判断
{
if(qd==0)
{
delay(5);
if(qd==0)
{
while(!qd);
n=1;
}
}
if(sy==0)
{
delay(5);
if(sy==0)
{
while(!sy);
m++;
if(m7)
m=0;
}
}
if(xy==0)
{
delay(5);
if(xy==0)
{
while(!xy);
m--;
if(m==255)
m=7;
}
}
}
2.3 LCD显示模块
2.3.1 LCD12864功能介绍
AMPIRE128x64管脚一共18个(见图五),CS1左半屏片选端,CS2右半屏片选端;VCC、GND就是电源、接地引脚,V0液晶显示驱动电压,RS数据指令选择信号,H为数据,L为指令,也叫D/I,即DATA和INSTRUC
文档评论(0)