ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:312.97KB ,
资源ID:15604464      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15604464.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(均值计算器绝对准确.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

均值计算器绝对准确.docx

1、均值计算器绝对准确信息与电气工程学院课程设计说明书(2013/2014 学年第 二 学期)课程名称 : 单片机应用课程设计 题 目 : 求均值计算器的设计 专业班级 : 电气工程及其自动化1104班 学生姓名 : 韩超 学 号: 110060427 指导教师 : 刘增环、岑毅南、高敬格等 设计周数 : 2周 设计成绩 : 2014年 6月 26日目 录一、课程设计目的二、课程设计正文2.1、设计所需器材2.2、设计任务和要求2.3、设计方案2.3.1、硬件设计1.STC90C52AD说明2.数码管说明3.晶体振荡电路设计4.数码管和位选设计5.复位设计6.矩阵键盘设计2.3.2、软件设计1.主

2、程序流程图2.显示程序流程图3.按键扫描程序流程图4.系统程序2.3.3、软硬件调试三、课程设计总结四、心得体会五、参考文献 附录一、系统原理图 附录二、系统PCB图 附录三、系统仿真图一、课程设计目的1进一步熟悉和掌握单片机的结构及工作原理。2掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。4通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。二、课程设计正文2.1 设计所需器材电阻:330k(7个),1k

3、(3个)按键开关:SW-PB(12个)单片机最小系统(1个)三极管:9012PNP型(3个)数码管:共阳型(2个)底座:DIP40(1个)、DIP20(1个)万能电路板:1个DB9针形座:1个排线、电源接线若干2.2 设计任务和要求本次课程设计,我们要求做的是求均值计算器。设计的主要内容是采用STC90C52AD作为控制单元,实现计算器设计。原始数据及主要任务:设计一个以STC90C52AD 单片机为核心的求均值计算器系统。能够进行10以内的多个数字求平均值运算,且具备清零功能。10个数字键,2个功能键。最后求出的均值小数点保留1位显示。主要任务:(1)确定总体设计方案;(2)3位数码管显示电

4、路设计,3*4按键电路设计;(3)设计硬件电路原理图和PCB图,绘制软件程序流程图,编写程序;(4)软硬件联机调试。技术要求:以STC90C52AD单片机为核心,使用P1 .0 -P1.6接3*4矩阵按键; P0.0、P0.1、P0.2用作数码管位选通端口,P2.7控制数码管DP段。P2.0-P2.6接数码管的a,b,c,d,e,f,g。2.3设计方案求均值计算器的主要的部分是STC90C52AD,使用合适的I/O口接3*4矩阵按键及数码管驱动端口,通过行扫描法对矩阵键盘进行扫描,确定是哪一个按键按下,然后单片机实现相应的计算,由对应的段选点亮LED数码管显示计算结果。2.3.1硬件设计1.S

5、TC90C52AD说明AT89C51的引说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,些引脚应接地。XTAL2 :接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。RST :STC90C52AD的复位信号输入引脚,高电位工作,当要对芯片又时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。P0口(P0.0P0.7)是一个8

6、位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO口用。P0口每一个引脚可以推动8个LSTTL负载。P2口(P2.0P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。外部不扩展而单片应用时,则作一般双向IO口用。每一个引脚可以推动4个LSTL负载。P1口(P1.0P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。仅供用户作为输入输出用的端口。P3口(P3.0P3.7)口是具有内部提升电路的双向I/0端口(准双

7、向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。2.共阳数码管LED显示器由8段发光二极管组成,排列成8字形状,称为8段LED显示器,器件各引脚如图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。均值计算器用到的数字09的共阴极字形代码如下表:显示字符0123456789共阳极段码C0HF9HA4HB0H99H92H82HF8H80H90H3.晶体振荡电路设计图2.3-2 晶体振荡电路采用6MHZ的晶振,接在芯片的18,1

8、9引脚上。在复位端口加低电平。4.数码管和位选设计图2.3-3 数码管和位选电路需要显示数值选用共阳极的数码管是三极管驱动,接有1k欧姆的保护电阻而成的两个数码管在显示时需要选通,采用STC90C52AD的P0.1和P0.2口作为位选信号的输出端,低电平有效。5. 复位设计复位键直接加在单片机的复位端,当按键RST被按下时,系统复位。6.矩阵键盘的设计矩阵键盘开关接在P1口上,P1.0P1.7,按键按下后相应的按键由高电平变为低电平,P1.0P1.3为列。2.3.2软件设计1.主程序设计先将参数初始化,使数码管显示零,然后键盘行扫描,当扫描的键值为0到9时,数码管显示按下的键值,并且将按下的键

9、值累加,存储在一个变量中;当扫描的键值为11时,单片机程序实现求均值功能,数码管显示均值结果;当扫描到的键值是10时,将数码管重新清零。键盘重复扫描,计算器实现重复工作。2.显示程序设计当扫描程序返回的值为0到9并且按下开关的次数小于10次时,右边的数码管选通显示按下的开关对应的数值;当按下开关的次数大于10时,右边的数码管选通并都显示零;当扫描程序返回的值为10时,两个数码管都选通且都显示零;当扫描程序返回的值为11时,左边数码管小数点亮,左边数码管显示个位数,右边数码管显示第一位小数。3.按键扫描程序设计逐次列扫描,第一列扫描时P1.0置低电平,然后P1.4到P1.6口依次置低电平,这样能

10、够依次扫描出0、1、2开关,第二列和第三列扫描情况同上。4.系统程序#include#define uchar unsigned char#define uint unsigned intuint num,temp,s1,s2,s3,count,ge,yu;uchar code table=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-) ;void disp

11、lay(uchar ge uchar yu) P2=tablege; P0=0xfd; Delay (5); P2=table yu; P0=0xfb; Delay(5);void main() s1=0; s2=0; s3=0; count=0; while(1) P1=0xfe; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xee:s1=0; break; case 0xde:s1=1;

12、break; case 0xbe:s1=2; break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; count+; s3=s1*10; s2=s2+s3; P1=0xfd; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xed:s1=3; break; case 0xdd:s1=4; break; case 0xbd:s1=5; break; whi

13、le(temp!=0xf0) temp=P1; temp=temp&0xf0; count+; s3=s1*10; s2=s2+s3; P1=0xfb; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xeb:s1=6; break; case 0xdb:s1=7; break; case 0xbb:s1=8; break; while(temp!=0xf0) temp=P1; temp=temp

14、&0xf0; count+; s3=s1*10; s2=s2+s3; P1=0xf7; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(5); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xe7:s1=9; count+; s3=s1*10; s2=s2+s3; break; case 0xd7:s1=0,s2=0,count=0; break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; shi=s2/c

15、ount/100; ge=s2/count%100/10; yu=s2/count%100%10; display(ge, yu); 2.3.3、软硬件调试系统调试:根据系统设计方案,本系统的调试共分为两大部分:硬件调试,软件调试。(1)硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。首先用数字万用表对实物板上的各元器件进行测试,在测试过程中,检验出一些错误,例如,数码管的a-g端所对应的引脚是哪一位,正确焊接电路。(2)软件调试软件调试采用单片机仿真器keil uVision及protus,将编好的程序进行调试,首先主要是检查语法错误。再进行仿真,检验各个子程序是否正确执

16、行,和硬件模块的协调性。由于能力有限,程序中仍然存在很多错误,不能显示均值结果,经过大家互相讨论和别的同学的指点,最终能够正常显示出平均值。三、课程设计总结我们课程设计的题目是“求均值计算器”,看似简单,题目要求也不多,但是真正着手时才发现无从下手,虽然有两星期的时间,但是感觉非常的紧迫。究其原因是平时学习生活中,对单片机等理论知识不够精通,而且很多东西仅凭书本上的介绍根本没有办法实现。我们组有四个成员,令人欣慰的是,经过我们不懈的努力,课程设计取得一定的成果。我们是第一次遇到关于单片机这样的设计题目,通过亲身经历课程设计的全过程,我们感觉在单片机领域,我们认识到的还远远不够,还有很多知识需要

17、学习掌握,当我们通过自己的努力取得成果时,一种心理上的自豪感和成就感油然而生。而且,在课程设计过程中,我们认识到了团队协作的重要性,大家分工合作,感觉很充实。在查阅资料的过程中我还了解到了单片机的巨大应用市场,认识到其重要性。我想在以后的日子里,这个过程会成为我人生的美好而难忘的回忆,汗水是我们努力的过程,更是成功的使者。最后,我真心的感谢所有帮助过的同学们,还有实验室为大家不辞辛劳的各位老师!希望这样的课程设计能够继续下去,帮助更多的学生锻炼动手动脑的实践能力。四心得体会三人一组的为期两周的单片机课程设计,虽然时间短,但是增强了动手能力,把课本知识与实践相结合,理论联系实际。同时也从这次课设

18、中受益匪浅,感触最深的是,动手之前一定要清晰的设计思路,并且千万记得先检查电子器件的好坏,否则前功尽弃,比如我们组在焊接电路板是没有检查电路板的完好与连通性,电路板上的P1.0所在的连通的线路并没有导通,使得所焊接的键盘的第一列扫描不上而出现乱码;除此之外,还要在上电前,检查线路端口的极性,以免烧坏器件等问题。实际和理论是有一定差距的五.参考文献1张毅刚.单片机原理及应用.高等教育出版社,20032苏家键等.单片机原理及应用技术.北京:高等教育出版社,20043钟睿.MCS-51 单片机原理及应用开发技术.北京:中国铁道出版社,20064蓝清华等.单片机应用教程.北京:清华大学出版社,19995范蟠果.工控单片机原理及应用.北京:清华大学出版社,2007附录一、系统原理图附录二、PCB图附录三、仿真图附释(在仿真图中我们运用了CD4511共阴极数码管驱动芯片,但在实际中我们却只用了共阳极数码管,时间仓促,没来得及修改,原因只是单片机最小系统上引脚覆铜存在断路,P3口无法实现动态显示的位扫描,主题原因不详,过多的耽误了时间)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2