均值计算器绝对准确.docx
- 文档编号:27892675
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:17
- 大小:312.97KB
均值计算器绝对准确.docx
《均值计算器绝对准确.docx》由会员分享,可在线阅读,更多相关《均值计算器绝对准确.docx(17页珍藏版)》请在冰豆网上搜索。
均值计算器绝对准确
信息与电气工程学院
课程设计说明书
(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.显示程序流程图„„„„„„„„„„„„„
3.按键扫描程序流程图„„„„„„„„„„„„„„„„
4.系统程序„„„„„„„„„„„„„„„„„„
2.3.3、软硬件调试„„„„„„„„„„„„„„„„„„
三、课程设计总结„„„„„„„„„„„„„„„„„„„„„„„
四、心得体会„„„„„„„„„„„„„„„„„„„„„„„
五、参考文献„„„„„„„„„„„„„„„„„„„„„„„„„
附录一、系统原理图„„„„„„„„„„„„„„„„„„„„„„
附录二、系统PCB图„„„„„„„„„„„„„„„„„„„„„„
附录三、系统仿真图„„„„„„„„„„„„„„„„„„„„„„
一、课程设计目的
1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、课程设计正文
2.1设计所需器材
电阻:
330k(7个),1k(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位数码管显示电路设计,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.STC90C52AD说明
AT89C51的引说明和功能说明如下:
XTAL1:
接外部晶振的一个引脚。
在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。
它采用外部振荡器时,些引脚应接地。
XTAL2:
接外部晶振的一个引脚。
在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。
当采用外部振荡器时,则此引脚接外部振荡信号的输入。
RST:
STC90C52AD的复位信号输入引脚,高电位工作,当要对芯片又时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。
P0口(P0.0~P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。
外部不扩展而单片应用时,则作一般双向I/O口用。
P0口每一个引脚可以推动8个LSTTL负载。
P2口(P2.0~P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。
外部不扩展而单片应用时,则作一般双向I/O口用。
每一个引脚可以推动4个LSTL负载。
P1口(P1.0~P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。
仅供用户作为输入输出用的端口。
P3口(P3.0~P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。
2.共阳数码管
LED显示器由8段发光二极管组成,排列成8字形状,称为8段LED显示器,器件各引脚如图所示:
为了显示数字或符号,要为LED显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
均值计算器用到的数字0~9的共阴极字形代码如下表:
显示字符
0
1
2
3
4
5
6
7
8
9
共阳极段码
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
3.晶体振荡电路设计
图2.3-2晶体振荡电路
采用6MHZ的晶振,接在芯片的18,19引脚上。
在复位端口加低电平。
4.数码管和位选设计
图2.3-3数码管和位选电路
需要显示数值选用共阳极的数码管是三极管驱动,接有1k欧姆的保护电阻而成的两个数码管在显示时需要选通,采用STC90C52AD的P0.1和P0.2口作为位选信号的输出端,低电平有效。
5.复位设计
复位键直接加在单片机的复位端,当按键RST被按下时,系统复位。
6.矩阵键盘的设计
矩阵键盘
开关接在P1口上,P1.0~P1.7,按键按下后相应的按键由高电平变为低电平,P1.0~P1.3为列。
2.3.2软件设计
1.主程序设计
先将参数初始化,使数码管显示零,然后键盘行扫描,当扫描的键值为0到9时,数码管显示按下的键值,并且将按下的键值累加,存储在一个变量中;当扫描的键值为11时,单片机程序实现求均值功能,数码管显示均值结果;当扫描到的键值是10时,将数码管重新清零。
键盘重复扫描,计算器实现重复工作。
2.显示程序设计
当扫描程序返回的值为0到9并且按下开关的次数小于10次时,右边的数码管选通显示按下的开关对应的数值;当按下开关的次数大于10时,右边的数码管选通并都显示零;当扫描程序返回的值为10时,两个数码管都选通且都显示零;当扫描程序返回的值为11时,左边数码管小数点亮,左边数码管显示个位数,右边数码管显示第一位小数。
3.按键扫描程序设计
逐次列扫描,第一列扫描时P1.0置低电平,然后P1.4到P1.6口依次置低电平,这样能够依次扫描出0、1、2开关,第二列和第三列扫描情况同上。
4.系统程序
#include
#defineucharunsignedchar
#defineuintunsignedint
uintnum,temp,s1,s2,s3,count,ge,yu;
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
voiddisplay(uchargeucharyu)
{
P2=table[ge];
P0=0xfd;
Delay(5);
P2=table[yu];
P0=0xfb;
Delay(5);
}
voidmain()
{
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)
{
case0xee:
s1=0;
break;
case0xde:
s1=1;
break;
case0xbe:
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)
{
case0xed:
s1=3;
break;
case0xdd:
s1=4;
break;
case0xbd:
s1=5;
break;
}
while(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)
{
case0xeb:
s1=6;
break;
case0xdb:
s1=7;
break;
case0xbb:
s1=8;
break;
}
while(temp!
=0xf0)
{
temp=P1;
temp=temp&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)
{
case0xe7:
s1=9;
count++;
s3=s1*10;
s2=s2+s3;
break;
case0xd7:
s1=0,s2=0,count=0;
break;
}
while(temp!
=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
shi=s2/count/100;
ge=s2/count%100/10;
yu=s2/count%100%10;
display(ge,yu);
}
}
2.3.3、软硬件调试
系统调试:
根据系统设计方案,本系统的调试共分为两大部分:
硬件调试,软件调试。
(1)硬件调试
对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。
首先用数字万用表对实物板上的各元器件进行测试,在测试过程中,检验出一些错误,例如,数码管的a-g端所对应的引脚是哪一位,正确焊接电路。
(2)软件调试
软件调试采用单片机仿真器keiluVision及protus,将编好的程序进行调试,首先主要是检查语法错误。
再进行仿真,检验各个子程序是否正确执行,和硬件模块的协调性。
由于能力有限,程序中仍然存在很多错误,不能显示均值结果,经过大家互相讨论和别的同学的指点,最终能够正常显示出平均值。
三、课程设计总结
我们课程设计的题目是“求均值计算器”,看似简单,题目要求也不多,但是真正着手时才发现无从下手,虽然有两星期的时间,但是感觉非常的紧迫。
究其原因是平时学习生活中,对单片机等理论知识不够精通,而且很多东西仅凭书本上的介绍根本没有办法实现。
我们组有四个成员,令人欣慰的是,经过我们不懈的努力,课程设计取得一定的成果。
我们是第一次遇到关于单片机这样的设计题目,通过亲身经历课程设计的全过程,我们感觉在单片机领域,我们认识到的还远远不够,还有很多知识需要学习掌握,当我们通过自己的努力取得成果时,一种心理上的自豪感和成就感油然而生。
而且,在课程设计过程中,我们认识到了团队协作的重要性,大家分工合作,感觉很充实。
在查阅资料的过程中我还了解到了单片机的巨大应用市场,认识到其重要性。
我想在以后的日子里,这个过程会成为我人生的美好而难忘的回忆,汗水是我们努力的过程,更是成功的使者。
最后,我真心的感谢所有帮助过的同学们,还有实验室为大家不辞辛劳的各位老师!
希望这样的课程设计能够继续下去,帮助更多的学生锻炼动手动脑的实践能力。
四.心得体会
三人一组的为期两周的单片机课程设计,虽然时间短,但是增强了动手能力,把课本知识与实践相结合,理论联系实际。
同时也从这次课设中受益匪浅,感触最深的是,动手之前一定要清晰的设计思路,并且千万记得先检查电子器件的好坏,否则前功尽弃,比如我们组在焊接电路板是没有检查电路板的完好与连通性,电路板上的P1.0所在的连通的线路并没有导通,使得所焊接的键盘的第一列扫描不上而出现乱码;除此之外,还要在上电前,检查线路端口的极性,以免烧坏器件等问题。
实际和理论是有一定差距的
五.参考文献
[1]张毅刚.单片机原理及应用.高等教育出版社,2003
[2]苏家键等.单片机原理及应用技术.北京:
高等教育出版社,2004
[3]钟睿.MCS-51单片机原理及应用开发技术.北京:
中国铁道出版社,2006
[4]蓝清华等.单片机应用教程.北京:
清华大学出版社,1999
[5]范蟠果.工控单片机原理及应用.北京:
清华大学出版社,2007
附录一、系统原理图
附录二、PCB图
附录三、仿真图
附释(在仿真图中我们运用了CD4511共阴极数码管驱动芯片,但在实际中我们却只用了共阳极数码管,时间仓促,没来得及修改,原因只是单片机最小系统上引脚覆铜存在断路,P3口无法实现动态显示的位扫描,主题原因不详,过多的耽误了时间)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 均值 计算器 绝对 准确