




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、宁波理工学院 单片机原理与应用课程设计 (论文)题 目 基于C51单片机设计的简易计算器_ 姓 名 XXX 学 号 309040XXXX 专业班级 09通信工程3班 指导教师 李林功 分 院 信息科学与工程分院 完成日期 2012年5月20日 摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术,本文将介绍一种用单片机设计的计算器。这个计算器除了会加减乘除的运算功能以外,还具有连续运算的功能。当键入值或运算结果大于255时,它会自动清零,可以重新输入新值。正文中首先简单描述了硬件系统的工作原理,且附以硬件系统的设计框图,论述了本次毕业设计所应
2、用的各种硬件接口技术和各个接口模块的功能及工作过程, 并具体描述了外接电路接口的软、硬件调试。其次阐述了程序的流程和实现过程。本设计就是以单片机的基本语言汇编语言来进行软件设计,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。使硬件在软件的控制下协调运作。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。关键词: 计算器,单片机,AT89C51,汇编语言,模块化目 录摘要I第一章、设计要求与方案论证31.1设计要求:31.2 方案的比较与论证31.2.1单片机芯片的选择方案和论证:31.2.2 显示模块选择方案和论证:31.2.3 电路设计最终方案决定3第二
3、章、系统的硬件设计与实现52.1总体框图设计52.2 主要单元电路的设计52.2.2 单片机最小应用系统52.3 4X4键盘控制电路72.3.1 对矩阵式键盘的认识72.3.2 矩阵式键盘的按键识别方法82.4 LCD显示电路92.4.1显示模块的设计(详细资料)9第三章 系统软件设计(程序设计)183.1设计思路183.2 总体流程图19结论20附 录21致 谢227第一章、设计要求与方案论证1.1设计要求:为了满足一般计算器的要求,本设计要求可以实现进行基本的加减乘除运算,数据归零和错误提示。1.2 方案的比较与论证1.2.1单片机芯片的选择方案和论证:方案一: 采用89C51芯片作为硬件
4、核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能、CMOS、8位单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,而且与MCS-51系列单片机完全兼容。1.2.2 显示模块选择方案和论证:方案一: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示.方案二:采用LE
5、D数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,所以也不用此种作为显示。方案三: 采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,与普通数码管相比功耗较小,硬件连接简单。所以显示部分采用1602液晶。 1.2.3 电路设计最终方案决定综上各方案所述,对本次设计的方案选定为: 采用AT89C51作为主控制系统; 4X4矩阵键盘作为输入;1602液晶作为显示。第二章、系统的硬件设计与实现2.1总体框图设计1本设计里用到的单片机芯片是AT89C51芯片,除此之外还包括:晶振电路和复位电路构成单片机最小应用系统;24x4
6、矩阵键盘;3LCD显示电路。AT89C51最小应用系统晶振电路复位电路按键电路LCD显示图2.1总体设计框图2.2 主要单元电路的设计2.2.2 单片机最小应用系统单片机附属电路主要有晶体振荡电路和复位电路。一、晶体振荡电路晶体振荡器的作用:它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。 时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于单片机,时钟脉冲是基本的工作脉冲,它控制着单片机的工作节奏(使单片机的每一步都统一到它的步调上来)。显然,对同一种
7、机型的单片机,时钟频率越高,单片机的工作速度就越快。但是,由于不同的单片机的硬件电路和器件不完全相同,所以其需要的时钟频率范围也不相同。本设计晶振电路所选用的石英晶振频率为12MHZ。如图2.2所示:图2.2 晶振电路二、复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。单片机常用的复位电路如图2.4所示:图2.3 复位电路 图2.3为按键复位电路。该电路除具
8、有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R分压,在RESET端产生复位高电平。2.3 4X4键盘控制电路2.3.1 对矩阵式键盘的认识矩阵式键盘的结构与工作原理:在键盘中的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图2.5所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,只需要单片机的一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比
9、较多时,采用矩阵法来做键盘比较是合理的。由于本系统按键较多,在这里采用矩阵式4*4键盘,这样可以合理应用硬件资源,用一个8位I/O口控制, 如图2.5所示:图2.5 按键电路矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,图2.5中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。一旦有键按下,则输入线就会被拉低,行线输出是低电平。这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如2.3.2所述。2.3.2 矩阵式键盘的按键识别方法 为了确定矩阵式键盘上
10、何键被按下,我们采用一种“扫描法”。扫描法 :扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。以图2.5所示键盘电路为例,介绍过程如下:1.判断键盘中有无键按下 将全部行线X0-X3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。2.判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它行线为高电平。在确定某根行线为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为
11、低电平的行线交叉处的按键就是闭合的按键。如图2.5所示。AT89C51单片机的P1口用作键盘I/O口,键盘的列线接到P1口的高4位,键盘的行线接到P1口的低4位。列线P14-P17分别接有4个上拉电阻到正电源+5V,并把行线P10-P13设置为输出线,列线P14-P17设置为输入线。4根行线和4根列线形成16个相交点。1.检测当前是否有键被按下。检测的方法是P10-P13输出全“0”,读取P14-P17的状态,若P14-P17为全“1”,则无键闭合,否则有键闭合。2.去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。3.若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进
12、行扫描。P10-P13按下述4种组合依次输出:P13 1 1 1 0P12 1 1 0 1P11 1 0 1 1P10 0 1 1 1在每组行输出时读取P14-P17,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。4.为了保证键每闭合一次CPU仅作一次处理,必须消除键释放时的抖动。 2.4 LCD显示电路2.4.1显示模块的设计(详细资料)1. 1602介绍 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以
13、长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图- 4:图- 4 1602字符型液晶显示器实物图2. 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图-5所示:图-5 1602LCD尺寸图1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明:编号
14、符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表-3:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作
15、,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3. 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表-4所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标
16、或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表-4:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 屏幕上所有文字是否左
17、移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平
18、表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无表-5:基本操作时序表读写操作时序如图- 6和图-7所示:图-6 读操作时序图-7 写操作时序4 .1602LCD的RAM地址映射及标准字库表 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模 块的忙标志
19、为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图-8是1602的内部显示地址。图-8 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部
20、的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”图-9字符代码与图形对应图5. 1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置LCD电路第三章 系统软件设计(程序设计)3.1设计思路1显示子程序,当键入一个数值或符号时显示程序要把这个键入的值给显示出来。经过运算在按下等号之后显示出此次运算的结果。2按键程序,当一个键盘按下的时候,经过按键程序要判断,如果是数字键就要转向显示子程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国幼儿教育试题及答案
- 村办产业面试题目及答案
- 爱情著名测试题及答案
- 单位应聘笔试试题及答案
- 产品测量考试题库及答案
- 分析纺织行业中的技术变革对考试的作用试题及答案
- 安徽中专考试题库及答案
- 2024广告设计师创意策划试题及答案
- 2024年美术设计师考试内容要点总结试题及答案
- 2024年纺织品检验员考试技能要求试题及答案
- 药事管理与法规智慧树知到答案2024年石河子卫生学校
- 人工智能训练师理论知识考核要素细目表五级
- 2024年贵州省中考理科综合试卷(含答案)
- 110kV变电站专项电气试验及调试方案
- DL-T901-2017火力发电厂烟囱(烟道)防腐蚀材料
- 篮球智慧树知到期末考试答案章节答案2024年浙江大学
- GB/T 3428-2024架空导线用镀锌钢线
- ISO 15609-1 金属材料焊接工艺规程及评定-焊接工艺规范中文版
- MOOC 英语语法与写作-暨南大学 中国大学慕课答案
- 2024年山东省济南市历下区中考二模地理试题
- 电子书 -《商业的底层逻辑》
评论
0/150
提交评论