




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息与电气工程学院课程设计说明书(2011/2012学年第二学期)课程名称 : 单片机应用课程设计 题 目 : 求均值计算器 专业班级 : 学生姓名 : 学 号: 指导教师 : 设计周数 : 两 周 设计成绩 : 2012 年 6月 21日目 录一、课程设计目的二、课程设计正文2.1、设计所需器材2.2、设计任务和要求2.3、设计方案2.3.1、硬件设计1.STC90C52AD说明2.数码管说明 3.晶体振荡电路设计4.CD4511驱动电路设计5.数码管和位选设计6.复位设计7.矩阵键盘设计2.3.2、软件设计1.主程序流程图2.显示程序流程图3.按键扫描程序流程图4.系统程序2.3.3、软硬
2、件调试三、课程设计总结四、参考文献附录一、系统原理图附录二、系统PCB图附录三、课程设计评语及成绩 一、课程设计目的1进一步熟悉和掌握单片机的结构及工作原理。2掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。 4通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。二、课程设计正文2.1 设计所需器材电阻:470(7个)、1.2k(3个)、10k(7个)按键开关:SW-PB(12个)单片机最小系统(1个)CD4
3、511:(1个)三极管:NPN型(3个)数码管:共阴型(3个)底座:DIP40(1个)、DIP20(1个)万能电路板:1个DB9针形座:1个排线、电源接线若干2.2 设计任务和要求本次课程设计,我们要求做的是求均值计算器。设计的主要内容是采用STC90C52AD作为控制单元,实现计算器设计。原始数据及主要任务:设计一个以STC90C52AD 单片机为核心的求均值计算器系统。能够进行10以内的多个数字求平均值运算,且具备清零功能。10个数字键,2个功能键。最后求出的均值小数点保留1位显示。主要任务:(1)确定总体设计方案;(2)3位数码管显示电路设计,3*4按键电路设计;(3)设计硬件电路原理图
4、和PCB图,绘制软件程序流程图,编写程序;(4)软硬件联机调试。技术要求:以STC90C52AD单片机为核心,使用P1 0 P16接3*4矩阵按键;P30、P31、P34、P35用作数码管驱动CD4511接口,P20、P21、P22用作数码管位选通端口,P23控制数码管DP段。2.3设计方案求均值计算器的主要的部分是STC90C52AD,使用合适的I/O口接3*4矩阵按键及数码管驱动端口,通过行扫描法对矩阵键盘进行扫描,确定是哪一个按键按下,然后单片机实现相应的计算,再由CD4511驱动数码管显示计算结果。2.3.1硬件设计1.STC90C52AD说明AT89C51的引说明和功能说明如下:XT
5、AL1 :接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,些引脚应接地。 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端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外
7、部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。2. 共阴数码管LED显示器由8段发光二极管组成,排列成8字形状,称为8段LED显示器,器件各引脚如图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。均值计算器用到的数字09的共阴极字形代码如下表:显示字符0123456789段码3FH06H5BH4FH66H6DH7DH07H7FH6FH3. 晶体振荡电路设计图2.3-2 晶体振荡电路采用6MHZ的晶振,接在芯片的18,19引脚上。在复位端口加低电平。4、CD4511驱动电路
8、设计 CD4511的7个输出端口通过限流470欧姆电阻接数码管,通过分析得出,P3口、输入段DCBA值与数码管显示数值之间对应关系为: cc00000,cd00011,ce00102,cf00113,dc01004,dd01015,de01106,df01117,ec10008,ed10019。5.数码管和位选设计图2.3-3 数码管和位选电路需要显示数值选用共阴极的数码管是三极管驱动,接有1k欧姆的保护电阻而成的两个数码管在显示时需要选通,采用STC90C52AD的P20和P21口作为位选信号的输出端,高电平有效。数码管的段码由CD4511提供。6. 复位设计复位键直接加在单片机的复位端,当
9、按键RST被按下时,系统复位。图2.3-4 复位电路7.矩阵键盘的设计图2.3-6 矩阵键盘开关接在P1口上,P1.0P1.7,按键按下后相应的按键由高电平变为低电平,P1.0P1.3为列。2.3.2软件设计1.主程序设计先将参数初始化,使数码管显示零,然后键盘行扫描,当扫描的键值为0到9时,数码管显示按下的键值,并且将按下的键值累加,存储在一个变量中;当扫描的键值为11时,单片机程序实现求均值功能,数码管显示均值结果;当扫描到的键值是10时,将数码管重新清零。键盘重复扫描,计算器实现重复工作。2.显示程序设计 当扫描程序返回的值为0到9并且按下开关的次数小于10次时,右边的数码管选通显示按下
10、的开关对应的数值;当按下开关的次数大于10时,右边的数码管选通并都显示零;当扫描程序返回的值为10时,两个数码管都选通且都显示零;当扫描程序返回的值为11时,左边数码管小数点亮,左边数码管显示个位数,右边数码管显示第一位小数。 3.按键扫描程序设计 逐次行扫描,第一行扫描时P14置低电平,然后P10到P13口依次置低电平,这样能够依次扫描出0、1、2、3开关,第二行和第三行扫描情况同上。4.系统程序# include<stdio.h> # include<reg52.h> # include<absacc.h> # include<intrins.h&
11、gt;# include<math.h>#define uint unsigned int#define uchar unsigned charsbit seg1 =P20;/第一个数码管sbit seg2 =P21; /第二个数码管sbit seg0 =P22; /第三个数码管sbit seg3 =P23; /小数点控制uchar zixing10=0xcc,0xcd,0xce,0xcf,0xdc,0xdd,0xde,0xdf,0xec,0xed;/0到9的数值编码uint key=0;/键值void kbscan(void); /键盘扫描子程序void delay(unsign
12、ed int z); /延时子程序/*-主程序-*/ void main(void)static int xdatadata_ache10=0;/存储最多10个数static int data_count=0;/存储数之和static int num=0; /计数目前次数static float aver_value=0.0; /算出平均值static int i=0; /临时变量 static int data_ache1=0; /临时变量 static int data_ache2=0; /临时变量 static int data_ache3=0; /临时变量 static int dat
13、a_flag=0; /数据处理变量 static int key1_ache=0; while(1) kbscan();if(key>=0&&key<=9) / 按键为09值并显示second 并计算和前一个的数的和if(num>10)seg0=0;seg1=1;seg2=0;seg3=0;P3=zixing0;delay(1);seg0=0;seg1=0;seg2=1;seg3=0;P3=zixing0;delay(1);elseseg0=0;seg1=0;seg3=0;seg2=1;if(key1_ache!=key)num+;P3=zixingkey;d
14、ata_achenum=key;delay(1);key1_ache=key;data_flag=0;else if(key=10) /键值为10时为C/ON键for(i=0;i<10;i+)data_achei=0;P2=0XFF;P3=zixing0;delay(1);num=0;data_flag=0;data_count=0;else if(key=11) /键值为11时,为等号if(data_flag=0)for(i=0;i<num;i+)data_count+=data_achei;if(num>10)num=10;aver_value=data_count/(n
15、um/1.0);aver_value=aver_value*100;data_ache1=aver_value/100;data_ache2=(int)aver_value%100/10;data_ache3=(int)aver_value%10;if(data_ache3>4)data_ache2+=1;data_flag=1;seg0=1;seg1=0;seg2=0;seg3=0;P3=zixingdata_ache1;delay(1);seg0=0;seg1=1;seg2=0;seg3=1;P3=zixingdata_ache2;delay(1);seg0=0;seg1=0;seg
16、2=1;seg3=0;P3=zixingdata_ache3;delay(1);/num=0;/*void delay(unsigned int z) /延时程序 unsigned int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); /扫描程序/void kbscan(void)unsigned char temp;P1=0xef;/扫描第一行temp=P1;temp=temp&0x0f;if(temp!=0x0f)if(temp!=0x0f)switch(temp)case 0x0e: key=0;break;case 0x0d: ke
17、y=1;break;case 0x0b: key=2;break;case 0x07: key=3; break;P1=0xdf;/扫描第二行temp=P1;temp=temp&0x0f;if(temp!=0x0f) delay(2);if(temp!=0x0f) switch(temp)case 0x0e: key=4;break;case 0x0d: key=5;break;case 0x0b: key=6;break;case 0x07: key=7; break; P1=0xbf;/扫描第三行temp=P1;temp=temp&0x0f;if(temp!=0x0f) d
18、elay(2);if(temp!=0x0f) switch(temp)case 0x0e: key=8;break;case 0x0d: key=9;break;case 0x0b: key=10;break;case 0x07: key=11; break; /while(temp!=0x0f);/return key;2.3.3、软硬件调试系统调试:根据系统设计方案,本系统的调试共分为两大部分:硬件调试,软件调试。(1)硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。首先用数字万用表对实物板上的各元器件进行测试,在测试过程中,检验出一些错误,如CD4511的LT/BI/LE引脚未接,导致数码管无法显示键盘值,将这三个引脚正确焊接后,数码管能正确显示键值。(2)软件调试软件调试采用单片机仿真器keil uVision及protus,将编好的程序进行调试,首先主要是检查语法错误。再进行仿真,检验各个子程序是否正确执行,和硬件模块的协调性。由于能力有限,程序中仍然存在很多错误,不能显示均值结果,经过大家互相讨论和别的同学的指点,最终能够正常显示出平均值。三、课程设计总结我们课程设计的题目是“求均值计算器”,看似简单,题目要求也不多,但是真正着手时才发现无从下手,虽然有两星期的时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保产业园2025年产业集聚与循环经济发展报告:协同发展路径研究
- 数字人民币跨境支付技术挑战应对策略与解决方案2025趋势分析报告
- 2025年长尾词视角下人工智能医疗器械诊断设备市场前景预测报告
- 科技创新创业大赛奖金申请项目商业价值分析报告
- 2025年中国自动保温式电饭煲行业市场规模及未来投资方向研究报告
- 页岩气开采新技术在2025年环境效益评估与能源消费结构
- 学前教育信息化平台在2025年教育改革中的应用现状与发展趋势报告
- 小学教师职称评定工作总结模版
- 艺术教育行业2025年消费洞察报告:素质教育品牌营销策略
- 金融衍生品市场2025年创新产品与技术应用风险评估报告
- 荧光-光谱完整版本
- 全过程工程咨询服务投标方案(技术方案)
- 2024至2030年中国传染病医院产业发展动态及未来前景展望报告
- 2024年新人教版七年级上册历史教学课件 第10课 秦末农民大起义
- 扶济复新获奖课件
- 2024年甘肃高考地理试卷(真题+答案)
- 《重大疾病保险的疾病定义使用规范修订版》
- 工业机器人的发展历史
- 干细胞治疗行业营销策略方案
- 烟草专卖管理员:烟草法律法规知识考试测试题(题库版)
- 2024年广东省中考生物+地理试卷(含答案)
评论
0/150
提交评论