




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 一、前言一、前言2 二、总体设计方案二、总体设计方案3 2.12.1 方案论证方案论证 3 3 2.22.2 方案比较及选择方案比较及选择 4 4 三、单元模块设计三、单元模块设计6 6 3.13.1 电压调节电路电压调节电路 6 6 3.23.2 LM317LM317 标准电路标准电路6 6 3.3 数数码码管管显显示示电电路路.7 3.4 ST89C52 最小系最小系统统 8 四、四、实验实验程序程序.10 4.1 延延时时模模块块10 4.2 键盘扫键盘扫描描10 4.3 数数码码管管显显示程序示程序.11 4.4 利用按利用按键调节输键调节输出出电压值电压值程序程序12 五、硬件调试五、硬件调试16 六、心得体会六、心得体会1717 七、参考文献七、参考文献1818 八、附录八、附录19 一、前言一、前言 随着现代科技的不断进步,高质量的生活无疑是人们追求的目标之一,如 今这个世界已近进入数字化的时代。数字化的产品也层出不穷,它已经深深的 融入人们的日常生活、工作和学习当中。它所给人带来的方便也是不可否定的, 而且它让我们的生活更加简单,所以人们对数字化的电子产品要求与需要都不 断提高。要为现代人工作、科研、生活、提供更好的更方便的设施就需要一切 向着数字化控制,智能化控制方向发展。 其中基于单片机的电子计算器就是一个典型的例子,它是以单片机为控制 核心的智能仪器并且在各行各业中应用越来越广泛。基于单片机控制的电子计 算器具有体积小、功能强、精确度高等优点。 二、总体设计方案二、总体设计方案 2.12.1 方案论证方案论证 方案一:方案一: 此方案采用 8051、4X4 键盘、74LS373、6264、液晶显示器 LCD1602 组成。 其中 74LS373 是地址锁存器,它实质是一个是带三态缓冲输出的 8D 触发器, 在单片机系统中为了扩展外部存储器,通常需要一块 74ls373 芯片。6264 是 8K*8 位静态随机存储器芯片,采用 CMOS 工艺制造,单一+5V 供电,额定功耗 200mW,典型存取时间 200ns,28 线双列直插式封装.方框图如图 1 所示。 626474LS373 8051Lcd16024X6 键盘 图图 1 1 原理方框图原理方框图 方案二:方案二: 此方案采用 4X4 键盘、STC89C52、数码管组成。在该方案中我们利用 ADC0832 将模拟信号转化为数字信号并与数码管相连将相应的电压值显示出 来。方框图如图 2 所示。 STC89C524X4 键盘数码管 图图 2 2 原理方框图原理方框图 方案三:方案三: 此方案采用 PS2 键盘、STC89C52、LCD1602 组成。方案三利用 PS2 键盘 作为数字以及符号的输入,并通过单片机来控运算的过程,计算的过程以及结 果由 LCD1602 显示出来。方框图如图 3 所示。 STC89C52 PS2 键盘 LCD1602 图图 3 3 原理方框图原理方框图 2.22.2 方案比较及选择方案比较及选择 方案一由于用了 4X6 键盘所以外加了地址锁存器,6264 采用的是 5V 的电源。电路连接比较复杂。因而不采用一方案。 方案二虽然可以利用 4X4 键盘来实现电路中必要数字符号的的输入,从而 来达到计算的目的,且实验电路简单,但数码管的显示功能不强,显示的数字 位数有限。因此不宜选择方案二。 方案三,电路原理简单,成本低,方案简单易行,固选用方案三。 三、单元模块设计三、单元模块设计 3.1 液晶液晶显显示示电电路路 1602 可以显示 2 行、每行显示 16 个 ASCII 字符,并且可以自定义图形,只 需要写入相对应字符的 ASCII 码就可以显示,使用上相对数码管更能显示丰富 的信息,我们主要通过 1602 的显示程序来学习一下如何看时序图。 下面是 1602 各引脚的功能,具体不同厂家生产的引脚可能不一样,大家使 用前要注意看厂家提供的资料。 图一 D0D7 端为 8 位数据口,进行数据传送,而 RS、R/W、E 端则配合 可以做出不同的操作,对 1602 进行操作主要有四种,如下: 1、读状态,输入:RSL,RWH,EH。输出:D0D7状态字 2、写指令,输入:RSL,RWL,D0D7指令,E高脉冲。输 出:无 3、读数据,输入:RSH,RWH,EH。输出:D0D7数据 4、写数据,输入:RSH,RWL,D0D7数据,E高脉冲。输 出:无 从以上可以看出,如果想对 1602 进行何种操作,只要按其相对应的 操作规程来做即可。 虽然以上有四种操作,但实际上归类起来只有二种,一种读一种写。 好了,我们接着看看,进行读与写时时序图: 这张图初学者看起来可能有点晕,其实我们只要关注的地方是中间 的 Valid Data 即有效数据区,我们进行读或写,无非都是想进行数据的 传送,在时序图中,为了看起来更清楚些,我们画上两根红色,大家注 意这个位置各个引脚的状态,先看读操作时序。 在进行读操作的时候,RW 置于 1,RS 则根据读的内容(状态或数据) 置为 1 或 0,注意看图中的 A 和 B 两根红线,在 A 位置,E 置为 1,经过 td 时间后,可以在数据口读到正确的数据,由于 td 的时间极短(ns 级) ,我们的单片机操作一般是 us 级,所以可以不考虑这个时间差,在将 E 置为 1 之后,就可以紧跟着指令去读取数据,在读到数据后,再将 E 置 为 0,经过 THD2 时间后,数据口上的数据失效。 在进行写操作的时候,RW 要置为 0,RS 根据写的内容不同(指令或 数据)置为 1 或 0,同时,大家注意 C 和 D 两根红线,我们在将 E 置为 1 之前,要先将数据送到数据口上,然后,在 C 位置,将 E 置为 1,经过 tPW 延时后,再将 E 置为 0,在这个时间段内必须保证数据口上的数据稳 定不变,为有效的数据。同理,由于 tPW 这些延时相对较短(ns 级), 所以在单片里也不必考虑延时问题。 我们下面来看看,程序上如何做到。我们看下面两个子程序, Read1602()用于读取 1602 的状态(读数据比较少用,这里不写了,大家 自己改改就可以),并且将状态判断也写在这个子函数里面。 Write1602()用于写入数据到 1602 里面,写指令、数据共用一个函数。 大家对照图二的时序图看看是否一致。 为了防止读忙状态里陷入死循环,在 Read1602()函数里加入一个循 环变量 i,在读状态时,数据线最高位是由 1602 内部拉为低电平的(表 示空闲),当器件发生问题或者 1602 没有接好时,程序就会在这里等待, 所以,加入一定时间限制是有必要的。 以上是两个基本的函数,在使用 1602 之前,必须对其进行初始化操 作,初始化过程是往 1602 固定写入一定的指令,里面包括指定使用模式、 清屏等等,各种指令的含义我们在课程后附上详细说明,来看下面的程 序(mDelay 函数和以前课程一样)。 有了以上三个函数,我们就可以把 1602 控制起来了。在 1602 上,分 为二行,每行有 16 个字符位置,如何来在我们需要的位置上显示出对应 的字符呢?我们先来看看这两行对应的地址是什么。 上图是 1602 显示 RAM 缓冲区对应的地址,要在对应的位置显示出字 符,首先要写入一个设置数据地址的指令码(80H地址),然后紧跟着 写入要显示的数据即可。应用我们上面的 Write1602()指令,执行下面 二条指令。 写指令:Write1602(0x80+地址,0) 写数据:Write1602(字符 ASCII 码,1) 为了更直观的应用,我们编写下面两个函数,使用起来就更方便了。 WrByt e1602()用于在固定位置写入一个字符,一次只能写一个,WrString1602()则是 用来整行写入字符串的,一次只能写一行,字符串需要先定义好。 这样,我们基本上就掌握了 1602 的控制显示了,另外还有自定义图形的应 用,一些扩展指令的使用,大家可以看看详细的技术资料,自己尝试,这里不 再逐一说明。 这一课程到此结束,这课没有提供完整的程序,只有几个子函数,相信大 家经过这么多课的学习,自己编写一下应该不难了,大家实际试试,作为课后 作业。 3.2 ST89C52 最小系最小系统统 STC89C52 系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的 单片机,指令代码完全兼容传统 8052 单片机,12 时钟/其周期和 6 时钟/机器周 期可任意选择,最新的 D 版本内部集成 MAX810 专用复位电路。选用 STC85C52 单片机的理由:降低成本,提升性能,原有程序直接使用,硬件无 须改动,所以此次试验选择此款单片机。STC89C52 芯片引脚图如图 7 所示。 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C52 图图 7 STC89C52 芯片引脚图芯片引脚图 四、四、实验实验程序程序 4.1 延延时时模模块块 该延时函数利用两个 for 循环来实现。 void delay(uint n) uchar m; for(;n0;n-) for(m=0;m100;m+) ; /送液晶屏显示子程序/ void display(uchar C) switch(C) case 0: clear(); break; case 1: prodis(); alldatacursor=0; wrdata(0); break; case 2: /*显示等号结果*/ prodis(); wrdata(=); / kind=kind+10; position2=cursor; datajs(); remove0(); data3dis(); break; case 3: prodis(); kind=kind+1; /加法运算, kind=1 position1=cursor; wrdata(+); break; case 4: prodis(); alldatacursor=1; wrdata(1); break; case 5: prodis(); alldatacursor=2; wrdata(2); break; case 6: prodis(); alldatacursor=3; wrdata(3); break; case 7: prodis(); kind=kind+2; /减法运算, kind=5 position1=cursor; wrdata(-); break; case 8: prodis(); alldatacursor=4; wrdata(4); break; case 9: prodis(); alldatacursor=5; wrdata(5); break; case 10: prodis(); alldatacursor=6; wrdata(6); break; case 11: prodis(); kind=kind+3; /乘法运算, kind=25 position1=cursor; wrdata(*); break; case 12: prodis(); alldatacursor=7; wrdata(7); break; case 13: prodis(); alldatacursor=8; wrdata(8); break; case 14: prodis(); alldatacursor=9; wrdata(9); break; case 15: prodis(); kind=kind+4; /除法运算, kind=125 position1=cursor; wrdata(/); break; default: break; 五、软硬件调试五、软硬件调试 六、心得体会六、心得体会 首先感谢学院领导给予我们比赛的机会,让我们能够利用空余的时间认识 自我,充实自已,完善自我!其次特别感谢李涛老师,还有各位师兄的耐心指 导。通过本次培训我们真的获益良多! 在本次设计过程中,我们对单片机都有了初步的了解、认识与应用。总的 来说,这次课程设计让我受益匪浅,我深切体会到综合设计的重要性,它使我 们能将所学知识系统化,掌握它们的用途和使用方法,并且联系理论和实践, 更有助于我们吸
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年抗辐射光学石英玻璃合作协议书
- 2025年山梨酸及山梨酸钾合作协议书
- 2025年冷芯盒树脂项目建议书
- 家庭宠物寄养与托管服务协议
- 履行合同能力保证书
- 房地产中秋晚会活动策划方案
- 电子行业智能制造与工业自动化方案
- 公司之间战略合作协议书
- 营销推广战略合作协议修订案
- 施工现场的应急响应计划试题及答案
- 天津市各级医疗机构收费标准目录doc-天津市各级医疗机构
- 人民币教具正反面完美打印版
- 国际投标条款
- 6.1 根结、标本的上下关系
- GB/T 3301-1999日用陶瓷的容积、口径误差、高度误差、重量误差、缺陷尺寸的测定方法
- GB/T 13928-2002微型往复活塞空气压缩机
- GB/T 12224-2005钢制阀门一般要求
- 偷影子的人-大学语文PPT
- GB/T 11022-2020高压交流开关设备和控制设备标准的共用技术要求
- GB 4789.3-2016食品安全国家标准食品微生物学检验大肠菌群计数
- 装饰窗帘安装内部验收单
评论
0/150
提交评论