基于单片机的频率计数器课程设计

合集下载

基于C51单片机数字频率计课程设计资料

基于C51单片机数字频率计课程设计资料

(华)课程设计(论文)目录摘要................................................. .....错误!未定义书签。

1 引言 (2)1.1数字频率计概述 (2)1.2频率测量仪的设计思路与频率的计算 (2)1.3 基本设计原理 (3)2 数字频率计(低频)的硬件结构设计 (4)2.1 系统硬件的构成 (4)2.2 系统工作原理图 (4)2.3 AT89C51单片机及其引脚说明 (5)2.4 信号调理及放大整形模块 (7)2.5 时基信号产生电路 (7)2.6显示模块 (9)3软件设计 (13)3.1量程转换 (13)3.2 BCD转换 (13)3.3 LCD显示的功能 (13)4模块电路仿真 (14)5 结束语 (16)参考文献 (17)附录汇编源程序代码 (18)1 引言本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。

并且引导一种创新的思维,把学到的知识应用到日常生活当中。

在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。

全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。

1.1数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD 显示器动态显示6位数。

测量范围从1Hz —10kHz 的正弦波、方波、三角波,时基宽度为1us ,10us ,100us ,1ms 。

单片机课设频率计数器

单片机课设频率计数器

等级:课程设计课程名称单片机原理及应用课题名称频率计数器专业电子信息工程班级1302学号0218姓名许聪指导老师寻大勇等2016年3月25日电气信息学院课程设计任务书课题名称频率计数器姓名许聪专业电子信息班级1302 学号18指导老师寻大勇课程设计时间2016年3月14日-2016年3月25日教研室意见意见:审核人:一、任务及要求设计任务:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果能够显示出来。

要求能够对0-250KHz的信号频率进行准确计数,计数误差不超过±1HZ。

设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4) 应用系统的硬件和软件的调试。

二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。

周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。

周五进行答辩和设计结果检查。

三、参考资料1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010目录第1章设计任务及要求 (1)设计任务 (1)设计要求 (1)第2章系统方案设计 (1)基本设计原理 (1)方案整体框图 (2)第3章系统硬件电路设计 (2)复位电路 (2)晶振电路 (3)LED数码管显示电路 (3)第4章系统软件设计 (4)主程序流程图 (4)初始化模块 (5)信号频率测量模块 (5)数码管显示模块 (5)程序中断模块 (6)数码管扫描模块 (7)第5章系统仿真及调试 (7)C程序编译 (8)Proteus仿真 (9)心得体会 (9)参考文献 (10)附录A 仿真总图 (12)附录B 程序清单 (13)第1章设计任务及要求设计任务:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果能够显示出来。

单片机数字频率计课程设计

单片机数字频率计课程设计

单片机数字频率计课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解数字频率计的工作机制。

2. 使学生能够运用单片机编程实现数字频率计的功能,包括计时、计数和显示。

3. 让学生了解数字频率计在实际应用中的重要性,如信号处理、电子测量等领域。

技能目标:1. 培养学生运用单片机进行数字频率计设计和编程的能力。

2. 培养学生运用相关软件(如Keil、Proteus等)进行电路仿真和调试的能力。

3. 提高学生的动手实践能力,学会在实际操作中发现问题、解决问题。

情感态度价值观目标:1. 激发学生对电子技术和单片机编程的兴趣,培养其创新精神和实践能力。

2. 培养学生严谨的科学态度,注重实验数据的准确性和可靠性。

3. 增强学生的团队协作意识,学会在项目合作中相互支持、共同进步。

课程性质:本课程为实践性较强的课程,要求学生在掌握理论知识的基础上,进行实际操作和项目实践。

学生特点:学生具备一定的单片机基础知识,对编程和电路设计有一定了解,但实际操作能力有待提高。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以项目为导向,培养学生的动手实践能力和创新能力。

通过课程学习,使学生能够独立完成单片机数字频率计的设计和编程任务,达到课程目标所要求的具体学习成果。

二、教学内容1. 理论知识:- 单片机原理和结构:介绍单片机的内部组成、工作原理及性能特点。

- 数字频率计原理:讲解频率的概念、测量原理及其在电子测量中的应用。

- 编程语言:回顾C语言基础知识,重点掌握单片机编程相关语法。

