基于单片机的计数器设计

合集下载

基于51单片机简易计算器毕业论文

基于51单片机简易计算器毕业论文

基于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单片机的计数器设计

基于AT89C51单片机的计数器设计

基于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是串行通信接口的接收和发送端口,用于与外部设备进行通信。

二、计数器的原理和设计思路计数器是一种常用的数字电路,用于对输入信号进行计数和显示。

单片机课程设计:里程计数器

单片机课程设计:里程计数器

Part Six
单片机课程设计中 里程计数器的未来
发展
技术发展趋势与展望
智能化:里程计数器将更加智能化,能够自动识别和记录行驶里程 集成化:里程计数器将与其他车载设备集成,实现信息共享和协同工作 安全性:里程计数器将更加注重安全性,防止数据篡改和泄露 环保性:里程计数器将更加注重环保性,减少能源消耗和污染排放
06 单 片 机 课 程 设 计 中 里 程 计数器的未来发展
Part One
里程计数器概述
里程计数器的定义和作用
定义:里程计数器是一 种用于记录车辆行驶距 离的电子设备,通常安 装在车辆的仪表盘上。
作用:里程计数器可以 提供车辆的行驶距离、 行驶时间等信息,帮助 车主了解车辆的行驶状 况,同时也可以作为车 辆保养和维修的依据。
单片机课程设计-里程计 数器
,a click to unlimited possibilities
汇报人:
目录
01 里 程 计 数 器 概 述 03 里 程 计 数 器 的 实 现 过 程
02 单 片 机 课 程 设 计 中 的 里 程计数器
04 里 程 计 数 器 的 性 能 优 化
05 单 片 机 课 程 设 计 中 里 程计数器的实际应用
程序编写:根据项目需求编写里程 计数器的程序代码,包括主程序、 中断服务程序等
传感器选择与接口电路
传感器类型: 霍尔传感器、 光电传感器等
传感器性能: 精度、响应时 间、稳定性等
接口电路设计: 信号调理、信 号放大、信号
滤波等
接口电路与单 片机的连接方 式:串行通信、
并行通信等
数据存储和处理
数据采集:通过传感器获取里程数据 数据存储:将采集到的数据存储在存储器中 数据处理:对存储的数据进行计算和处理,得到里程数 数据显示:将处理后的里程数显示在屏幕上

单片机计数器的编程

单片机计数器的编程

单片机计数器的编程概述单片机计数器是基于单片机的硬件模块,可以实现数值的增加和减少的功能。

通过编程控制计数器的工作模式和计数范围,可以实现各种应用场景下的数字计数功能。

本文将介绍单片机计数器的基本原理、编程方法和应用案例,帮助读者理解和掌握单片机计数器的编程技巧。

单片机计数器的基本原理单片机计数器通常采用定时器/计数器模块实现,这个模块集成在单片机芯片内部。

具体实现方式和功能会因单片机型号和厂家而有所差异,但基本原理是相通的。

单片机计数器通常由以下几个主要组成部分构成: - 器件选择:根据需要选择合适的单片机型号和计数器模块。

- 计数寄存器:用于存储计数器的当前值。

- 预设值寄存器:用于设置计数器的初始值或比较值。

- 控制寄存器:用于控制计数器的工作模式、计数范围等参数。

- 时钟源:提供计数器的时钟信号,以确定计数的时间间隔。

根据计数器的工作模式和计数范围的不同,单片机计数器可以实现多种功能,如:- 简单计数:按照固定时间间隔进行自增或自减操作。

- 定时/延时:在一定时间后触发中断或执行特定操作。

- 脉冲计数:计算外部脉冲信号的频率或脉冲数。

- 频率计数:测量外部信号的频率。

单片机计数器的编程方法单片机计数器的编程方法主要包括以下几个方面: 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显示屏的更新。

需要注意的是,为了保证计数的准确性,我们可能需要考虑避免因传感器噪声、环境光干扰或物体堆叠而引起的计数错误。

我们可以通过设置适当的检测阈值、使用滤波算法或加入其他传感器辅助来解决这些问题。

综上所述,基于单片机的红外计数器设计包括硬件和软件两个方面。

在选择合适的单片机和红外传感器的基础上,通过合理编写代码和进行适当的优化,我们可以设计出一个功能稳定、准确计数的红外计数器。

基于C51单片机的000-999计数器

[1]李任青.单片机原理与应用.江西:南昌大学共青学院工程技术系,2011(1):86-88。
[2]迟忠君.单片机应用技术.北京:北京邮电大学出版社,2016(6):3-5。
三、设计执行过程(请根据以下内容填写对该设计项目用到的理论知识)
1、总体设计框图(画出总体设计框图,并结合设计框图简述工作原理,写不下可另附页)
五、项目结题评审(请根据以下内容做好记录,并提交完整的项目设计报告给老师打分)
1、项目答辩记录(请将老师提的问题和答案记录下来)
问题一:
问题二:
记录人:年月日
2、结题答辩组评审意见(以下由老师填写)
成绩专家组:、年月日
3、项目成绩评定(请将老师提的问题和答案记录下来)
项目教学活页成绩:。
答辩成绩:。
若干
12MHz晶振
1个
0.8mm焊锡
若干
30pF瓷片电容
2个
10uF电解电容
1个
10k电阻
1个
5、焊接图纸和说明(用铅笔或专业软件画出详细的焊接布局设计图,元件引脚标注详细清晰。)
说明:使用ProtellDXP画出pcb布线图,布线图采用双层布线模式,蓝色导线位于底层,红色导线位于顶层。
6、实物效果照片和功能说明(用高清相机拍出实物的效果照片,此页彩色打印,要体现出任务书中的功能效果,图片高清,并附有功能效果的文字说明,可另附页。)
说明:考虑到数码管位置的摆放问题,故将程序的P1和P0对调,P0控制十位数显示,P1口控制百位数显示,其余不变。
四、项目总结(请根据以下内容做工作总结,并提交完整的项目设计报告)
1、学习小结(对学习到的知识点进行总结、归纳)
通过这次000-999计数器的设计,总体来说,我的收获很大。无论是在培养自己的实验动手能力还是在自己独立思考能力方面。在此次点阵设计的过程中,更进一步的熟悉了proteus软件和DXP软件的使用以及加深了对芯片结构的了解和掌握,加强了对c语言的认识,学会了如何拆分数字的百位,十位以及个位,并将其传送到单片机的各个端口,了解了数码管的内部结构,在以后的学习中会有很大的帮助。

基于单片机的光电计数器的设计

光电计数器设计专业:机械设计制造及其自动化班级:机自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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学单片机课程设计题目基于单片机的计数器设计姓名李建雄学院机电工程学院专业测控技术与仪器学号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);- - -.. - - 总结资料} } } }实物电路图- - -..- - 总结资料。

相关文档
最新文档