




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称: 单片机课程设计 题 目: 流水线计数器 学 院: 环境与化学工程 系:过程装备与测控工程 专 业: 测控技术与仪器 班 级: 学 号: 学生姓名: 起讫日期: 2012-12-192012-12-26 指导教师: - 14 -摘要单片机在工业领域有着广泛的应用。在这些应用中,计数器是一个非常基础和重要的组成单元,可以信号数据的记录处理和控制,组成更加整个复杂的控制系统。虽然在工业上有些功能单元在原理和结构上是很简单基础的,但优化这些基础功能的电路和处理模式对提高整个控制系统工作效率和结构有很大帮助。如流水生产线上的计数器等。关键词:(35个)单片机 计数器 记数报警目录摘要- 0 -目录- 0 -一、设计任务、要求- 1 -1、设计任务:设计一个基于51单片机的计数显示系统。- 1 -2、设计要求:- 1 -3、发挥部分:- 1 -二、方案总体设计- 1 -1、总体描述- 1 -2、总体设计:- 1 -三、硬件设计- 2 -1、STC89C52单片机最小系统- 2 -2、数码管显示电路- 3 -一、 键盘输入- 3 -二、 复位电路- 4 -三、 指示功能电路- 4 -四、 整体电路- 5 -四、软件设计- 5 -五、 系统调试与说明- 6 -1、实物图见附录- 6 -2、使用说明- 6 -六、设计总结- 7 -附录:- 7 -七、参考文献- 14 -一、设计任务、要求1、设计任务:设计一个基于51单片机的计数显示系统。2、设计要求:(1)设计能实现外部输入计数和显示功能的计数器。(2)计数器具有设置功能,可以完成四位数据的输入。(3)计数达到预设置数时,能够报警提示。3、发挥部分:(1)简化电路,使用四个按键完成四位数据输入。二、方案总体设计1、总体描述(1)单片机采用STC89C52型(2)数据显示电路:七段四位共阴极数码管,P1口控制八位段码,P3.4到P3.7控制四位位码。(3)数据输入电路:四个按键完成输入,一号键控制个位加1,可以实现从1加到9;二号键控制十位加一;三号键控制百位加一;四号键控制千位加一。(4)功能指示电路:上电指示发光二极管,P26口控制蜂鸣器报警功能。2、总体设计:(1)设计总体框架图如图1所示。 设置数 STC89C52蜂鸣器 报警 开始 计数图1(2)总体方案工作原理:采用STC89C51单片机作为本系统的控制模块,可由键盘输入设置数值,并记录显示外部计数信号。计数信号达到设置值时,可输出指示和控制信号完成计数和显示控制功能。三、硬件设计1、STC89C52单片机最小系统最小系统包括晶体振荡电路、复位开关和电源部分。图 为STC89C52单片机的最小系统。复位口为P3.0口,当RST引脚有一个高电平并维持两个机器周期,则CPU就可以响应并将系统复位。需要200欧,1000欧电阻各一个,22微法电容一个,按键一个。时钟电路需要在XTAL1,2,两个端口跨接石英晶体及两个电容,电容一般取30pF左右。2、数码管显示电路我的数码管为共阴极,八个段选端接P1口,四个位选端接P3口,如上图所示。1、 键盘输入上图为3*3矩阵键盘扫描电路的接法,三行分别相连接P2.5,P2.4,P2.3口,三列分别相连接P2.2,P2.1,P2.0口。先给所有行线一个低电平,然后将列线口的电平状态读入单片机,如果有按键按下,总有一根列线电平被拉至低电平,从而使输入不全为1.判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状态实现的。方法是:依次给行线送低电平,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行,如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。2、 复位电路3、 指示功能电路指示功能电路中,预先给定一个数值,计数达到预设定值时,蜂鸣器发出声音报警。4、 整体电路四、软件设计程序流程下图所示。5、 系统调试与说明1、实物图见附录2、使用说明系统通电后,进入计数设置功能,等待信号的数据输入,当完成设置数值后,开始计数,此时如果对所记录的数据清零则返回到设置数值界面,可以重新设置数值。当所记录的数值等于预设定的数时,蜂鸣器发声报警。321654987 键盘模拟图1一二三四号键分别对应个十百千位数值的设置加一功能。七号键为计数功能键,八号键为清零键。在软件编写与调试时,我发现有很多我原来所没有注意到的问题,硬件完成焊接后,先用万用表简单的进行是否短路检测,没有问题后进行通电测试,发现上电指示灯亮,然后下程序到单片机内检测是否能下载程序;刚开始的时候,我的不能下程序,我首先按照原理图检查了一遍最小系统,发现复位电路存在问题,经修改后还是不能下程序,怎么试都不行,我又检查了电路和最小系统发现都没有问题,最后听同学说可能是杜邦线的问题,经过检查后发现我的四根杜邦线有两根都是坏的。这是我所没有想到的,换了好的后,就可以下程序了。当编写完程序进行调试时,又发现存在很多的问题,首先是数码管的段码位码的问题,这个需要自己根据自己的电路来计算而不是统一的一样,这个问题直到我知道后才解决掉。然后是矩阵键盘扫描的程序的调试,这个也要自己根据自己的电路接口来计算所要输送的十六进制数码,而且还要通过软件去抖动,还要判断按键是否松开等问题,这个花费的时间较长些,最后通过把按键扫描和数码管动态显示组合到一起,发现还是有问题,这个当然是软件上的问题。当实现这个功能之后,我要实现自己的计数功能和显示功能,在这个过程中,设置的数的显示和所要计的数的显示又存在问题,原因是他们会同时显示,出现重叠乱码现象,为此我请教了很多同学,最后,通过分别定义不同变量,用数组解决了这个问题。最后就是要实现蜂鸣器报警的功能。在这个上面,我没有花费很多时间,而只是简单的让它发出声音即可。六、设计总结经过这接近两周的单片机课程设计,完成以STC89C52为核心的计数器的设计和制作,并能实现计数显示和设置功能。当我回首这几天的生活,发现除了最让我感到满足的充实之外,对所用到知识的不懂也很令我震撼,往日的知识就在使用的时候才显示出它的重要性,我对我往日的无知而深感惭愧。不是每个人都能随随便便成功。只有通过勤学多看多思考,多动手把所学的东西用到实际生活中,才能真正感受到知识的力量。若非一番寒彻骨,怎得梅花扑鼻香!最后当我实现自己所想要表达的东西的时候,那种久违的小成就感油然而生!用一句话来结尾吧:路漫漫其修远兮,吾将上下而求索。附录:实物图:源程序:#include#define uint unsigned int#define uchar unsigned char/段码uchar code table=0xD7,0x11,0xCD,0x5D,0x1B,0x5E,0xDE,0x15,0xDF,0x5F;/位码表uchar code wei=0x7f,0xef,0xdf,0xbf;uint temp,num,ge,shi,bai,qian,m,numset;void delay(uchar z);void display();void key();void show();void show1();void beep();sbit d=P26;uchar x,y,z;int number4;void main()m=0;ge=0;shi=0;bai=0;qian=0;while(1)key();show();while(num=7)show1();key(); void show() /显示程序2key();P3=wei0;P1=tablege;delay(5);P3=0xff;if(ge=10)ge=0;P3=wei1;P1=tableshi;delay(5);P3=0xff;if(shi=10)shi=0;P3=wei2; P1=tablebai;delay(5);P3=0xff;if(bai=10)bai=0;P3=wei3;P1=tableqian;delay(5);P3=0xff;if(qian=10)qian=0;numset=ge+shi*10+bai*100+qian*1000;void key() /按键检测P2=0x1f; temp=P2;temp=temp&0x1f;if(temp!=0x1f) delay(5);temp=P2;temp=temp&0x1f;if(temp!=0x1f)temp=P2;switch(temp)case 0x1e: num=1;ge+;break;case 0x1d: num=2;shi+;break;case 0x1b: num=3;bai+;break;while(temp!=0x1f)temp=P2;temp=temp&0x1f;P2=0x2f;temp=P2;temp=temp&0x2f;if(temp!=0x2f)delay(5);temp=P2;temp=temp&0x2f;if(temp!=0x2f)temp=P2;switch(temp)case 0x2e: num=4;qian+;break;case 0x2d: num=5;break;case 0x2b: num=6;break;while(temp!=0x2f)temp=P2;temp=temp&0x2f;P2=0x37;temp=P2;temp=temp&0x37;if(temp!=0x37)delay(5);temp=P2;temp=temp&0x37;if(temp!=0x37)temp=P2;switch(temp)case 0x36: num=7;m+;break;case 0x35: num=8;m=0;break;case 0x33: num=9;break;while(temp!=0x37)temp=P2;temp=temp&0x37;void delay(char z) /延时程序char x,y;for(x=z;x0;x-)for(y=110;y0;y-);/报警void beep() duan=1;delay(20000);duan=0;/显示程序1void show1()key();number0=m%10;number1=m%100/10;number2=m%1000/100;number3=m/10000/1000;P3=0xff;P1=tablenum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中兽医员岗前技术管理考核试卷含答案
- 选剥混茧工岗前基础效率考核试卷含答案
- 刻瓷工班组建设强化考核试卷含答案
- 22.1.2 二次函数y=ax2的图象和性质 说课稿 2024-2025学年人教版数学九年级上册
- 炭素制品工安全教育知识考核试卷含答案
- 塑料焊工保密模拟考核试卷含答案
- 1.1 《 疆域》(第1课时)说课稿-2024-2025学年人教版地理八年级上册
- 公司电线电缆包制工岗位设备安全技术规程
- 拖拉机电器装试工安全培训测试考核试卷含答案
- 手术急救类设备组装调试工安全管理模拟考核试卷含答案
- 2025年吉林省珲春市辅警招聘考试题库及答案
- 2025浙江工业大学之江学院招聘4人考试参考试题及答案解析
- DB 32-T 3701-2019 江苏省城市自来水厂关键水质指标控制标准
- 斯吹瓶机培训
- 山鬼课件上课用课件
- 发票拒收证明模板
- 《伟大的改革开放》优秀课件1
- 助产士核心胜任力量表
- 保安队排班表
- 南方某小区公共绿化养护方案
- EN779-2012一般通风过滤器——过滤性能测定(中文版)
评论
0/150
提交评论