2. 实践操作:- 电路设计:学习使用Proteus软件设计数字频率计电路,包括单片机、计数器、显示模块等。

- 程序编写:运用Keil软件编写数字频率计程序,实现计数、计时和显示功能。

- 仿真调试:在Proteus环境下进行电路仿真,调试程序,确保其正常运行。

3. 教学大纲:- 第一周:回顾单片机原理和结构,学习数字频率计原理。

(完整word版)单片机课设频率计数器

(完整word版)单片机课设频率计数器

课程设计课程名称单片机原理及应用课题名称频率计数器专业电子信息工程班级1302学号201301030218姓名许聪指导老师寻大勇等2016年3月25日电气信息学院课程设计任务书课题名频率计数器姓许聪专电子信息班1302 学18指导老寻大勇课程设计时2016年3月14日-2016年3月25日教研室意见意见: 审核人:一、任务及要求设计任务:本课题以单片机为核心.设计和制作一个频率计数器.来完成对输入的信号进行频率计数。

计数的频率结果能够显示出来。

要求能够对0-250KHz的信号频率进行准确计数.计数误差不超过±1HZ.设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4) 应用系统的硬件和软件的调试。

二、进度安排第一周:周一:集中布置课程设计任务和相关事宜。

查资料确定系统总体方案.周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。

周五进行答辩和设计结果检查。

三、参考资料1、王迎旭等。

单片机原理及及应用。

2版.机械工业出版社。

20122、胡汉才。

单片机原理及其接口技术。

3版。

清华大学出版社.2010。

3、戴灿金。

51单片机及其C语言程序设计开发实例。

清华大学出版社。

2010目录第1章设计任务及要求 (1)1。

1设计任务 (1)1。

2设计要求 (1)第2章系统方案设计 (1)2.1 基本设计原理 (1)2。

2 方案整体框图 (2)第3章系统硬件电路设计 (2)3。

1 复位电路。

.。

....。

....。

.。

...。

...。

.。

...。

..。

.。

.。

.。

.....。

..23。

2晶振电路.。

.。

....。

.....。

.....。

....。

...。

...。

.。

...。

...。

.。

.。

33.3 LED数码管显示电路...。

.。

..。

.。

..。

.。

.。

..。

.。

..。

.。

.。

..。

.。

3第4章系统软件设计.. (4)4。

单片机频率计数器课程设计讲解

单片机频率计数器课程设计讲解

课程设计报告课程名称:单片机课程设计题目:基于单片机的频率计数器设计学院:环境与化学工程系:过程装备与测控工程专业:班级:学号:学生姓名:起讫日期:指导教师:摘要数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字,显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。

本课程设计主要设计一个简易的频率计,来实现信号在0-9999HZ范围内周期变化的方波频率的测定。

该文主要介绍了基于STC89C52 单片机频率计的设计方案和实现方法,该系统主要由硬件和软件两部分组成,其中重点给出了具体硬件电路图和软件流程图以及具体工作原理。

硬件部分通过洞洞板的布线设计帮助,可以确保焊接时尽量少的飞线和出错。

软件通过keil µvision编译及调试,其中在P1.7口编入了一个5500HZ的方波,用以仿真调试该频率计的软硬件功能是否能够实现输出频率的功能。

另外,本设计多增加了一个按键功能,通过一个按键来控制定时计数器的开始和关闭。

该频率计还带有3*3的矩阵键盘,可以作为扩展应用区,通过编程实现。

本设计中用的是LED共阴数码管,输出频率时采用的事动态显示的方法。

关键词:频率计;单片机;动态显示目录一、频率计数器的设计任务和要求 (1)1.1 频率计数器的设计任务 (1)1.2 设计要求及发挥部分 (1)二、方案的总体设计 (1)2.1 方案的设计 (1)2.2 方案的整体框图 (2)2.3 方案的说明 (2)三、硬件设计 (2)3.1 单片机的最小系统 (2)3.1.1 上电复位电路 (2)3.1.2 晶振电路 (3)3.2 LED数码管显示电路 (3)3.3 整体电路 (4)四、软件设计 (4)4.1 程序流程图 (5)4.2 初始化子函数 (5)4.3 延时子函数 (5)4.4 中断子函数 (5)五、系统的调试和说明 (6)5.1 C程序的说明 (6)5.2 C程序编译的结果 (6)5.3 实物图 (7)六、设计总结与心得体会 (8)6.1设计总结 (8)6.2 设计心得 (9)七、参考文献 (9)附录 (10)一、频率计数器的设计任务和要求1.1 频率计数器的设计任务本课程设计任务主要是基于单片机系统,通过软件、硬件的调试,完成一个具有计数功能的频率计数器。

