毕业论文定制保证原创:QQ:1585269081专业设计课程名称嵌入式系统课题名称简易酒店终端设计专业电子信息工程班级0703班学号200701030312姓名刘其海指导教师陈军根2011年1月3日湖南工程学院课程设计任务书课程名称嵌入式系统题目简易酒店点菜终端设计专业班级电子信息0703学生姓名刘其海指导老师陈军根审批任务书下达日期2011年1月3日设计完成日期20011年1月15日设计内容与设计要求一.设计内容利用单片机、液晶、键盘设计一个简易酒店点菜终端软件系统,要求:1.采用PROTEUS软件实现;2.液晶采用AMPIRF12864;3.键盘输入选择菜名、确认、查询等功能;4.点菜系统的显示模式自行定义;5.要求保持桌号和相应的菜单,并有查询功能。二.设计要求1.设计思路清晰,给出整体设计框图;2.给出具体设计思路和电路图,画出程序流程图;3.给出设计源程序;4.进行实验调试,验证设计结果;5.编写设计说明书。主要设计条件1.提供PROTEUS设计软件;说明书格式1.课程设计封面;2.任务书;3.说明书目录;4.设计总体思路,基本原理和框图;5.单元函数设计;6.程序调试与结果;7.总结与体会;8.附录;9.参考文献;10.试验源程序。进度安排第一周星期一:下达设计任务书,介绍课题内容与要求;查找资料,确定总体设计方案。第一周星期二:阅读相关资料。第一周星期三~周五:设计原理框图;第二周星期一~周五:编写软件第三周星期一~周三:软件调试第三周周四、周五:书写设计报告,画整机原理图;答辩。参考文献1、谭浩强编C语言程序设计清华大学出版社2、王迎旭编单片机原理与应用机械工业出版社3、点阵字符液晶显示模块使用手册(HD44780)4、LCD汉字取模软件使用手册5、AMPIRE128X64资料6、Proteus软件、keil软件使用说明7、目录一、设计总体思路和系统框图..............................................................11.1设计思路.....................................................................................11.2系统框图.....................................................................................11.3系统显示框图.............................................................................2二、单元模块设计..................................................................................32.1AT89C52单片机模块.................................................................32.1.1AT89C52介绍....................................................................32.1.2AT89C52管脚图................................................................32.1.3头文件注解.......................................................................42.2键盘控制模块.............................................................................52.2.1键盘功能...........................................................................52.2.2按键判断程序...................................................................62.3LCD模块....................................................................................72.3.1AMPIRE128x64简介........................................................72.3.2AMPIRE128x64指令说明...............................................72.3.3LCD驱动程序...................................................................8三、系统仿真与结果............................................................................103.1开机显示...................................................................................103.2主菜单显示...............................................................................113.3子菜单显示...............................................................................113.4点菜成功显示...........................................................................12四、总结与体会....................................................................................13五、附录................................................................................................145.1仿真电路图......................................................................................145.2程序清单...................................................................................15六、参考文献........................................................................................251一、设计总体思路和系统框图1.1设计思路根据设计要求利用单片机、液晶、键盘设计一个简易酒店点菜终端软件系统,选取AT89C52单片机、AMPIRE12864LCD和KEYPAD数字键盘构成主要模块,加以设计简单辅助电路和C语言程序构成简易酒店点菜终端软件系统,并利用Proteus软件进行仿真。1.2系统框图按照设计思路,系统框图如下:图一系统框图AT89C52AMPIRE128X64键盘控制模块21.3系统显示框图将各模块在Proteus仿真软件中连接好后,点击“运行”,结合键盘上的“2”、“5”、“8”键(分别实现向下选择、确认和向上选择功能)可以在LCD上看到开机画面、各系菜单以及其子菜单。显示框图如图二。图二显示框图鲁菜开始闪烁WELCOME!字样川菜闽菜浙菜苏菜粤菜湘菜返回显示点菜成功!各菜系子菜单3二、单元模块设计2.1AT89C52单片机模块2.1.1AT89C52介绍AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。2.1.2AT89C52管脚图2AT89C52管脚图如下:4图三AT89C52管脚图2.1.3头文件注解在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,系统编程将要使用到两个头文件,分别是reg52.h和code.h。下面就reg52.h头文件作简单解释,code.h头文件的编写主要是为了存放菜单中所要使用的汉字的字模,以便主程序调用,程序清单将在附录中给出。程序的第一行是一个“文件包含”处理,所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来。程序中包含REG51.h头文件的目的是为了要使用P1(还有其他更多的符号)这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。5不难看出,程序里都是一些符号的定义,即规定符号名与地址的对应关系。注意其中有sfrP1=0x90;这样的一行,即定义P1与地址0x90对应,P1口的地址就是0x90(0x90是C语言中十六进制数的写法,相当于汇编语言中写90H)。从这里还可以看到一个频繁出现的词:sfr,sfr并非标准C语言的关键字,而是Keil编译软件为能直接访问80C51中的SFR而提供了一个新的关键词,其用法是:sfrt变量名=地址值。2.2键盘控制模块2.2.1键盘功能本系统采用的键盘是小型数字键盘,其图如下:图四键盘图由于点菜系统所需要的按键不多,因此在这里只选用3个键实现向下选择、确认和向上选择功能的按键,分别是2、5、8数字键。62.2.2按键判断程序程序中#definekeydataP1定义了单片机P1借口为键盘输入控制串口。在仿真电路,中键盘的A、B、C、D管脚分别与P1.0~P1.3相连,同时各接一个阻值为10K的上拉电阻。1、2、3、4管脚分别与P1.4~P1.7相连。按键判断程序如下:chargetkey()//按键判断{chari;keydata=0x0f;while(keydata==0x0f);//判断有无按键按下,无则等待delay10ms();//去抖动keydata=0xef;if(keydata==0xee)i=12;elseif(keydata==0xed)i=8;elseif(keydata==0xeb)i=4;elseif(keydata==0xe7)i=0;keydata=0xdf;if(keydata==0xde)i=13;elseif(keydata==0xdd)i=9;elseif(keydata==0xdb)i=5;elseif(keydata==0xd7)i=1;keydata=0xbf;if(keydata==0xbe)i=14;elseif(keydata==0xbd)i=10;elseif(keydata==0xbb)i=6;elseif(keydata==0xb7)i=2;keydata=0x7f;if(keydat