51单片机计时,要精确到毫秒,怎么改。

天知道丶 2019-05-16 04:50:21
刚学单片机,程序不太会写,学习板是AT89S52,这个程序怎么改成精确到毫秒啊,现在只能显示秒,前两个数码管不显示。
...全文
337 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly 100% 2019-05-17
  • 打赏
  • 举报
回复
定时中断的时间设置0.5
dceacho 2019-05-16
  • 打赏
  • 举报
回复
网上有51定时器自动配置工具的,可能还有在线的,输入你的晶振和你要的中断时间,直接给出TM0,TM1的配置值
  • 打赏
  • 举报
回复
这里有整个工程源码和仿真文件可下载http://www.51hei.com/bbs/dpj-157313-1.html
单片机原理及系统课程设计 专 业: 电气工程及其自动化 班 级: 姓 名: 学 号: 指导教师: "评语: " " " " " " " " " " " " " "平时(40)" "修(3" "报告(3" "总成绩 " " " " "0) " "0) " " " " 兰州交通大学自动化与电气工程学院 2012 年 7月 1日 1 引言 随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人们对它的认识也 逐步加深。秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其 中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开 始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时 过程中,只要按一下复位开关,计时应立即终止。 2 设计方案及原理 以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止 、时间显示。 采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控 制秒表的"开始"、"暂停"、"复位",按"开始"按键,开始计时;按"暂停"按键,系统暂 停计时;再按"开始"键,系统继续计时;数码管显示当前计时值;按"复位"按键,系统 清零。 3 硬件设计 MCS- 51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分 : (1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器; (2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序; (3)RAM:256B的片内数据存储器,容量小,但作用大; (4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线; (5)中断系统:共5个中断源,3个内部中断,2个外部中断; (6)定时器/计数器:2个16位的可编程定时器/计数器; (7)通用串行口:全双工通用异步接收器/发送器; (8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号; (9)总线控制:89C51对外提供若干控制总线,便于系统扩展。 89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反 相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大 器可以配置为片内振荡器。 采用上电复位,上电后,由于电容充电,使RST持续一段时间的高电平,从而实现上 电复位操作。 采用3个LED数码管,LED是七段显示器,内部有7个条形发光二极管和1个小圆点发光 二极管,根据各管的亮暗组成字符。用Proteus软件画出主电路图见附录一。 4 软件设计 (1)秒表的初始化 根据程序流程图,先进行秒表的初始化,即: 将I/O口P3全写一,为秒表的控制输入 做好准备; 将数码管全部置零,使其处于秒表计时的初始状态; 将工作寄存器R0~R2以 及30H初始化,留待后面的计时程序备用; 将定时器0置于工作方式1,并为其装入计时 预置数D8FE(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的 修正值),即将定时器定为每10ms溢出; 开总中断允许和定时器0中断允许。初始化完 成后,即进入之后的按键扫描程序。 (2)按键检测程序 轮流检测开始计时(P3.2)、暂停计时(P3.3)、秒表清零(P3.4)三个按键。若发现有一 个按键出现低电平(可能被按下),则延时10ms(调用延时子程序DELAY),延时完成后 ,若发现低电平消失,则说明该按键实际上未被按下,此时转回按键检测处继续检测; 若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执 行相应的功能。 (3)开始计时 若确认"开始计时"键被按下,则跳转至程序标号"RUN"处,将定时器0计时允许控制位 TR0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次 指令。 (4)计时程序 定时器0计时至10ms,溢出,引发中断,程序跳转至定时器0中断服务程序入口000BH 处执行。程序跳转至中断服务程序TIME0。由于秒表的最小计时单位是0.1s,即100ms, 因此需加入软件计时,使定时器0溢出10次之后才变数码管的显示状态。因此每来一次 中断就将30H中的数加1,若30H中的数没有到10,则给定时器0重新装入预置数,之后中 断返回并继续等待中断;到10了,才进入显示程序,变数码管的显示状态,执行完毕 之后中断返回并继续等待中断。 (5)显示程序 将数码管的段选码放在数表TAB中。每次100ms计时完成后,将R0中的值(初值为0) 送入A,然后自加1。若R0中的值没到10,则使用累加器A查表,并将查得的数码管段选码 送入毫秒位数码管。之后将30H中的数置零,中断返回。若发现R0中的数到
单片机原理及系统课程设计 专 业: 电气工程及其自动化 班 级: 姓 名: 学 号: 指导教师: "评语: " " " " " " " " " " " " " "平时(40)" "修(3" "报告(3" "总成绩 " " " " "0) " "0) " " " " 兰州交通大学自动化与电气工程学院 年 月 日 1 引言 随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人们对它的认识也 逐步加深。秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其 中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开 始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时 过程中,只要按一下复位开关,计时应立即终止。 2 设计方案及原理 以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止 、时间显示。 采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控 制秒表的"开始"、"暂停"、"复位",按"开始"按键,开始计时;按"暂停"按键,系统暂 停计时;再按"开始"键,系统继续计时;数码管显示当前计时值;按"复位"按键,系统 清零。 3 硬件设计 MCS- 51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分 : (1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器; (2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序; (3)RAM:256B的片内数据存储器,容量小,但作用大; (4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线; (5)中断系统:共5个中断源,3个内部中断,2个外部中断; (6)定时器/计数器:2个16位的可编程定时器/计数器; (7)通用串行口:全双工通用异步接收器/发送器; (8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号; (9)总线控制:89C51对外提供若干控制总线,便于系统扩展。 89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反 相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大 器可以配置为片内振荡器。 采用上电复位,上电后,由于电容充电,使RST持续一段时间的高电平,从而实现上 电复位操作。 采用3个LED数码管,LED是七段显示器,内部有7个条形发光二极管和1个小圆点发光 二极管,根据各管的亮暗组成字符。用Proteus软件画出主电路图见附录一。 4 软件设计 (1)秒表的初始化 根据程序流程图,先进行秒表的初始化,即: 将I/O口P3全写一,为秒表的控制输入 做好准备; 将数码管全部置零,使其处于秒表计时的初始状态; 将工作寄存器R0~R2以 及30H初始化,留待后面的计时程序备用; 将定时器0置于工作方式1,并为其装入计时 预置数D8FE(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的 修正值),即将定时器定为每10ms溢出; 开总中断允许和定时器0中断允许。初始化完 成后,即进入之后的按键扫描程序。 (2)按键检测程序 轮流检测开始计时(P3.2)、暂停计时(P3.3)、秒表清零(P3.4)三个按键。若发现有一 个按键出现低电平(可能被按下),则延时10ms(调用延时子程序DELAY),延时完成后 ,若发现低电平消失,则说明该按键实际上未被按下,此时转回按键检测处继续检测; 若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执 行相应的功能。 (3)开始计时 若确认"开始计时"键被按下,则跳转至程序标号"RUN"处,将定时器0计时允许控制位 TR0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次 指令。 (4)计时程序 定时器0计时至10ms,溢出,引发中断,程序跳转至定时器0中断服务程序入口000BH 处执行。程序跳转至中断服务程序TIME0。由于秒表的最小计时单位是0.1s,即100ms, 因此需加入软件计时,使定时器0溢出10次之后才变数码管的显示状态。因此每来一次 中断就将30H中的数加1,若30H中的数没有到10,则给定时器0重新装入预置数,之后中 断返回并继续等待中断;到10了,才进入显示程序,变数码管的显示状态,执行完毕 之后中断返回并继续等待中断。 (5)显示程序 将数码管的段选码放在数表TAB中。每次100ms计时完成后,将R0中的值(初值为0) 送入A,然后自加1。若R0中的值没到10,则使用累加器A查表,并将查得的数码管段选码 送入毫秒位数码管。之后将30H中的数置零,中断返回。若发现R0中的数到10了,则将R
单片机原理及系统课程设计 专 业: 电气工程及其自动化 班 级: 姓 名: 学 号: 指导教师: "评语: " " " " " " " " " " " " " "平时(40)" "修(3" "报告(3" "总成绩 " " " " "0) " "0) " " " " 兰州交通大学自动化与电气工程学院 年 月 日 1 引言 随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人们对它的认识也 逐步加深。秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其 中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开 始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时 过程中,只要按一下复位开关,计时应立即终止。 2 设计方案及原理 以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止 、时间显示。 采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控 制秒表的"开始"、"暂停"、"复位",按"开始"按键,开始计时;按"暂停"按键,系统暂 停计时;再按"开始"键,系统继续计时;数码管显示当前计时值;按"复位"按键,系统 清零。 3 硬件设计 MCS- 51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分 : (1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器; (2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序; (3)RAM:256B的片内数据存储器,容量小,但作用大; (4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线; (5)中断系统:共5个中断源,3个内部中断,2个外部中断; (6)定时器/计数器:2个16位的可编程定时器/计数器; (7)通用串行口:全双工通用异步接收器/发送器; (8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号; (9)总线控制:89C51对外提供若干控制总线,便于系统扩展。 89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反 相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大 器可以配置为片内振荡器。 采用上电复位,上电后,由于电容充电,使RST持续一段时间的高电平,从而实现上 电复位操作。 采用3个LED数码管,LED是七段显示器,内部有7个条形发光二极管和1个小圆点发光 二极管,根据各管的亮暗组成字符。用Proteus软件画出主电路图见附录一。 4 软件设计 (1)秒表的初始化 根据程序流程图,先进行秒表的初始化,即: 将I/O口P3全写一,为秒表的控制输入 做好准备; 将数码管全部置零,使其处于秒表计时的初始状态; 将工作寄存器R0~R2以 及30H初始化,留待后面的计时程序备用; 将定时器0置于工作方式1,并为其装入计时 预置数D8FE(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的 修正值),即将定时器定为每10ms溢出; 开总中断允许和定时器0中断允许。初始化完 成后,即进入之后的按键扫描程序。 (2)按键检测程序 轮流检测开始计时(P3.2)、暂停计时(P3.3)、秒表清零(P3.4)三个按键。若发现有一 个按键出现低电平(可能被按下),则延时10ms(调用延时子程序DELAY),延时完成后 ,若发现低电平消失,则说明该按键实际上未被按下,此时转回按键检测处继续检测; 若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执 行相应的功能。 (3)开始计时 若确认"开始计时"键被按下,则跳转至程序标号"RUN"处,将定时器0计时允许控制位 TR0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次 指令。 (4)计时程序 定时器0计时至10ms,溢出,引发中断,程序跳转至定时器0中断服务程序入口000BH 处执行。程序跳转至中断服务程序TIME0。由于秒表的最小计时单位是0.1s,即100ms, 因此需加入软件计时,使定时器0溢出10次之后才变数码管的显示状态。因此每来一次 中断就将30H中的数加1,若30H中的数没有到10,则给定时器0重新装入预置数,之后中 断返回并继续等待中断;到10了,才进入显示程序,变数码管的显示状态,执行完毕 之后中断返回并继续等待中断。 (5)显示程序 将数码管的段选码放在数表TAB中。每次100ms计时完成后,将R0中的值(初值为0) 送入A,然后自加1。若R0中的值没到10,则使用累加器A查表,并将查得的数码管段选码 送入毫秒位数码管。之后将30H中的数置零,中断返回。若发现R0中的数到10了,则将R
单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称: 秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日 目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会 1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示"秒表",显示时间为000.0~9分 59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个"复位"按键(即清零),一个"暂停"和"开始"按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实 现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LE D数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够 正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中 key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为"0 0.00". key3按键按下去时数码管暂停。 五、课程设计的意义 1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进 一步的了解。 2) 掌握定时器、外部中断的设置和编程原理。 3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4) 该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正 确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有 现实意义 1.2课程设计思路及描述 该课程设计要求进行计时并在数码管上显示时间,则可利用MCS- 51系列单片机的芯片AT89C51的P3.2,P3.3,RST作为按键的入口;定时器T1作为每0.1秒 加一的定时器。其中"开始"按键当开关由上向下拨时开始计时,此时若再拨"暂停"按键 则数码管暂停;"清零"按键当开关由上向下拨时数码管清零,此时若再拨"开始"按键则 又可重新开始计时。 1.3 课程设计任务和要求 1.3.1 设计指标 。 了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒 ,并能用按钮实现秒表起动、停止、9分59.9秒、清零等功能,精确到0.1秒。 要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现 其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。 2.软件与硬件设计 2.1系统硬件方案设计 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的 存储器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应 用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信 息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\ O接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器 。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和 显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大, 配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按 键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键 盘,也可能是矩阵键盘。 2.2 所需原器件 "名称 "数量 " "四位数码管 "1个 " "200欧电阻 "13个 " "1千欧电阻 "4个 " "开关 "3个 " "电容 "3个 " "晶振 "1个 " "三极管 "4个 " "AT89C51 "1个 " "导线 "若干 " AT89C51的接口连接示意图 四位数码管的接口连接示意图 共阴级数码管编码 主程序流程图: 子程序流程图 3.程序编写的流程及课程设计效果 3.1 源程序及注释 ORG 0000H AJMP TOU ORG 000BH 外部中断0入口地址 LJMP MIAO ORG 0003H 外部中断0入口地址 LJMP KG ORG 0030H 定时器中0断入口地址 TOU:MOV b,#02H MOV r3,#00H MOV

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