基于单片机简易频率计设计

基于单片机简易频率计设计

基于单片机简易频率计设计一、前言频率计是一种测量电信号频率的仪器,其应用广泛。

本文将介绍如何基于单片机设计一个简易的频率计。

二、设计思路本次设计采用单片机作为核心控制芯片,通过捕获输入信号的上升沿和下降沿来计算出信号的周期,从而得到信号的频率。

具体实现过程如下:1. 选择合适的单片机选择一款适合本次设计要求的单片机,需要考虑其性能、价格、易用性等因素。

常见的单片机有STC89C52、AT89C51等。

2. 硬件电路设计硬件电路主要包括输入端口、捕获定时器模块、显示模块等。

其中输入端口需要接收待测信号,捕获定时器模块用于捕获信号上升沿和下降沿的时间,显示模块则用于显示测得的频率值。

3. 软件程序设计软件程序主要包括初始化程序、捕获中断服务函数和主函数等。

其中初始化程序用于设置捕获定时器模块和显示模块参数,捕获中断服务函数则是实现对输入信号上升沿和下降沿时间的捕获与计算,主函数则用于控制程序流程和显示结果。

三、硬件设计1. 输入端口设计输入端口需要接收待测信号,一般采用BNC接头。

由于输入信号可能存在较高的电压和噪声,因此需要加入滤波电路以保证输入信号的稳定性。

2. 捕获定时器模块设计捕获定时器模块是本次设计的核心部分,其主要功能是捕获输入信号的上升沿和下降沿时间,并通过计算得到信号周期和频率值。

常见的捕获定时器模块有16位定时器/计数器、32位定时器/计数器等。

在本次设计中,我们选择了16位定时器/计数器。

3. 显示模块设计显示模块主要用于显示测得的频率值。

常见的显示模块有LED数码管、LCD液晶屏等。

在本次设计中,我们选择了LCD液晶屏。

四、软件程序设计1. 初始化程序初始化程序主要包括设置捕获定时器模块参数、设置LCD液晶屏参数等。

2. 捕获中断服务函数捕获中断服务函数是实现对输入信号上升沿和下降沿时间的捕获与计算,其具体实现过程如下:(1)当捕获定时器模块捕获到输入信号上升沿时,记录当前时间值。

单片机频率计课程设计

单片机频率计课程设计

单片机频率计课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构和功能。

2. 学生能掌握频率计的设计原理,理解并运用相关电路知识。

3. 学生能了解并掌握编程语言在单片机应用中的基本使用方法。

技能目标:1. 学生能运用所学知识,设计并搭建一个简单的单片机频率计电路。

2. 学生能编写程序,实现对频率计的功能控制,进行基本的数据测量。

3. 学生能通过实验过程,培养动手操作能力、问题解决能力和团队协作能力。

情感态度价值观目标:1. 学生通过课程学习,培养对单片机及电子技术的兴趣,激发创新思维。

2. 学生能认识到单片机技术在现实生活中的应用价值,增强学以致用的意识。

3. 学生在课程实践过程中,培养严谨、细致的科学态度,提高对科学研究的尊重和热爱。

课程性质分析:本课程为实践性较强的电子技术课程,旨在通过单片机频率计的设计与实现,使学生在实践中掌握单片机技术的基本原理和应用。

学生特点分析:学生处于高年级阶段,已具备一定的电子技术基础知识,具有较强的学习能力和动手能力,对实际操作有较高的兴趣。

教学要求分析:根据课程性质和学生特点,要求课程目标具体、可衡量,注重理论与实践相结合,培养学生的实际操作能力和创新思维能力。

通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。

二、教学内容本课程教学内容围绕单片机频率计的设计与实现,结合以下章节进行组织:1. 单片机基础理论:介绍单片机的内部结构、工作原理和功能特点,重点讲解单片机的时钟系统、I/O口控制、中断系统等基础知识。

