版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书课程设计名称:单片机课程设计课程设计题目:四位数加法计算器的设计学 院名称:电气信息学院专业班级:学生学号:学 生姓名:学生成绩:指导教师:课程设计时间:至格式说明(打印版格式,手写版不做要求)(1)任务书三项的内容用小四号宋体,倍行距。(2) 目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。(3) 章的标题用四号黑体加粗(居中排)。(4) 章以下的标题用小四号宋体加粗(顶格排)。(5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。(6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)(7)页眉中的文字采用五号宋
2、体,居中排。页眉统一为:武汉工程大学本科课程设计。(8) 页码:封面、扉页不占页码;目录采用希腊字母I、川排列,正文采用阿拉伯数字1、2、3排列;页码位于页脚,居中位置。(9) 标题编号应统一,如:第一章,1, ;论文中的表、图和公式按章编号,如:表、表 ;图、图;公式()、公式()。课程设计任务书一、课程设计的任务和基本要求(一) 设计任务(从“单片机课程设计题目” 汇总文档中任选 1 题,根 据所选课题的具体设计要求来填写此栏)1. 系统通过 4x4 的矩阵键盘输入数字及运算符。2. 可以进行 4 位十进制数以内的加法运算,如果计算结果超过 4 位十 进制数,则屏幕显示 E。3. 可以进行
3、加法以外的计算 (乘、除、减 )。4. 创新部分:使用 LCD1602 液晶显示屏进行显示,有开机欢迎界面, 计算数据与结果分两行显示,支持小数运算。(二) 基本要求1. 有硬件结构图、电路图及文字说明;2. 有程序设计的分析、思路说明;3. 有程序流程框图、程序代码及注释说明;4. 完成系统调试(硬件系统可以借助实验装置实现,也可在 Proteus 软件中仿真模拟);5. 有程序运行结果的截屏图片。、进度安排第9周,1 )题目分析,文献查阅2 )方案比较,确定设计方案3 ) 硬件电路设计4 ) 程序设计,程序调试,系统联调,系统改进5 )课程设计说明书撰写三、参考资料或参考文献1. , .
4、单片机原理及应用基于 Proteus 和 Keil C M. 北京:电子工 业出版社 ,20132. , . 单片机原理与应用设计 M. 北京:电子工业出版社 ,20083. 马忠梅.单片机的C语言应用程序设计(第5版)M.北京:北京航空 航天大学出版社 ,20134. 楼然苗、李光飞.51系列单片机设计实例M.北京:北京航空航天大学出版社,2003本科生课程设计成绩评定表姓名专业班级学号课程设计题目:课程设计答辩记录:(手写)成绩评定依据:项目得分比例考勤记录设计结果报告撰写答辩成绩备注:成绩评定依据的项目内容和项目分值比例可以由老师按指导的专业进行调整,但成绩评定依据的项 目数不得少于3项
5、。最终评定成绩:指导教师签名:年 月 日第一章 设计论证设计分析 在方案设计过程中,我列出了两种不同的设计方案,分别对应于显示模块和单片机 内部运算。显示模块在我的设计中有两种不同的显示方式,分别为数码管显示以及液晶 屏显示。对于数码管显示来说,优点是使用简单,反应速度更快,由于 LCD 有众多的接口, 以及指令,因此在软件上要比数码管复杂。数码管显示的缺点也比较明显,就是需要占 用过多的单片机输出接口,同时, LCD 的显示功能更多,也更直观, 对于现实生活中的 使用也更加舒适。在综合了以上几点的考虑后, 我最终选择了 LCD1602 液晶显示芯片作为显示模块。 在单片机内部运算方面, 我的
6、设想也有两种, 即支持浮点数运算或只支持整数运算, 若只支持整数运算,程序设计势必更加简单易懂,但是出于实用性的考虑,我最终决定 了使计算器支持浮点数运算功能。同时,这也能更好地锻炼我的编程思维能力。设计方案 按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、键盘扫描 接口电路共四个模块组成。主控芯片使用 8051系列的 AT89C52 单片机,其中带有非易 失性Flash程序存储器,它是一种高性能、低功耗的 8位CMOS微处理芯片,市场应用 最多。显示模块采用 LCD1602 液晶显示器为主体构成。键盘电路采用 4x4 矩阵键盘电路。整个单片机的接口电路:P0用于显示输出或LC
7、D1602信号输入,P1 口用于键盘扫 描输入,P2 口用于LCD1602的控制信号输出。为了驱动系统的各个模块正常协调工作,在软件方面我设计了四大模块,分别为显 示、键盘、运算、综合模块,通过综合模块的协调来使其它三大模块正常运行,使计算 器能正确运算得出正确结果。第二章硬件设计硬件结构与工作原理图硬件结构框图系统的主体部分由输入、运算、输出模块所组成,对应于图中有,输入模块为键盘 扫描输入,输出模块为LCD1602显示,运算模块为单片机。在系统上电后,单片机初 始化,开始运行内部程序,在程序运行过程中,通过软件功能来实现按下键盘上特定按 键后,执行不同的功能,例如加减乘除,并将数据输出至显
8、示模块(LCD1602)显示。在运算过程中显示运算数据及符号,运算完成后显示运算结果。单元电路设计单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电 路和晶振电路。主控芯片选取AT89C52芯片,因其具有良好的性能及稳定性,价格便宜应用方便。晶振选取,晶振旁电容选取20pF。采用按键复位电路,电阻分别选取 100Q和10K,电容选取10卩F。以下为单片机最小系统硬件电路原理图(图),仿真接线图(图)。+5VR1100C1C310uF图 单片机最小系统硬件电路原理图CRYST ALR210k+5V1918293031U1RP2RESPACK-8*XTAL1XT
9、AL2RSTPO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD739D03837D236D335D434D533D632D7*P00P012P023P034P045P056P067-P078键盘接口电路PSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A1P2.4/A12P2.5/A13P2.6/A14P2.7/A15212223242527RW 28E-P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/IN
10、T1P3.4/T0P3.5/T1P3.6/WRP3.7/RD10111213141516AT89C52图单片机最小系统仿真接线图功能键:8 8 ' ", 8 ' , ' = ' ' C(清零、小数点)'共计16个按键,采用4*4 矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接,这样扫描P1 口就可以完成对矩阵键盘的扫描,通过对 16个按键进行编码,从而得到键盘 的口地址,对比P1 口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从 而完成键盘的功能。在Proteus仿真中,我直接使用元件库所有的 KEYP
11、AD-SMALLCA键盘,这种键盘 直接实现了 4*4键盘的功能,方便使用。如下图所示。在按下其中一个键时,其对应的行与列将都会变成低电平, 此时,即可通过判断P1口的值来确定输入的是哪一个按键,然后将所取得的按键通过软件来进行接下来的处理、运算等工作。P03P02P01P00图 4*4 矩阵键盘LCD1602显示电路LCD1602简介:如图所示,1602液晶也叫1602字符型液晶,它是一种专门用来显示 字母、数字、符号等的点阵型液晶模块。它由若干个 5X7或者5X11等点阵字符位组成, 每个点阵字符位都可以显示一个字符, 每位之间有一个点距的间隔, 每行之间也有间隔, 起到了字符间距和行间距
12、的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAJM显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示 字符和数字)。1602采用标准的 16脚接口,其中:第1引脚:GND为电源地第2引脚:VCC接5V电源正极第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对 比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个 10K的电位器调整对 比度)。第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄 存器。第5引脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操
13、作。第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行 指令。第714引脚:D0- D7为8位双向数据端。第1516脚:空脚或背灯电源。第15 引脚背光正极,第 16引脚背光负极。特性或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统 中。操作控制注:关于E=H脉冲一一开始时初始化E为0,然后置
14、E为1图LCD1602硬件原理图采用LCD1602显示器对计算过程、结果以及提示信息进行显示,在仿真电路中,由 于Proteus中并没有LCD1602显示芯片,故采用功能相似的 LM016L进行替代,其中 LM016L的D0D7三个输入输出端口接至单片机的口,用来对显示屏输出显示、输出控 制指令以及获取状态信息。单片机的分别与LM016L的 RS RW E端口相连,用来对显示芯片进行控制。以下LCD1为LCD显示电路的仿真接线图(图)图LCD1602 ( LM016L)仿真接线图第三章软件设计系统软件结构如图所示,系统启动后,执行LCD初始化程序,然后调用LCD显示程序,在屏幕上输出欢迎信息。
15、接下来调用键盘扫描处理程序,等待按键按下,按下任意键后执行LCD清屏程序,并再次调用键盘扫描处理程序,等待用户输入数据,若用户按下数字键(09), 则在显示器上显示并且将输入数据保存至数据存储区。图 程序流程图本次设计采用模块化设计思想,包括主程序和初始化子程序、延时子程序、输出数 据子程序、检测是否有按键按下子程序、 确定按键子程序、 清第一行屏与显示 “ Welcome” 子程序、换算第一个数子程序、运算子程序、显示结果子程序等子程序。运行程序后, 首先调用子程序清屏第一行并显示“ Welcome ,清屏第二行并显示“ZCY s Caculator! ”, 然后检测是否有按键按下,如果没有
16、,继续检测,如果按下,则判断是否是加减乘除键 被按下,如果是加减乘除被按下,则显示相应的字符并换算出字符前输入的数据和字符 后输入的数字, 然后检测是否有等号按下, 如果有则完成相应的运算并显示相应的结果, 然后检测是否有清屏键按下,如果有则清屏,相应的流程图如图所示。对于数字键的程序段进行相应的设计,如果运算键(、, *, / )相应标志不为 一,则将输入的数字送入第一个操作数缓存区,并且清空所有响应位。否则送入第二个 操作数缓存区。其次对功能键的程序段进行相应的设计。 如果功能键(、, *, / )第一次被按下,则置相应的标志位为一,并且将运算键响应标志位置一,清空第二个操 作数的缓存区,
17、为输入操作数做准备,如果是第二次按下则先调用运算操作子程序,执 行上次按下的运算键的运算,置相应的标志位为一,并且将运算键响应标志位置一,清 空第二个操作数的缓存区,为输入操作数做准备。程序上的具体实现:在单片机上 电后,执行两个函数 LCD_dsp_stri ng(4,0,"Welcome!")以及LCD_dsp_string(1,1,"ZCY's Caculator")输出欢迎信息初始化 LCD 然后执行 keyscan() 函数判断是否有按键输入,若有则读取按键,否则循环扫描,直到有按键按下。在获取 按键后,判断按键是否为数字,若是,则执行
18、cacul(a)函数,将获取的数字保存为数,然后执行LCD单个字符显示函数LCD_dsp_char(x,y,dat)。若按键不是数字,则判断是 否为操作符,若是,贝U执行LCD_dsp_char(x,y,dat)显示操作符,然后将flag标志位置 1,代表第一个操作数输入结束。若不是操作符,则判断是否为='若是,则执行函数 Caculator(x,y) 函数,计算结果,然后执行LCD_dsp_string(x,y,string)函数,将计算结果显示在屏幕上,然后执行 keyscan()函数,等待按下任意键,按下任意键后, 再次执行LCD初始化程序。若不是='则判断是否是第一次按
19、下清零键,若是,则显 示小数点,并再次调用keyscan()函数,获取下一个按键,若不是第一次按下,则再次 执行LCD初始化程序。主要功能子程序设计LCD显示子程序返回图LCD显示子程序流程图如图所示,当主程序调用了 LCD显示程序后,首先判断LCD是否处于忙碌状态,若 是,则等待,若不是,则开始设置显示位置,然后判断显示的是单个字符还是字符串, 分别实现对单个字符的输出以及对字符串的输出。 之所以对单字符和字符串设置不同的 显示函数,是为了实现程序对单片机资源的最优利用,因为单字符只占据一个字节的存储区,而字符串则至少占用两个字节。在显示完成后,返回主程序,继续执行下一步LCD的显示程序中主
20、要的部份为LCD显示位置的设置以及LCD显示数据的输出。为 此,我编写了 LCD显示位置设置函数,以及LCD显示函数,如下。LCD显示位置设置函数:1. voidLCD_set_xy(nSg收操作数开始char示信息键返回按键值DDDDDDDDa=a*输出错误提输出计算+bD EV“是否检测到按elcone!k Caculator(LM016LS RW01234567REDDDDDDDDcharLCD1LM016L7d6d5d4d3d2d1DODE WR SREtvDDVssv5 WR4 SRLCD1LM016LLCD1LM016L9999+1= ER WE DDDDDDDD=VLCD1LM0
21、16L1.25*352.7=449-875DES w01 2345 67V vR FEDD DDDDDDP03P02P01POOA789n三C 123DONd 0卜+1234RP2RESPACK-8+5VA1234567890i234567DDDDDDDD«#in clude<>#in clude<>#in clude<>un sig ned char n;float idata a,b;xsd=1;#in clude<>/读写控制输入端/读写控制端/指令、数据选择端/LCD内部忙标志/延时函数sbit lcde n=P2A7;sbit
22、 rw=P2A6;sbit rs=P2A5;sbit busy=P0A7;void delay (un sig ned int m)un sig ned int n;for(n=0;n<=m;n+);void check()/ 判断 LCD是否忙碌doP0=0xff;rs=0;rw=1;lcden=0;delay(100);lcden=1;while(busy=1);/ 当 busy=1,即 LCD忙时,等待 void write_com(unsigned char com) /写显示命令P0=com;rs=0;rw=0;lcden=0;check();lcden=1;void writ
23、e_data(unsigned char date) / P0=date;rs=1;rw=0;lcden=0;check();lcden=1;void init()write_com(0x38);write_com(0x0c);write_com(0x06);写显示数据write_com(0x80);write_com(0x01);void LCD_set_xy( unsigned char x, unsigned char y )/ 初始化 LCD16x2行显示,5x7点阵,8位数据接口/ 开显示,光标不显示、不闪烁/ 光标自增,画面不动/ 选择第一行/ 清屏设置LCD显示的位置unsign
24、ed char address;if (y = 0)/y=0 为第一行address = 0x80 + x;/x=0 为一行的第一个else/ 第二行address =0xc0+ x;write_com(address);/ 设置数据指针位置void LCD_dsp_char( unsigned x,unsigned char y,unsigned char dat) / 单个字符显示函数LCD_set_xy( x, y );/ 设置显示位置write_data(dat);/ 写入待显示数据void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s)/ 字符串显示函数LCD_set_xy( X, Y );while (*s)出单个字符/ 当字符串未到达结尾 ( '0' )时,循环输write_data(*s);s +;/指向下一个字符3#include<>/ 外部延时函数声明/ 外部变量声明extern void delay(int ms);extern unsigned char n;void key_scan(void)unsigned char temp;P1=0xfe;if(P1!=0xfe)d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产科医生多点执业管理方案
- 市场开发顾问行业趋势分析报告
- 2023年兰州市遴选公务员考试真题汇编及答案解析(夺冠)
- 2023年喀什地区税务系统遴选笔试真题汇编附答案解析(夺冠)
- 2023年克拉玛依市选调公务员笔试真题汇编附答案解析
- 2023年山西省直遴选考试真题汇编含答案解析(夺冠)
- 2025北京交响乐团第二次招聘3人备考题库附答案解析
- 2025北京大学计算机学院招聘劳动合同制人员2人考试参考题库附答案解析
- 2023年城口县直机关遴选公务员考试真题汇编带答案解析
- 2023年云南省遴选公务员考试真题汇编附答案解析
- 2025广东广州市海珠区社区专职工作人员招聘48人备考题库及答案详解(历年真题)
- 2025年担保机构面试题库及答案
- 十五五蓝图照进青春现实+课件-2025-2026学年高二上学期二十届四中全会精神主题团课
- TCECS 1460-2023 零碳建筑及社区技术规程
- 天然气安全技术说明书
- (市政工程)监理质量评估报告范本
- 场站收据模板(共2页)
- 箱涵全套结构计算表格EXCEL版(包含计算书只需输入数据)
- 第十一章油菜种子生产技术
- 陕西省城镇基准地价更新实施方案陕西省城镇基准地价
- 五年级语文上册文言文阅读与理解全集
评论
0/150
提交评论