版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与应用课程设计题目:计数器数码管综合设计专业班级:电自化1201班学号:2835姓名:邱胜朋11月12日目录摘要及核心词 11.1重要问题 11.2解决思路 12.介绍 22.1系统特性及其功效 22.2设计的具体方案 23.系统设计 23.1硬件电路 33.1.1使用的重要器件 43.1.2重要部分器件阐明 53.2软件设计 73.2.1程序流程图 73.2.2程序设计内容 93.2.3实验程序及部分注释 94.实验成果 145.实习总结 15参考文献 15附录 151.摘要及核心词1.1重要解决问题随着当今社会的快速发展,大部分的自动化生产过程中的流水线的自动装箱或自动装配都需要用的自动计数,而如何对流水线上的产品需要进行实时的、有效率的、精确地自动技术成为广泛关注的问题。传统的机械式或电子式计数器比较复杂,元器件数量较多,故障率较高,维修比较困难,并且设立不方便,功效不易更改,合用范畴较窄。1.2解决思路基于单片机的自动计数器已经成为比较成熟的产品,应用于多个需要计数的场合,含有计数精确,操作方便,显示精确计数功效形式多样化的特点,被广泛的应用,能够实现数据统计的收集,有效的节省劳动力高质量地完毕任务。基于单片机构成的产品自动计数器研究的重要内容涉及:如果构成检测电路、STC89C51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、STC89C51单片机的扩展。在这个设计中重要需要解决的问题便是如何提高单片机的抗干扰能力以及稳定性。本文以单片机为核心的技术设计,叙述了系统的原理、硬件电路和软件设计有关内容。核心词:单片机,数码管,计数显示,流水线2.介绍2.1系统特性及其功效本次实习设计以STC89C51系列单片机开发板为基础开发环境,编制程序实现饮料包装流水线从0~36的饮料瓶数字实时显示。设计具体思路是:综合单片机开发板按键模块和led数码管模块,使用按键的闭合模拟流水线上检测装置检测到的计数脉冲,送入STC89C51单片机控制单元,通过对单片机编程实现计数然后由led数码管显示,实现实时计数功效。能够实现的功效有:按下启动键,能够统计显示流水线启动开始后的物件数量,计数值到36自动清零,再次按下启动重新计数;在计数过程中按下清零键能够清零并停止计数,再次按下开始重新计数;计数过程中按下暂停键暂停计数并显示现在数值,按下启动键继续计数;若按下请零键能够清零并停止计数;2.2设计方案选择基于STC89C51单片机的流水线计数器设计能够采用下列方案:2.2.1单片机计数器的方式控制寄存器TMOD中的GATE位=1时,能够很方便的进行INT0引脚的外部输入信号的时间间隔测量。通过p1.7口模拟外部计数脉冲,通过外部连线将P1.7与P3.4相连接进行计数功效,这种办法使用单片机内部的计数器,含有使用方便,计数精确等特点。但是由于我粗心大意没有读请题目规定,没有使用计数器,因此本次设计使用下面一种方案:2.2.2使用C语言编写软件程序,嵌套循环实现计数功效,实验成果也能够符合设计的规定。系统设计3.1硬件电路3.1.1使用的重要器件有下列部分:(1)单片机电路;(2)复位电路;(3)usb供电电路;(4)单片机复位电路;(5)led显示、机器驱动电路;(6)矩阵按键电路;图1、STC89C51图2、电源电路和复位电路图3、跳线帽图4、译码器和数码管电路3.1.2重要部分器件阐明(1)LED数码管图5、数码管示意图
我们最惯用的是七段式和八段式LED数码管,八段比七段多了一种小数点,其它的基本相似。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一种LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图以下。其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。一种八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一种字节的8位,a对应最低位,dp对应最高位。因此如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。能够看出两个编码的各位正好相反。
共阳极的数码管0~f的段编码是这样的:unsignedcharcodetable[]={//共阳极0~f数码管编码
0xc0,0xf9,0xa4,0xb0,//0~3
0x99,0x92,0x82,0xf8,//4~7
0x80,0x90,0x88,0x83,//8~b
0xc6,0xa1,0x86,0x8e//c~f
};
图6、数码管(共阴、共阳极)(2)4x4矩阵键盘模块拟定矩阵式键盘上任何一种键被按下普通采用行扫描法。行扫描法又称为逐行查询法它是一种最惯用的多按键识别办法。因此,我们就以行扫描法为例介绍矩阵式键盘的工作原理。首先,不停循环地给低四位独立的低电平,然后判断键盘中有无键按下。将低位中其中一列线(P1.0~P1.3中其中一列)置低电平然后检测行线的状态(高4位,即P1.4~P1.7,由于线与关系,只要与低电平列线接通,即跳变成低电平),只要有一行的电平为低就延时一段时间以消除抖动,然后再次判断,如果仍然为低电平,则表达键盘中真的有键被按下并且闭合的键位于低电平的4个按键之中任其一,若全部行线均为高电平则表达键盘中无键按下。再另首先,判断闭合键所在的具体位置。在确认有键按下后,即可进入拟定具体闭合键的过程。其办法是:依次将列线置为低电平,即在置某一根列线为低电平时,其它列线为高电平。同时再逐行检测各行线的电平状态;若某行为低,则该行线与置为低电平的列线交叉处的按键就是闭合的按键。下面图7是4*4矩阵式按键硬件接法。图7、矩阵键盘3.1.3电路原理图图8、矩阵键盘数码管连接示意图3.2.1软件程序设计开始初始化显示“00”;等待按键。未按下按下开始键?记到了按下了开始计数;等待按键。没有36未按下按下清零?计数36了吗?按下暂停显示现在数值清零并显示“00”并暂停计数;等待按键?按下开始?按下清零?继续计数清零显示“00”显示数值结束3.2.2程序设计内容单片机对按键的识别的过程解决:(1)单片机对对的识别的按键进行计数,计数满时,又从零开始计数;(2)单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们能够把所计得的数值对10求余,即可个位数字,对10整除,即可得到十位数字了。(3)通过查表方式,分别显示出个位和十位数字。3.2.3实验程序及注释/** 数码管测试** 晶振:11.0592M*/#include<reg52.h>sbitENLED=P1^4;//sbitADDR3=P1^3;//sbitADDR2=P1^2;//sbitADDR1=P1^1;//sbitADDR0=P1^0;//声明地址sbitEN=P1^5;//3-8译码器设立sbitKeyOut1=P2^3;//按键列扫描sbitKeyIn1=P2^4;sbitKeyIn2=P2^5;sbitKeyIn3=P2^6;sbitKeyIn4=P2^7;//按键输入intx;//用x作为监测到的个数变量,但是模拟计数令x自动增加inta,b,c,d,e,f;//用到7个中间变量unsignedcharcodeLedcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//0-9.的数码管段码voiddelay(unsignedinti)//延时{ while(i--);}voiddisplay(intnum)//数码管显示{ADDR0=0;//第一种数码管地址显示各个位 ADDR1=0; ADDR2=0; P0=Ledcode[num%10];//取余数就是个位数值 delay(200); ADDR0=1;//第二个数码管显示十位 ADDR1=0; ADDR2=0; P0=Ledcode[num%100/10]; delay(200);}main()//主函数{ KeyOut1=0;// ADDR3=1;//译码器使能端 ENLED=0; while(1)//主循环{ display(0); //一开始显示00 if(KeyIn1==0)//第一种按键按下就开始显示 { b=36,x=0;//循环36次,并使从0开始显示 } while(b>0)//限制循环36次{ if(KeyIn4==0) {x++;//如果有增数量增加脉冲,循环一次,假设数量加1 b--;} if(KeyIn2==0)//计数时如果按下K2就清零 { b=0,x=0,c=1;while(c>0) {for(a=50;a>0;a--)//每次刷新50次显示 { display(x); }if(KeyIn1==0)//重新计数 { b=36,x=0,c=c-1; } } } if(KeyIn3==0)//暂停计数并显示现在数值 { e=x,f=b,d=1;while(d>0) {for(a=50;a>0;a--) { display(x);//显示现在数值 } if(KeyIn1==0) //从现在继续计数 { b=f,x=e,d=d-1; } if(KeyIn2==0) //暂停状态下按下清零 { b=0,x=0,d=d-1; } } } for(a=50;a>0;a--) //刷新50次显示 { display(x); } } } }4.实验成果(1)不停按下K4按键模拟计数脉冲。当按下启动键,能够统计显示K4启动开始后按下的次数,计数值到36自动清零,再次按下启动重新计数;(2)在计数过程中按下清零键能够清零并停止计数,再次按下开始重新计数;(3)计数过程中按下暂停键暂停计数并显示现在数值,按下启动键继续计数;若按下请零键能够清零并停止计数;5.实习总结通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论较好地应用到实际当中去,并且我还学会了如何去培养我们的创新精神,从而不停地战胜自己,超越自己。创新能够是在原有的基础上进行改善,使之功效不停完善,成为真己的东西。作为一名自动化专业的大四学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台。学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累。单片机是一门应用性和实践性很强的学科,要多动手,多做实验。(4)要学会参考别人的程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 店内员工半天培训制度
- 从业人员培训制度规定
- 151岗前培训制度
- 教师培训管理制度及流程
- 医院中药饮片培训制度
- 实训基地安全培训制度
- 教职培训及考核制度
- 攀岩指导员定期培训制度
- 外请讲师公司培训制度
- 培训班教师聘用管理制度
- 2025年健康体检中心服务流程手册
- 2026年黑龙江林业职业技术学院高职单招职业适应性测试备考题库有答案解析
- 贵金属产业2026年发展趋势与市场价格波动分析
- 现代环境监测技术
- 2026福建能源石化集团校招面笔试题及答案
- 华东理工大学2026年公开招聘工作人员46名备考题库及参考答案详解
- 云南师大附中2026届高三高考适应性月考卷(六)历史试卷(含答案及解析)
- 2025桐梓县国土空间规划城市年度体检报告成果稿
- PCR技术在食品中的应用
- ISO-26262功能安全培训
- 2025浙江杭州钱塘新区建设投资集团有限公司招聘5人备考笔试试题及答案解析
评论
0/150
提交评论