2. 频率计原理:讲解频率计的基本原理,包括信号发生器、计数器、时钟脉冲等组成部分,以及频率测量的基本方法。

3. 电路设计与搭建:指导学生运用所学知识,设计并搭建一个简单的单片机频率计电路,包括单片机选型、外围电路设计、元器件选型等。

4. 编程与调试:教授编程语言基础,如C语言、汇编语言等,指导学生编写单片机程序,实现对频率计的功能控制,并进行程序调试。

基于51单片机的频率计的设计

基于51单片机的频率计的设计

基于51单片机的频率计的设计频率计是一种测量信号频率的仪器或装置,其原理是通过对信号进行计数和定时来测量信号的周期,并进而计算出信号的频率。

在本篇文章中,我们将设计一个基于51单片机的频率计。

设计方案:1.硬件设计:(1)时钟电路:使用11.0592MHz晶振为主频时钟源。

(2)信号输入:选择一个IO口作为信号输入口,通过外部电平转换电路将信号转换为51单片机能够处理的电平。

(3)显示装置:使用一个数码管或液晶显示屏来输出测量结果。

2.软件设计:(1)初始化:设置51单片机的工作模式、引脚功能、定时器等。

初始化时,将IO口配置为输入模式,用于接收外部信号。

(2)定时器设置:利用定时器来进行时间的测量,可以选择适当的定时器和计数器来实现定时功能。

(3)外部中断设置:使用外部中断来触发定时器,当外部信号边沿发生变化时,触发定时器的启动或停止。

(4)中断处理:通过中断处理程序来对定时器进行启动、停止和计数等操作。

(5)频率计算:将计数结果经过一定的处理和运算,计算出信号的频率。

(6)结果显示:将计算得到的频率结果通过数码管或液晶显示屏输出。

3.工作流程:(1)初始化设置:对51单片机进行初始化设置,包括端口、定时器、中断等的配置。

(2)外部信号输入:通过外部电平转换电路将要测量的信号输入至51单片机的IO口。

(3)定时测量:当外部信号发生边沿变化时,触发外部中断,启动定时器进行定时测量。

(4)停止计时:当下一个信号边沿出现时,中断处理程序停止定时器,并将计数结果保存。

(5)频率计算:根据定时器的设置和计数结果,计算出信号的周期和频率。

(6)结果显示:将计算得到的频率结果通过数码管或液晶显示屏进行显示。

4.注意事项:(1)确保信号输入的稳定性:外部信号输入前需要经过滤波处理,保证稳定且无杂波的输入信号。

(2)测量精度的提高:如有必要,可以通过增加定时器的位数或扩大计数范围来提高测量精度。

(3)显示结果的优化:可以根据需要,通过增加缓冲区、优化数码管显示等方式来改善结果的可读性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第1章频率计数器设计………………………………………………1.1设计内容、要求及目的…………………………………………1.2 基本原理与总体方框图………………………………………第2章硬件系统设计……………………………………………2.1各部分方案及说明………………………………………………2.1.1 单片机部分…………………………………………………2.1.2 状态译码器…………………………………………………2.1.3数据显示电路………………………………………………………第3章软件系统设计……………………………………………3.1 应用系统的程序设计………………………………………………3.1.1 1s定时………………………………………………………………3.1.2 T1计数程序………………………………………………………3.1.3 进制转换………………………………………………………3.1.4 数码显示………………………………………………………3.2 程序调试………………………………………………………………第4章设计总结体会……………………………………………参考文献………………………………………………………………附录………………………………………………………………………………第1章频率计数器设计1.1 设计的内容、要求及目的设计内容:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果通过6位动态数码管显示出来。

要求能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。

设计要求:1.设计方案要合理、正确;2.系统硬件设计;3.完成必要元器件选择;4.系统软件设计及调试;5.写出设计报告实验目的本应用系统实验的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。

并且引导一种创新的思维,把学到的知识应用到日常生活当中。

在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。

全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。

1.2 基本原理与总体方框图基本原理频率计数器的主要功能是测量周期信号的频率。

频率是单位时间( 1S )内信号发生周期变化的次数。

如果我们能在给定的 1S 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。

