单片机课程设计(计数器)(共29页).docx
《单片机课程设计(计数器)(共29页).docx》由会员分享,可在线阅读,更多相关《单片机课程设计(计数器)(共29页).docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计报告题 目: 计数器设计 学 院: 信息学院 专 业: 计算机 学 号: 19 姓 名: 吴昱建 指导教师: 李伟 李大海 完成日期: 2014 年 6 月 14 日 目录一、课程设计的目的1、通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论,分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案。二、课程设计的任务和要求2.1题目:计数器设计2.2设计要求:设计十进制0-99的计数器,采用按键计数,数码管显示。1
2、、采用按键产生计数值:按下按键,计数值加1;2、采用两位数码管显示,计数初值为0;3、当计数达到99时,再次按下按键,计数值从1开始增加;4、设计一个按键,用于清空计数值。三、总体设计3.1.硬件设计思路及系统框图 1)硬件设计思路:00-99加计数器硬件系统主要由AT89S51单片机,数码管,电容,电源等元件组成,利用单片机的P0口、P1口作为输出端,来控制数码管的显示,通过单片中烧入程序,然后利用 P3.7口作为输入端,通过点动控制实现开关量的控制和计数,然后再通过数码显示器显示出来。通过调试仿真从而实现00-99加计数。 元件名称型号数量/个用途单片机AT89S511控制核心晶振12MH
3、Z1晶振电路电容30uF2晶振电路排阻Respack82上位电阻电阻10k1复位电路电源+5v1提供电源拨码开关BUTTON_11发出信号数码管7SEG-MPX1-CC2显示电路2) 原器件清单3) 系统框图单片机数码管电子电路开关 系统框图3.2软件设计思路及程序流程框图1) 软件设计思路:实现00-99计数功能,子程序实现将高低电位转化为数码管的十进制数字,实现手动开关计数。通过手动给脉冲信号,实现计数,再加到99时,在手动给脉冲时,回到初始状态00,从而实现00到99加计数。2)对照表3) 程序流程图 开 始 程序框图Count初始为0数码显示“00”按键识别成功吗?Count=Coun
4、t+1Count=100吗?显示Count计数器YNNY程序流程图四、硬件设计4.1 设计目的设计十进制0-99的计数器,采用按键计数,数码管显示。1、采用按键产生计数值:按下按键,计数值加1;2、采用两位数码管显示,计数初值为0;3、当计数达到99时,再次按下按键,计数值从1开始增加;4、设计一个按键,用于清空计数值。4.2 电路设计原理0099加减计数器硬件主要由AT89C51单片机,数码管,电容,电源等元件组成,利用单片机的P0口、P2口作为输出端,来控制数码管的显示,通过单片中烧入程序,然后利用 P3.2,P3.3口作为输入端,通过点动控制实现开关量的控制和计数,然后再通过数码显示器显
5、示出来。通过调试仿真从而实现00-99加减计数。4.3 总体电路设计图4.1 总体电路图4.3.1系统板上硬件连线: (1把“单片机系统”区域中的P0.0/AD0P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ah端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.7/AD7对应着h。(2把“单片机系统”区域中的P2.0/A8P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的ah端口上; (3把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上; 4.3.23元件清单 元件名称型号
6、数量/个用途单片机AT89C511控制核心晶振12MHZ1晶振电路电容30uF2晶振电路排阻Respack81上位电阻电阻1k1复位电路电源+5v1提供电源拨码开关BUTTON_12发出信号数码管7SEG-MPX1-CC2显示电路4.3 单片机电路设计4.3.1 80C51单片机 1)主要特性: 与MCS-51兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内震荡器和时钟电路2)管脚说明:电源
7、引脚 Vcc(40脚):典型值5V。 Vss(20脚):接低电平。外部晶振 XTAL1、XTAL2分别与晶振两端相连接。输入输出口引脚: P0口:I/O双向口。作输入口时,应先软件置“ 1”。 P1口:I/O双向口。作输入口时,应先软件置“ 1”。 P2口:I/O双向口。作输入口时,应先软件置“ 1”。 P3口:I/O双向口。作输入口时,应先软件置“ 1”。 控制引脚: RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。 RST(9脚):复位信号输入端(高电平有效)。 ALE/-PROG(30脚):地址锁存信号输出端。 第二功能:编程脉冲输入。 -PSEN(2
8、9脚):外部程序存储器读选通信号。 -EA/Vpp(31脚):外部程序存储器使能端。 第二功能:编程电压输入端(+21V)。AT89C51单片机的P口特点: P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2
9、口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。 P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行 MOVX DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行 MOVX RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的
10、内容),在整个访问期间不会改变。 P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。(2)排阻的作用所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。排阻一般应用在数字电路上,比如:作为某个并行口的上
11、拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。 排阻有a型和b型的区别。 a型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。 B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。 排阻的阻值读法如下:“103”表示:10k,“510”表示:51。以此类推常用于显示数码管。4.3.2 显示电路设计显示电路是一个8位共阴极LED数码管。 单片机的P0.0-P0.7 p2.0_P2.7分别与数码管的A、B、C、D、E、F、G、DP相连接。图4.1 8位共阴极LED灯4.3.3 控制电路设计控制
12、电路,键一与p3.7相连。当电键按下时接口接低电平,从而实现对计数器的控制。键一联通实现计数。 图4.2 复位电路4.3.4输出电路设计显示电路由LED数码管连接p2 P0接口实现数字的输出,由控制电路发出操作指令后,单片机调用相应程序,并将音乐信号由p2 P0口输出,通过LED实现计数显示图4.3 输出电路五、系统软件设计5.1 总体流程图系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题: 1、根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发
13、清晰、简洁和流程合理; 2、培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改; 3、 建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; 4、 绘制程序流程图; 5、 合理分配系统资源; 6、为程序加入注释,提高可读性,实施软件工程; 7、注意软件的抗干扰设计,提高系统的可靠性总体流程图图5.1程序流程图5.2单片机数码管介绍在本任务中用2位数码管显示当前数值的十位,个位,由于数码管个数不多,故采用静态显示方式, 2位数码管的相同段并联在一起,由一个6位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口
14、(P0口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的。2个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。在本任务中,为了简便,字形码和字位码都没由加驱动电路,在实际应用中应加驱动电路。数码管有共阴极和共阳极两种, 对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则
15、相反,即:字形驱动输出1有效,字位驱动输出0有效 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一, 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共
16、阳式、共阴式LED数码管的原理图和符号。 5.3 数码管显示实现unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;5.4 键控子程序键控子程序主要由开始计数程序组成,由一个计数器中断实现。while(1) if(P3_7=0) delay10ms(); if(P3_7=0) Count+; if(Count=100) Count=0; P0=tableCount/10; P2=tableCount%10; while(P3_7=0);5.5 C语言源程序: C语言介绍 C语言是一种面向过程的计
17、算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。 C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。 C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 计数器 29
限制150内