基于单片机的计数器设计
- 格式:doc
- 大小:307.50 KB
- 文档页数:22
基于51单片机简易计算器设计引言计算器(Calculator)是微型电子计算机的一种特殊类型。
它与一般通用计算机的主要区别在于程序输入方式的不同。
计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。
而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算(有的还带有数据总加、求平均值等统计运算)。
现代电子计算器首次问世是1963年。
那时的计算器是台式的,在美国波士顿的电子博览会上展出过。
与计算机相比,它小巧玲珑,计算迅捷,一般问题不必事先编写复杂的程序。
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。
随着社会需求,计算器也从原有单一的数字加减计算演变为复杂的多种运算。
现在不在单一的在某一方面而是涉及到生活的方方面面.由于我对知识掌握的不够熟练,重点不够清楚,导致在重点与非重点处花费的时间不成比例,进度缓慢,这是设计没能全部完成的部分原因。
目前只做到按键与显示的结合(即在显示器上可以显示数字键还有命令键+-*/ =清零);加法子程序已经编写成功并严整无误,但在整体调试中未能圆满实现,本部分正在调试中。
等调试成功后,其它运算子程序的问题将迎刃而解。
1.简易计算器的设计方案1.1硬件部分设计方案1 单片机部分单片机以AT89C51来做为核心元器件。
2 按键部分设计思路:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。
但是这种方式采用了大量的I/O口线。
基于单片机的光电计数器的设计摘要:近年来,随着工业发展和科学技术的创新,光电计数器技术越来越多的被应用到工业生产和生活中。
光电计数器采用光敏元件作为传感器,利用不同光强产生不同电平信号流进一步实现计数的原理,使得光电计数器现在广泛应用于工业生产线的计数。
本论文主要介绍了基于单片机AT89S51的软硬件设计过程,以及实现光电计数的工作原理和理论基础,实现了光电计数器基本的工作要求和性能指标,采用LCD显示技术显示计数结果。
本次光电计数器设计使用PCB板和LCD模块显示,因此电路结构简单清晰、焊接过程简单、电路稳定性好、操作难度小。
关键词:传感器;光电计数器;AT89S51Design based on single chip microcomputer photoelectric counterAbstract: in recent years, along with industrial development and the innovation of science and technology, photoelectric counter technology more and more applied to industrial production and life. Photoelectric counter using photosensitive element as the sensor, the use of different light intensity have different level signal flow to further realize the counting principle, makes the photoelectric counter now counts are widely used in industrial production line. This thesis mainly introduces the hardware and software design process, based on single chip microcomputer AT89S51 and photoelectric counting principle and theoretical basis of implementing the basic job requirements and performance indicators, photoelectric counter use LCD display technology to display the count result. The photoelectric counter design using the PCB and the LCD display module, so the circuit structure is simple and clear, the welding process simple, circuit stability is good, operation difficulty is small.Key words: sensor;Photoelectric counter; AT89S51目录1引言 (1)2任务要求 (2)3方案论证 (2)3.1两种方案的选择 (2)3.2方案的选择 (2)4 系统组成概述 (3)5 硬件系统各部分介绍 (3)5.1光电传感器 (3)5.2 AT89S51单片机 (4)5.2.1 AT89S51系列单片机的主要性能特点 (4)5.2.3 51系列单片机的基本组成 (5)5.2.4外接晶体引脚 (6)5.2.5 控制信号或与其它电源复用引脚 (6)5.3显示器件 (7)6 硬件电路设计 (8)6.1 最小系统 (8)6.1.1 电源电路 (8)6.1.2 复位电路 (8)6.1.3 晶振电路 (9)6.2 单片机控制电路 (10)6.3 显示电路 (10)7 系统软件设计 (11)8 结论 (13)参考文献 (13)致谢............................................................................................................................ 错误!未定义书签。
基于AT89C51单片机的计数器设计单片机(Microcontroller)是一种集成了微处理器、存储器和各种输入输出功能的芯片,广泛应用于嵌入式系统中。
AT89C51单片机是英特尔公司生产的一款典型的8位微控制器,其具有强大的功能和灵活的设计特性,被广泛应用于工业控制、汽车电子、消费类电子产品等领域。
在众多应用中,计数器是一种常见的电子器件,被广泛应用于各种领域,比如工业控制、实验测量、智能家居等。
基于AT89C51单片机的计数器设计,可以实现对信号的计数和显示,具有较高的稳定性和可靠性。
本文将介绍基于AT89C51单片机的计数器设计。
首先介绍AT89C51单片机的基本特性和引脚布局,然后讨论计数器的原理和设计思路,最后给出具体的设计方案和实现步骤。
一、AT89C51单片机的基本特性和引脚布局AT89C51是一款高性能、低功耗的8位CMOS微控制器,其主要特性包括:1. 内置4KB闪存程序存储器,用于存储用户程序;2. 128字节RAM,用于存储临时数据和寄存器;3. 32个通用I/O引脚,用于连接外部器件和传感器;4. 完整的串行通信接口(UART),用于与外部设备进行通信;5. 定时器/计数器和PWM输出,用于实现各种定时和计数功能;6. 多种工作模式选择,包括被动低功耗模式和中断工作模式。
AT89C51单片机的引脚布局如下图所示:(图片)P0、P1、P2和P3是AT89C51单片机的四个通用I/O端口,分别具有8个引脚,用于连接外部设备和传感器。
X1和X2是晶体振荡器的输入和输出端,用于提供时钟信号。
RESET 是复位端,用于复位单片机。
EA和PSEN是扩展ROM控制端和程序存储器的读取端,用于外接ROM和实现程序存储。
ALE/PROG是地址锁存器的输入,用于地址总线的多路选择。
RXD 和TXD是串行通信接口的接收和发送端口,用于与外部设备进行通信。
二、计数器的原理和设计思路计数器是一种常用的数字电路,用于对输入信号进行计数和显示。
单片机计数器的编程概述单片机计数器是基于单片机的硬件模块,可以实现数值的增加和减少的功能。
通过编程控制计数器的工作模式和计数范围,可以实现各种应用场景下的数字计数功能。
本文将介绍单片机计数器的基本原理、编程方法和应用案例,帮助读者理解和掌握单片机计数器的编程技巧。
单片机计数器的基本原理单片机计数器通常采用定时器/计数器模块实现,这个模块集成在单片机芯片内部。
具体实现方式和功能会因单片机型号和厂家而有所差异,但基本原理是相通的。
单片机计数器通常由以下几个主要组成部分构成: - 器件选择:根据需要选择合适的单片机型号和计数器模块。
- 计数寄存器:用于存储计数器的当前值。
- 预设值寄存器:用于设置计数器的初始值或比较值。
- 控制寄存器:用于控制计数器的工作模式、计数范围等参数。
- 时钟源:提供计数器的时钟信号,以确定计数的时间间隔。
根据计数器的工作模式和计数范围的不同,单片机计数器可以实现多种功能,如:- 简单计数:按照固定时间间隔进行自增或自减操作。
- 定时/延时:在一定时间后触发中断或执行特定操作。
- 脉冲计数:计算外部脉冲信号的频率或脉冲数。
- 频率计数:测量外部信号的频率。
单片机计数器的编程方法单片机计数器的编程方法主要包括以下几个方面: 1. 初始化计数器:设置计数器的初始值和工作模式。
2. 控制计数器:控制计数器的启动、停止、清零等操作。
3. 处理计数器溢出:处理计数器达到最大值后的溢出操作。
4. 读取计数器值:读取计数器的当前值,并根据需要进行处理。
具体编程方法在不同的单片机和编程语言环境下可能会有所不同,以下是一个C语言编写的单片机计数器的代码示例:#include <reg51.h>// 单片机寄存器定义// 定义计数器全局变量unsigned int counter = 0;// 中断处理函数void Timer0Interrupt() interrupt 1{TF0 = 0; // 清除中断标志位counter++; // 计数器自增}// 初始化计数器void InitTimer0(){TMOD = 0x01; // 定时器0工作在模式1,16位定时/计数模式TH0 = 0xFF; // 设置计数器的初始值,定时溢出时间为65536个机器周期TL0 = 0xFF;ET0 = 1; // 允许定时器0中断EA = 1; // 允许总中断TR0 = 1; // 启动定时器0}// 主函数void main(){InitTimer0(); // 初始化计数器while(1){// 在这里执行其他操作// 读取并处理计数器的值if(counter > 100){// 当计数器值大于100时执行特定操作// 可以触发中断、改变计数器的工作模式等counter = 0; // 重置计数器的值}}}单片机计数器的应用案例单片机计数器的应用非常广泛,在各种嵌入式系统和电子设备中都有重要作用。
单片机计数器的设计可以根据具体的需求进行灵活的选择。
以下是一个简单的单片机计数器的设计:
确定计数范围:根据需求确定计数器的范围,例如0-99或0-999。
选择计数器类型:根据计数范围选择合适的计数器类型,可以是二进制计数器、十进制计数器或BCD码计数器等。
确定计数方式:确定计数的方式,可以是递增计数、递减计数或双向计数等。
确定计数信号源:确定计数信号的来源,可以是外部信号源或内部时钟信号源。
连接计数器到外设:根据需求将计数器的输出连接到外设,例如LED显示器、数码管或继电器等。
编写计数器程序:使用适当的单片机编程语言编写计数器程序,包括计数器的初始化、计数操作和显示操作等。
测试和调试:在硬件连接完成后,对计数器进行测试和调试,确保计数器功能正常。
以上是一个简单的单片机计数器的设计流程,具体的实施可以根据具体的需求和单片机型号进行调整。
基于单片机毕业论文单片机是一种非常重要的微处理器,被广泛用于许多领域,如智能家居、汽车行业、医疗健康等。
在微处理器技术和应用方面,单片机已经成为一个重要的研究领域。
本文拟以双模脉冲计数器为例,论述我的毕业设计。
一. 研究背景随着计算机技术的发展,许多国家的工业生产在应用微处理器的控制技术。
在单片机的应用中,计数器广泛应用于信号处理、频率测量、速度测量、位置控制、编码器等方面。
为了满足计数精度和灵敏度的要求,本设计选择双模脉冲计数器。
二. 总体设计1. 系统功能双模脉冲计数器是一种多功能计数器,可以用来读取脉冲信号,并将计数结果在数码管上显示出来。
在实际应用中,双模脉冲计数器可用于工业自动化控制、物理实验、仪表测试等方面。
2. 系统框图系统框图如下所示:3. 系统硬件基础本设计使用51单片机(AT89S52)为核心,并利用I/O 口完成输入/输出任务。
同时,利用计数器的时钟输入调制来驱动数码管。
4. 系统软件设计程序采用C和汇编混合编程。
使用C语言实现按键扫描、计数脉冲数、显示计数结果等功能,使用汇编语言实现驱动显示模块任务。
5. 电路板设计本设计采用双面板,设计尺寸为100mm*80mm。
其中,一个面板主要用于系统模块的连接,另一个面板用于LCD、按键、LED灯、蜂鸣器、数码管等模块的连接。
三. 实验结果本设计的实验结果表明,双模脉冲计数器可以实现计数精度高、反应迅速、功能多样等特点,达到了设计预期结果。
四. 结论本设计结合了计算机控制技术和模拟电路技术,实现了双模脉冲计数器的功能。
同时,通过大量的实验和数据分析,证明了双模脉冲计数器具有良好的计数精度和反应速度。
未来实际应用中,双模脉冲计数器可以用于工业自动化控制、物理实验、仪表测试等方面。
总之,本设计结合了计算机控制技术和模拟电路技术,成功实现了双模脉冲计数器,对于提高计数精度、反应速度等具有重要的意义。
同时,本设计也展示了单片机技术在实际应用中的巨大优势和潜力。
基于单片机的红外计数器设计红外计数器是一种利用红外传感器来检测物体通过的数量的装置。
它通常用于人员或物品数量统计的应用中。
本文将介绍基于单片机的红外计数器的设计原理和实现方法。
首先,我们需要明确设计的目标。
本计数器将用于统计通过固定区域的物体数量。
而红外传感器将用于检测物体的通过。
当物体途经红外传感器时,传感器会发出红外光束,通过物体的遮挡程度来检测物体是否通过。
通过计数和记录每次检测到物体通过的事件,我们就可以实现数量的统计。
接下来,我们需要选择合适的单片机来实现红外计数器。
常见的单片机有AVR、PIC和ARM等。
考虑到我们的功能需求和成本效益,我们可以选择一款性能适中且价格合理的AVR单片机。
在硬件方面,我们需要准备以下器件:1. 红外传感器:选择一款可靠的红外传感器,具有较高的灵敏度和稳定性。
2. 单片机:选择合适的AVR单片机,能够满足计数和通信需求。
3. 显示屏:为了实时显示计数结果,我们可以选择一个小型LCD显示屏。
4. 其他电子元件:如电阻、电容、继电器等,用于连接和支持电路。
在软件方面,我们需要编写单片机的代码,以实现正确的计数和显示功能。
首先,我们需要初始化红外传感器和LCD显示屏。
然后,编写中断服务程序,当红外传感器检测到物体通过时,中断服务程序会触发,并对计数器进行更新。
最后,我们需要编写主程序,用于控制计数器的行为和LCD显示屏的更新。
需要注意的是,为了保证计数的准确性,我们可能需要考虑避免因传感器噪声、环境光干扰或物体堆叠而引起的计数错误。
我们可以通过设置适当的检测阈值、使用滤波算法或加入其他传感器辅助来解决这些问题。
综上所述,基于单片机的红外计数器设计包括硬件和软件两个方面。
在选择合适的单片机和红外传感器的基础上,通过合理编写代码和进行适当的优化,我们可以设计出一个功能稳定、准确计数的红外计数器。
光电计数器设计专业:机械设计制造及其自动化班级:机自092班姓名:```学号:*************指导老师:¥¥¥¥¥¥¥目录一.设计题目 (2)二.设计要求 (2)三.题目分析 (2)四.整体构思 (3)五.具体实现 (5)六.单片机系统程序设计 (11)七.问题及解决方案 (13)八.设计心得体会 (13)九.参考文献 (14)十.附录 (15)一.设计题目:基于单片机的光电计数器的设计在大量产品的生产中, 为及时掌握产品的装箱率、日产量等指标,需要在产品生产线的多个环节上安装计数器, 每当产品通过计数器时,就会被计数器的传感器检测到,产品个数自动加1,并在显示器上显示出来。
本次设计基于单片机的工业产品自动计数器基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路,MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
二.设计要求:(1)数码管可以显示产品个数(0-99),自由设定产品报警个数(比如 8),当产品数目是8的个数时,发出报警(蜂鸣器响)。
(2)独立设计电路,应包括单片机最小系统、红外光电开关、数码管显示部分。
将计数值准确的显示出来(3)三人一组,每组选一个组长。
三.题目分析:基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
采用光电式传感器是非常必须的,它是一种非接触式电子传感器。
这种计数器在工厂的生产流水线上作产品统计,有着其他计数器不可取代的优点。
目录1 单片机概述 (2)2 创新目标 (3)3 创新实践任务和要求.............. . (3)4 创新方案和原理分析 (3)5 硬件原理图设计 (3)5.1 硬件电路设计 (3)6 软件设计 (5)6.1 程序流程图设计 (5)6.2 程序设计 (5)7 Proteus+Keil uV2联合仿真 (7)8 设计说明书 (8)9 样机展示 (11)10 总结 (11)1单片机概述二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O 接口和中断系统集成于同一硅片的器件。
单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。
红外线自动计数器的设计摘要随着今社会的飞速发展,越来越多的流水线上的产品和各种公共场所需要进行自动计数。
基于单片机构成的产品自动计数器有直观和计数精确的优点,目前已在各种行业中得到广泛应用。
数字计数器有多种形式,总体来说有接触式和非接触式两种,在科技发展的今天,非接触式红外计数器得到了广泛的应用。
本设计采用一对红外发射接收管作为红外计数器的信号检测头,具有价格低廉,抗干扰性好,结构简单,操作方便等特点。
指导思想是利用红外发光管发射红外线,红外接收管接收此红外线,并将其放大、整流形成低电平信号.当有人或物挡住红外光时,接收管没有接收到红外信号,放大器将输出高电平,同时将这个电平信号送入单片机进行控制计数,并且使数码管显示数值。
这样就得到要统计的人或物的数量。
关键字:自动计数;单片机;数码管目录第一章绪论 (4)1.1、前言 (4)1.2、选题背景 (4)1.3、设计要求 (5)1.4、国内外的研究概况 (5)1.5、此次设计研究的主要内容应解决问题 (5)第二章基于单片机构成的产品自动计数器的设计 (6)2.1、方案论证与选择 (6)2.2、系统总体框图和原理 (8)2.3、系统单元电路设计 (9)2.3.1、电源供电电路 (9)1. 桥式整流电路: (10)虑波电路分析 (11)稳压电路 (12)2.3.2、红外线检测部分 (13)2.3.3、数码管显示部分 (14)2.3.3.1、LED数码管的特点: (15)2.3.3.2、数码管动态扫描....... 错误!未定义书签。
2.3.3.3、数码管驱动部分 (16)2.3.3.4、单片机计数及控制部分 (17)复位电路 (21)复位电路的分类 (21)3.4、系统程序设计 .................. 错误!未定义书签。
3.4.1、程序流程图................ 错误!未定义书签。
3.4.2、程序设计 .................... 错误!未定义书签。
目录1.前言 12 光电计数器的系统设计 12.1 系统硬件设计 12.1.1方案选择 12.1.2仪器各部分组成 22.2 系统软件设计 33 设计原理 53.1转速计算及误差分析 53.2转速测量 63.2.1门控方式计数 63.2.2中断方式计数 73.3串行显示接口 74 软件程序的设计 84.1 1s定时 84.2 T1计数程序 84.3 频率数据采集 94.4 进制转换 104.5 数码显示 135 软件设计总体程序 156 总程序调试 217 心得体会 21参考文献 221.前言21世纪是信息时代,获取信息,处理信息,运用信息。
传感与检测技术的重要性在于它是获得信息并对信息进行必要处理的基础技术,是获取信息和处理加工信息的手段,无法获取信息则无法运用信息。
传感与检测技术是一门知识面广、综合程度高、实用性很强的专业课程。
它从传感器的基本理论入手,着重讲叙传感器的结构与感测原理,传感器是一个二端口的装置,不同的传感器输入-输出特性不同,同一传感器适应不同的被测信号呈现的特性也有所不同。
尤其当被测信号为静态信号时两种状态下,传感器的输入-输出特性完全不同。
感测技术在许多新技术、新器件里都有应用,在课程安排上,以信息的传感、转换、处理为核心,从基本物理概念入手,阐述热工量、机械量、几何量等参数的测量原理及方法。
光电式传感器是将光信号转化为电信号的一种传感器。
它的理论基础是光电效应。
这类效应大致可分为三类。
第一类是外光电效应,即在光照射下,能使电子逸出物体表面。
利用这种效应所做成的器件有真空光电管、光电倍增管等。
第二类是内光电效应,即在光线照射下,能使物质的电阻率改变。
这类器件包括各类半导体光敏电阻。
第三类是光生伏特效应,即在光线作用下,物体内产生电动势的现象,此电动势称为光生电动势。
这类器件包括光电池、光电晶体管等。
光电效应都是利用光电元件受光照后,电特性发生变化。
敏感的光波长是在可见光附近,包括红外波长和紫外波长。
课程设计课程名称51单片机原理及应用题目名称单片机“0~99”加法计数器程序设计专业班级学生姓名学号指导教师蚌埠学院运算机科学与技术系课程设计任务书目录前言 (6)一.单片机介绍 (6)(一).AT89C51简介 (6)(二).主要特性 (7)(三).特性概述 (7)(四).管脚说明 (7)(五).芯片擦除 (9)(六) (9)二.课程设计的目的和要求 (13)(一).设计目的 (13)(二).课程设计题目 (13)(三).设计任务及要求 (13)三.整体设计思路 (13)(一).硬件设计思路及系统框图 (13)1.硬件设计思路: (13)2.原器件清单 (14)3.系统框图 (14)(二).软件设计思路: (14)(三).对照表 (14)(四).程序流程图 (15)四.硬件设计 (17)(一).芯片主要特性 (17)(二).管脚说明: (17)(三).排阻的作用 (18)(四).电路图说明 (19)1.添加晶振和复位 (19)2.添加P0和P2两个按键 (19)3. 数码管动态显示 (19) (19)五.软件设计说明 (19)}得和体会: (20)(二).建议和意见: (20)八.参考文献 (21)附录: (22)(一).汇编源程序 (22)(二).原理图 (24)前言单片机全称叫单片微型运算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处置能力的中央处置器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、按时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上组成的一个小而完善的运算机系统。
目前单片机渗透到咱们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各类仪表的控制,运算机的网络通信与数据传输,工业自动化进程的实时控制和数据处置,普遍利用的各类智能IC卡,民用奢华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,和程控玩具、电子宠物等等,这些都离不开单片机。
一、概述随着科技的不断发展,单片机技术已经在各个领域得到了广泛的应用。
单片机计数器作为单片机应用的一个重要组成部分,其设计与实现原理受到了广大工程师和技术人员的关注。
本文将探讨基于单片机的计数器设计与实现原理,旨在为相关技术人员提供参考和借鉴。
二、基于单片机的计数器设计原理1. 计数器概述计数器是一种特殊的时序逻辑电路,主要用于实现数据的计数、测量和控制。
在数字系统中,计数器广泛应用于各类仪器仪表、控制系统和通信设备中。
基于单片机的计数器设计原理需要充分理解计数器的工作原理和结构特点,才能设计出符合实际需求的计数器系统。
2. 单片机计数器的工作原理单片机计数器通常由定时器和计数寄存器组成。
定时器负责产生时钟信号,计数寄存器用于存储计数值。
在计数器工作过程中,定时器不断产生时钟信号,计数寄存器根据时钟信号不断进行计数,当达到设定值时触发相应的动作。
单片机计数器的工作原理是通过定时器和计数寄存器的相互配合来实现的。
三、基于单片机的计数器实现原理1. 单片机选择在进行基于单片机的计数器设计时,需要根据实际需求选择适合的单片机型号。
单片机的选择需要考虑计数精度、计数速度、外部接口、功耗等因素,以确保设计的计数器能够满足实际应用需求。
2. 硬件设计基于单片机的计数器硬件设计包括定时器、计数寄存器、外部触发器等部分。
定时器的选取和设计是计数器性能的关键,需要根据实际应用需求选择合适的定时器型号,并设计合理的时钟电路和触发电路。
3. 软件编程基于单片机的计数器实现需要进行相应的软件编程。
在软件编程过程中,需要对定时器和计数寄存器进行初始化配置,并编写相应的中断服务程序。
通过软件编程,可以实现计数器的各种功能,并且提高计数器的灵活性和扩展性。
四、基于单片机的计数器实现案例分析以ATmega328单片机为例,介绍基于单片机的计数器实现案例。
首先对ATmega328单片机的特性和定时器模块进行介绍,然后进行硬件设计,并编写相应的软件程序。
基于AT89C51单片机的计数器设计计数器是数字电路中最基础的电路之一,它能够将输入的脉冲信号进行计数和累加。
基于AT89C51单片机的计数器设计,可以实现脉冲信号的计数和显示,同时也能够对计数器进行复位和暂停等控制操作。
AT89C51单片机是一种CMOS 8位微控制器,包括128字节的RAM内存和4K字节的Flash 程序存储器。
它采用的是Harvard结构,分别拥有不同的数据总线和指令总线,能够支持高速的指令执行和数据传输。
其外设包括定时器、串口、ADC等,具有广泛的应用领域,特别是在计数器控制电路中,AT89C51单片机的表现尤为出色。
1.硬件设计基于AT89C51单片机的计数器设计硬件部分包括脉冲信号输入电路、数码管显示模块和单片机控制电路三部分。
(1)脉冲信号输入电路脉冲信号输入电路是计数器硬件电路的一个关键部分。
它能够将输入的脉冲信号进行滤波和处理,并将其送入单片机进行计数。
在本设计中,使用一个稳压二极管和一个电容进行滤波处理,将输入的脉冲信号稳定在5V左右的级别。
同时,在输入电路中还添加了一个SPST开关,用于计数器的启停操作。
(2)数码管显示模块数码管显示模块是计数器设计中的另一个重要部分。
它能够将计数结果进行显示,并且可以根据不同的计数模式进行不同的数字显示。
在本设计中,数码管采用共阳数码管显示模式,通过AT89C51单片机对数码管的控制,实现数字0~9的动态显示。
(3)单片机控制电路单片机控制电路包括AT89C51单片机、连接数码管的74HC595移位寄存器、计数器的启停及重置电路,以及单片机和脉冲信号输入电路之间的连接电路。
其中,74HC595移位寄存器能够将AT89C51单片机的数据输出转换为数码管的控制信号输出。
计数器的启停及重置电路由一个单极开关和一个脉冲控制IC组成,用于计数器的启停和复位操作。
基于AT89C51单片机的计数器设计软件部分是实现计数器基本功能的关键。
重庆信息技术职业学院毕业设计题目基于单片机的数码管显示计时器设计选题性质: 设计□报告□其他院系电子工程学院专业电子信息工程技术班级 12 级(1)班学号 1220090141学生姓名陈军指导教师唐玉萍教务处制2012年 9 月 1 日目录1、课程设计目的*************************************************42、课程设计具体要求*********************************************43、课程设计正文*************************************************5 3.1硬件设计***************************************************53.1.1 方案设计**********************************************53.1.2 AT89S51功能介绍及其设计******************************53.1.3CD4511功能介绍及其设计******************************113.1.4数码管功能介绍及其设计********************************133.1.5 单元电路设计*****************************************16 3.1.6原理图***********************************************17 3.1.7PCB图************************************************183.1.8系统调试**********************************************183.2 软件设计**************************************************193.2.1 系统分析**********************************************193.2.2 系统设计**********************************************193.2.3 系统实施及程序****************************************194、课程设计总结*************************************************211、课程设计目的单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用非常广泛,发展很迅速。
湖南科技大学单片机课程设计题目基于单片机的计数器设计姓名李建雄学院机电工程学院专业测控技术与仪器学号09030303指导教师戴巨川成绩- - 总结资料二〇一二年六月二日摘要本设计是根据我们所学习的单片机课程,按照课程要求进行的课程检验。
单片机技术是一个不可或缺的技术,尤其是对于我们测控技术与仪器专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。
现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和X围也越来越广,成为现代电子系统中最重要的智能化核心部分。
随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的X围越来越广,随之而来的竞争也越来越激烈。
过硬的技术也成为众多生产厂商竞争的焦点之一。
厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。
现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。
计数器的应用X围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、- - 总结资料制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。
目录第一章系统的功能要求 (4)1.1系统设计的要求及主要内容应解决的问题 (4)第二章方案论证 (4)2.1设计方案选择 (4)2.2设计原理 (5)第三章系统硬件电路设计 (6)3.1最小系统设计 (6)3.2原理图 (9)- - 总结资料3.3电路仿真 (10)第四章系统程序设计 (12)4.1系统软件设计流程图 (12)4.2程序 (13)第五章调试及性能分析 (14)5.1系统性能测试与功能说明 (14)5.2软件调试问题及解决 (14)参考文献 (14)附件计数器程序 (15)实物电路图 (16)第一章系统的功能要求要求:1.整个系统有较强的抗干扰能力.2.计数X围:00~99.3.将计数值准确显示出来.应解决问题:- - 总结资料基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
第二章方案论证2.1设计方案选择方案一:采用多种数字逻辑电路来实现逻辑控制、主门、门控、计数单元的设计要求,这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。
所以方案一不采用。
方案二:可以采用FPGA来实现逻辑控制、主门、门控、计数单元的设计要求,并且设计方便,但由于对FPGA的技术原理掌握不够熟练,所以放弃方案二。
方案三:系统采用8051为核心的单片机控制系统,实现原理图中的逻辑控制、主门、门控、计数的设计要求单片机计数器的方式控制寄存器TMOD中的GATE位=1时,可以很方便的进行INT0- - 总结资料引脚的外部输入信号的时间间隔测量。
且单片机的控制电路很容易实现扩展,比如语音模块、测温I2C模块、时钟模块、A/D模块等。
故采用方案三。
2.2 设计原理利用AT89S52单片机来制作一个手动计数器,在AT89S52单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图2-1所示:图2-1 硬件电路图系统板上硬件连线- - 总结资料1)把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
2)把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;3)把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上.第三章系统硬件电路的设计3.1 最小系统设计- - 总结资料图3-1 单片机最小系统的结构图单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍一下每一个组成部分。
1.电源引脚Vcc 40 电源端;GND 20 接地端;工作电压为5V- - 总结资料2.外接晶体引脚3.复位RST 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据- - 总结资料总线,访问期间内部的上拉电阻起作用。
(2) P1端口[P1.0-P1.7] P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
(3) P2端口[P2.0-P2.7] P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4)P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
3.2 原理图图3-4 电路总图数码管的介绍在本任务中用两位数码管显示当前数值的十,个,采用动态显示方式。
两位数码管的相同段并联在一起,由一个6位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O 口输出的字位码确定的。
数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效数码管使用条件:a、使用电压段:根据发光颜色决定;b、小数点:根据发光颜色决定c、使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA 峰值电流100mA数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:1s(3)表面有保护膜的产品,可以在使用前撕下来。
3.3 电路仿真在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
用PROTUES软件,画出M=99的计数器仿真图,得到的图如下所示图3-11 仿真图第四章软件设计程序设计内容(1.单片机对按键的识别的过程处理(2.单片机对正确识别的按键进行计数,计数满时,又从零开始计数;(3.单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。
如何拆开十位和个位我们可以把所计得的数值对10求余,即可个位数字,对10整除,即可得到十位数字了。
(4.通过查表方式,分别显示出个位和十位数字。
4.1 系统软件设计流程图主程序先是开始,然后赋初值,本设计采用的是动态显示,所以在赋玩初值后显示程序不断被调用。
开始初始化计数----(按键)显示图4-1主程序流程图4.2 程序#include <AT89S52.H>unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char Count;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){Count=0;P0=table[Count/10];P2=table[Count%10];while(1){if(P3_7==0){delay10ms();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);}}}}第五章调试及性能分析5.1 系统性能测试与功能说明走时:默认为计数状态,显示两位数,时间会按实际时间以秒为最小单位变化,从00—99的计数,按复位键,重00开始,重新计数。
5.2 软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。
软件调试可以采取离线调试和在线调试两种方式。
前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。
本次课题,keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。
仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。
首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。
参考文献[1] 《单片机系统设计及工程应用》雷思孝等XX电子科技大学[2] 《电路基础》吴大正XX电子科技大学[3] 《c++程序与设计语言》揣锦华等XX电子科技大学[4] 《MCS—51/96系列单片机原理及应用》孙涵芳航空航天大学计数器程序#include <AT89S52.H>unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char Count;void delay10ms(void){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}void main(void){Count=0;P0=table[Count/10];P2=table[Count%10];while(1){if(P3_7==0){delay10ms();if(P3_7==0){Count++;if(Count==100){Count=0;}P0=table[Count/10];P2=table[Count%10];while(P3_7==0);- - -.. - - 总结资料} } } }实物电路图- - -..- - 总结资料。