测量过程中定时/计数器T0和T1的工作方式设置,T1是工作在计数状态下,对输入的频率信号进行计数,在本次设计使用的98C51单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。

故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一,最大计数值为f OSC/24,由于f OSC=12MHz,因此:T1的最大计数频率为0.5mHz。

对于频率的概念就是在一秒只数脉冲的个数,即为频率值。

所以T0工作在定时状态下,每定时1秒中到,就停止T1的计数,而从T1的计数单元中读取计数的数值,然后进行数据处理。

送到数码管显示出来。

总体方框图课题设计的是一种以单片机为主控制的频率计。

数字频率计主要由以下几部分组成:定时计数、采集数据、进制转换和数码显示。

本课题主要是以单片机AT89C51 为核心, 通过计数电路, 以及软件程序的编写, 实现脉冲频率的显示。

频率计系统总体框图如下:第2章硬件系统设计此次设计要求制作一频率计系统,需要使用的硬件主要包括51单片机芯片,74LS138译码器和数码管。

另外还是用到排线若干,下载线及电源线。

2.1 各部分方案选定、功能2.1.1 单片机部分本次设计采用了AT89C51 单片机, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

如图2所示:图2 AT89C52引脚图AT89C51拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C51拥有定时/ 计数器(T0、T1),可实现定时与计数的功能。

单片机AT89C51的P0、P2的4个8位并行I/O口可进行外部存储设备扩展。

2.1.2 状态译码器(74LS138)图3 74LS138译码器74LS138译码器输出的状态控制数码管的亮与灭,它有6个状态,连接到数码管的位选,达到点亮数码管点亮的要求。

2.1.3 数据显示电路图4 显示电路图数据显示电路由限流电路和7段数码管组成,采用器件LED 显示器。

本设计中采用了六个七段数码管进行数据显示, 将五个数码管串接起来进行显示, 显示数据即是对频率计的测量结果。

系统板上硬件连线:(1)把“单片机系统”中的P0.0-P0.7口连接动态数码的段选ABCDEFGH 端口。

(2)把“单片机系统”中的P2.0-P2.2与译码器74LS138的A、B、C、引脚相连,再把译码器经“非门”与“动态数码显示”区域中的1、2、3、4、5、6端口用6芯排线连接。

(3)把“单片机系统”中的P3.5(T1)端子用导线连接到“频率源”的端子上。

(4) 把P3.2(/INT1)与按键连接。

第3章软件系统设计3.1 应用系统的程序设3.1.1 1s定时采用T0定时50ms,连续循环定时20次即可完成1s定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1s定时到时。

其程序流程图如图5所示。

图5 1s定时流程图3.1.2 T1计数程序设计中T1采用计数功能,思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。

当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。

T1计数程序的流程图如图6所示。

图6 T1计数流程图3.1.3 进制转换算法的基本思路是:第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;以后也是以此类推得到十进制数的百位、千位……以上算法必须要注意的一个为题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。

该本次频率计系待测的时钟信号的最高频率为460800Hz,对应的十六进制数为70800H,这里就以70800H转换为十进制数为例来说明这种算法。

第一步:用7H除以10,商0H余7H,把商0存储在24H单元,余数7H与下一个字节08H的高半字节0H组合成一个字节70H。

70H除以10,商BH余2H,把商BH存储在25H单元,余数2H与8H组合成一个字节28H。

28H除以10,商4H余0H,把商4H存储在26H单元,余数0H与0H组合成一个字节00H。

00H除以10,商0H余0H,把商0H存储在27H单元,余数0H与0H组合成一个字节00H。

00H除以10,商0H余0H,把商0H存储在28H单元,余数0即为所需十进制数的个位。

第二步:把存储在24H与25H单元的商组合成一个字节0BH。

0BH除以10,同第一步,存储商,余数与下一个商组合成一个字节,再除以10,一次类推得到十进制数的十位0。

第三步:方法同第二步,得到十进制数的百位8。

第四步:方法同第三步,得到十进制数的千位0。

第五步:方法同第四步,得到十进制数的万位6和十万位4。

最后得到了十进制数460800。

3.1.4 数码显示将十进制数转换为相应的LED显示的代码,最容易实现的编程方法就是查表,因数码管最多只需要显示六位,只需要查六次表就可以了,图7是将十进制数对应的LED显示代码存入以60H为首单元的流程图。

图7 十进制数转换为显示代码流程图3.2 程序的调试编写的频率计总体程序编译成HEX文件,写入51单片机内,在观察数码管显示的时候,发现高位的“0”仍然能够显示,而通常十进制的高位的“0”通常是省略的。

为了解决这个问题,需要另外添加一段屏蔽高位的“0”的程序。

具体程序编写如下:PINGBI: MOV 20H,#06HMOV R1,#55HPANDUAN:MOV A,@R1JNZ SCANNUMDEC R1DEC 20HAJMP PANDUAN程序经过调试以后,数码管从高位第一位不为“0”的数开始显示。

参考文献1、《单片机原理与应用》王迎旭等编机械工业出版社2、《51系列单片机设计实例》楼然苗等编北京航空航天大学出版社3、《计算机硬件技术基础实验教程》黄勤等编重庆大学出版社4、《微型计算机接口技术及应用》刘乐善主编华中科技大学出版社5、《单片微型计算机原理及接口技术》陈光东等华中科技大学出版社附录1源程序清单:ADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,B M EQU 15N EQU 5ORG 0000HAJMP MAINORG 0003HAJMP CNINT0ORG 000BHAJMP T0INTORG 001BHAJMP T1INTORG 0030HMAIN:MOV SP,#70HMOV IE,#8BH ;开放EA、T1、T0中断MOV TMOD,#51H;初始化程序MOV TH0,#3DHMOV TL0,#71HMOV 20H,#20MOV TH1,#00HMOV TL1,#00HMOV 21H,#00HMOV 22H,#00HMOV 23H,#00HSETB IT0SJMP $CNINT0:SETB TR0SETB TR1RETIT0INT:DJNZ 20H,NEXT1;定时中断服务程序CLR TR1CLR TR0MOV 22H,TH1MOV 21H,TL1AJMP TRANSBDNEXT1:MOV TH0,#3CHMOV TL0,#0B0HEXIT:RETIT1INT:INC 23H;计数中断服务程序RETITRANSBD:MOV SP,#70H;将十六进制数转换成十进制数MOV A,23HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BMOV 30H,22HANL 30H,#0F0HADD A,30HSWAP AMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV A,BSWAP AADD A,22HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV A,BMOV 30H,21HANL 30H,#0F0HADD A,30HSWAP AMOV B,#0AHDIV ABMOV 27H,A ;存储第四位商MOV A,BSWAP AANL 21H,#0FHADD A,21HMOV B,#0AHDIV ABMOV 28H,A ;存储第五位商MOV 50H,B ;存储十进制数个位MOV A,24HSWAP ASWAP AADD A,26HMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV A,BSWAP AADD A,27HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV A,BSWAP AADD A,28HDIV ABMOV 27H,A ;存储第四位商MOV 51H,B ;存储十进制数十位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BSWAP AADD A,26HMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV A,BSWAP AADD A,27HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV 52H,B ;存储十进制数百位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BSWAP AADD A,26HMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV 53H,B ;存储十进制数千位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 54H,B ;存储十进制数万位MOV 55H,A ;存储十进制数十万位DISPLAY:MOV R0,#60H;对60H-65H清零MOV R1,#06HNEXT2: MOV @R0,#00HINC R0DJNZ R1,NEXT2MOV R0,#50H;将数码管要显示的频率送到60H开头的内存MOV R1,#5FHMOV R2,#06HMOV DPTR,#TABNEXT3: MOV A,@R0MOVC A,@A+DPTRINC R0INC R1MOV @R1,ADJNZ R2,NEXT3PINGBI: MOV 20H,#06HMOV R1,#55HPANDUAN:MOV A,@R1JNZ SCANNUMDEC R1DEC 20HAJMP PANDUANSCANNUM:MOV R0,#60H;将60H开始的数送到数码管显示MOV R1,#00HMOV R2,20HLIGHT: MOV A,@R0MOV P0,AMOV A,R1MOV P2,AINC R0INC R1ACALL DELAYDJNZ R2,LIGHTAJMP SCANNUMDELAY:MOV R5,MWAIT:MOV R6,NWAITT:DJNZ R6,WAITTDEC R5DJNZ R5,WAITRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END附录2设计电路原理图:。

相关文档
最新文档