单片机课程设计--定时器
单片机定时器设计
单片机定时器设计
一、设计原理
单片机定时器是通过计时寄存器来实现定时功能的。
一般来说,计时寄存器是一个16位的寄存器,存放的值从0x0000到0xFFFF之间。
定时器通过不断地递增计时寄存器的值,来实现定时的功能。
当计时寄存器达到预设的值时,会产生一个定时器中断信号,可以通过该中断信号来触发其他相关操作。
定时器工作的基本原理是通过外部晶振提供一个基准时钟,利用该时钟周期性地对计时寄存器进行递增。
根据外部晶振的频率,定时器的精度也会不同。
定时器的工作模式主要分为两种:定时工作模式和计数工作模式。
定时工作模式是指定时器在达到预设的值后产生中断,并重新开始计时。
计数工作模式是指定时器不断地计数,直到外部触发一个事件,产生中断并清零计时寄存器。
二、设计实例分析
1.设计一个1秒的定时器
2.设计一个毫秒级的定时器
3.设计一个按键消抖定时器
在按键输入中,为了避免按键的抖动,常常需要使用定时器来进行按键的消抖处理。
假设按键抖动时间为10ms,我们可以设置一个10ms的定时器,在定时器中断时检测按键状态,若按键状态稳定一致,则认定按键有效。
结语
单片机定时器是一种非常实用的功能模块,可以实现各种定时、测定、控制等功能。
本文通过给出了几个常见的定时器设计实例,并提供了相应
的计算公式,希望对读者有所帮助。
通过进一步学习和实践,读者可以更
加深入地理解和应用单片机定时器。
定时闹钟单片机课程设计
定时闹钟单片机课程设计设计背景与目的定时闹钟是我们日常生活中经常使用的一种设备。
它可以帮助人们准时起床或提醒完成某项任务。
在现代社会快节奏的生活中,定时闹钟的使用频率越来越高,因此,设计一个定时闹钟单片机课程是非常有必要的。
本次设计的目的是让学生能够通过实践了解单片机的基本原理和操作。
通过设计一个定时闹钟,学生可以深入理解定时器的使用,了解时钟的工作原理,并通过实际操作掌握单片机编程技能。
设计原理和流程设计原理本次定时闹钟单片机课程设计主要使用了单片机的定时器和外部中断功能。
单片机的定时器可以生成计时中断,而外部中断可以用来接收按键输入。
设计的基本原理是,定时器定时一定的时间后触发计时中断,中断函数中实现闹钟功能。
同时,通过外部中断接收按键输入,用来设置闹钟时间。
设计流程1.设置定时器的工作模式和计时时间。
2.设置外部中断,用于接收按键输入。
3.编写中断函数,实现闹钟功能。
4.编写主函数,初始化单片机和相关端口。
5.在主函数中进入循环,不断监听按键输入和处理闹钟逻辑。
设计实现硬件设计本次设计使用的硬件主要包括单片机、按键和数码管。
1.单片机:选择一款适合的单片机,如STC89C52系列单片机,具备定时器和外部中断功能。
2.按键:使用几个按键来实现闹钟的设置和关闭。
3.数码管:用于显示当前时间和闹钟设置时间。
软件设计本次设计使用Keil C编程软件和Proteus仿真软件。
软件设计主要包括以下几个模块。
1.定时器和中断:初始化定时器并设置工作模式和计时时间,编写中断函数来实现闹钟的功能。
2.IO口:根据接线设计,设置IO口的输入输出模式并初始化端口状态。
3.按键扫描:通过外部中断接收按键输入,并根据按键的不同功能来进行相应的操作。
4.数码管驱动:编写数码管的显示函数,根据当前时间和闹钟设置时间来显示相应的信息。
设计测试与改进设计完成后,需要对定时闹钟进行测试和改进。
测试阶段主要包括功能测试和稳定性测试。
单片机电子教案(定时器部分)
程序清单
#include<reg51.h> sbit led=P1^0; unsigned char i; void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0) { TF0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; i++; if(i==20) { led=!led; i=0; } } } }
1位秒表程序清单
#include<reg51.h> unsigned char m,j; unsigned char ledtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; P1=ledtable[j]; while(1) { if (TF0==1) { TF0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; m++; if(m==20) { m=0; j++; if(j>9) { j=0; } P1=ledtable[j]; } }
4.定时器/计数器控制寄存器TCON
控制寄存器TCOD
用于中断
5.定时/计数器初始化
① 确定工作方式—对TMOD赋值。如“TMOD = 0X10”,表明定时 器1工作在方式1,且工作在定时器方式。 ② 预置定时或计数的初值—直接将初值写入TH0、TL0或TH1、 TL1。 ③启动定时/计数器工作—将TR0或TR1置“1”。 ④查询TF0=1?,若为,表明定时时间到,做相应处理。
单片机实验报告定时器
一、实验目的1. 理解单片机定时器的原理及工作方式。
2. 掌握单片机定时器的编程方法,实现定时功能。
3. 学习使用定时器中断,处理定时器事件。
二、实验环境1. 硬件设备:MCS-51单片机实验板、示波器、电源等。
2. 软件环境:Keil C51、Proteus仿真软件。
三、实验原理1. 定时器概述定时器是单片机的一个重要组成部分,用于产生定时信号或测量时间。
MCS-51单片机内部有两个定时器,即定时器0和定时器1。
2. 定时器工作原理定时器通过内部计数器进行计数,当计数达到设定值时,产生一个定时中断,执行中断服务程序。
定时器的工作方式分为四种:方式0、方式1、方式2和方式3。
3. 定时器编程定时器编程主要包括以下几个步骤:(1)设置定时器工作模式:通过向定时器模式寄存器(TMOD)写入相应的值来设置定时器工作模式。
(2)设置定时器初值:通过向定时器寄存器(THx、TLx)写入相应的值来设置定时器初值。
(3)启动定时器:通过设置定时器控制寄存器(TCON)的相应位来启动定时器。
(4)编写定时器中断服务程序:当定时器溢出时,执行中断服务程序,实现相应的功能。
四、实验内容1. 实验一:定时器0定时50ms(1)硬件连接:将P1.0口连接到蜂鸣器。
(2)软件设计:- 设置定时器0工作在方式1,定时50ms。
- 开启定时器0中断。
- 编写定时器0中断服务程序,使蜂鸣器响50ms。
2. 实验二:定时器1计数脉冲(1)硬件连接:将P3.4口连接到信号发生器。
(2)软件设计:- 设置定时器1工作在方式2,计数P3.4口的脉冲信号。
- 开启定时器1中断。
- 编写定时器1中断服务程序,记录计数器计数值,并通过数码管显示。
3. 实验三:定时器0定时1s(1)硬件连接:将P1.0口连接到蜂鸣器。
(2)软件设计:- 设置定时器0工作在方式1,定时1s。
- 开启定时器0中断。
- 编写定时器0中断服务程序,使蜂鸣器响1s。
五、实验步骤1. 编写实验一程序,并使用Proteus进行仿真测试,验证程序功能。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。
技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。
学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。
2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。
3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。
4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。
单片机课程设计_定时闹钟设计
单片机系统课程设计成绩评定表设计课题:定时闹钟设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:定时闹钟设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书摘要:定时闹钟设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。
软件部分是用汇编语言编程,用protel软件进行绘图、编译、调试,形成以单片机为枢纽,以程序为动力,实现定时闹钟的功能。
关键字:AT89C51 定时闹钟protel 汇编语言目录1.设计要求 (4)2.作用与目的 (1)3.设备及软件 (1)3.1 AT89C51单片机 (1)4. 系统设计方案 (2)4.1工作原理 (2)5.系统硬件设计 (2)5.1系统总体设计 (2)5.2 系统时钟电路设计 (3)5.3系统复位电路的设计 (3)5.4闹钟指示电路设计 (4)5.5电子闹钟的显示电路设计 (4)6.系统软件设计 (5)6.1主模块的设计 (5)6.2基本显示模块设计 (6)6.3时间设定模块设计 (7)6.4闹铃功能的实现 (8)7.设计中的问题及解决方法 (11)8.总结 (12)参考文献 (13)附录1 系统整体结构电路原理图 (14)附录2 程序清单 (15)1. 设计要求1.1、能显示时时-分分-秒秒。
1.2、能够设定定时时间、修改定时时间。
1.3 定时时间到能发出报警声或者启动继电器,从而控制电器的启停。
2. 作用与目的以单片机为核心的数字时钟是很有社会意义和社会价值的。
钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能数字闹钟通过数字电路实现时、分、秒。
单片机定时器毕业设计(论文)
毕业设计毕业设计题目:学生学号:学生姓名:所在系(部):专业及班级:指导教师:完成日期:《电气自动化》专业毕业设计任务书课题名称:定时系统课题类型:模拟课题设计的目的:(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时设计的任务及主要内容::第一章概述1 任务设计(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时2 总体方案(1)设计框图系统框图如图1(2)设计思路利用89C51单片机作为本系统的中控模块。
上电后,按下功能键进入调时状态,通过各单元电路将按键部分设定的时间通过定时时间显示部分中的LED数码管显示出来,当时间设定完毕后再次按下按键部分的功能键,闹铃模块的蜂鸣器鸣叫0.5S以示定时器开始工作,到点实现响铃,再由按键部分关闹铃。
中途可重新设置定时数值。
复位部分除上电初实现复位外,其余任何时候可按键实现复位。
注:按键部分一共有4个按键,分别为功能键P3.0,秒设定键P3.1(增),分设定键P3.2(增)分设定键P3.3(减)。
3、方案论证(1)定时部分定时部分是本设计的核心部分。
方案:本方案完全用软件实现定时。
原理为:在单片机内部存储器设两个字节分别存放时钟的分、秒信息。
利用键盘部分对定时时间进行设定,由定时显示部分数码管显示,同时定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒个位减1;若秒个位减到0,则判秒十位值是否为0,若不是,则秒个位赋9,秒十位减1;分同理。
该方案具有硬件电路简单的特点。
(2)闹铃器件的选择方案:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。
采用蜂鸣器闹铃结构简单,控制方便。
单片机课程设计报告-定时闹钟(含程序)
河南理工大学单片机课程设计报告定时闹钟姓名:XXX学号:XXX专业班级:XXX指导老师:XXX所在学院:电气工程与自动化学院XXX年6月30日本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。
数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
显示部分采用六位一体的共阳极数码管,运用同相三态双向总线收发器74LS245作为输出驱动显示部件的元件。
在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。
并且在时间的调整或设置过程中本设计采用了长按进行调时或调分的选择,短按是进行在选择后进行加1,每短按一次,该单位加1.调整完毕以后再次长按原设置键即可跳出设置循环,显示部分――共阳极数码管显示正常走时的时间。
但是该程序在硬件的仿真过程中有点瑕疵。
在仿真开始时警示灯直接亮,必须通过闹钟定时键K2的闹钟设置以后时间才可以正常走时。
之后可以进行时间的调整或闹钟的重新调整。
1 概述 (3)1.1设计任务 (3)1.2设计要求 (3)1.3设计意义 (3)2 系统总体方案与硬件选择设计 (4)2.1系统总体方案 (4)2.2硬件选择设计 (4)3 软件设计 (9)3.1程序流程图 (9)3.2程序模块 (10)4 PROTEUS软件仿真 (17)5 课程设计体会 (19)参考文献 (19)附1:源程序代码 (21)附2:系统原理图 (33)1概述1.1 设计任务在熟练掌握单片机及其仿真系统的使用方法的基础上,综合应用单片机原理,微机原理,微机接口技术等专业知识,设计采用一个AT89C51单片机控制的定时闹钟。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解定时器的功能和工作原理。
2. 使学生掌握定时闹钟程序编写的基本方法,了解中断处理的相关知识。
3. 帮助学生了解电子时钟的基本构成,掌握时间计算和显示的相关技巧。
技能目标:1. 培养学生动手实践能力,学会使用编程软件编写、调试程序,实现单片机定时闹钟功能。
2. 提高学生分析问题和解决问题的能力,能够独立完成定时闹钟课程的各项任务。
3. 培养学生团队协作能力,学会在项目过程中进行有效沟通和分工合作。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发他们探索未知、自主学习的精神。
2. 培养学生勇于尝试、不怕失败的品质,提高他们面对困难时的心理素质。
3. 增强学生的创新意识,鼓励他们发挥想象力和创造力,设计出具有个性的定时闹钟作品。
课程性质分析:本课程属于电子技术与应用领域的实践课程,旨在让学生通过动手实践,掌握单片机定时闹钟的设计与制作。
学生特点分析:学生处于中学阶段,具有一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的实际操作能力。
2. 注重培养学生的创新精神和团队协作能力,提高他们的综合素质。
3. 以学生为主体,关注个体差异,因材施教,使每个学生都能在课程中取得进步。
二、教学内容1. 单片机基础原理回顾:包括单片机的结构、工作原理、定时器/计数器功能。
2. 定时器编程技术:重点讲解定时器的初始化、中断处理程序编写,以及定时器应用实例。
- 教材章节:第三章《单片机定时器/计数器》3. 中断系统原理:介绍中断的概念、中断优先级、中断向量表,以及中断处理流程。
- 教材章节:第四章《中断系统》4. 显示技术:讲解数码管、LCD等显示器件的工作原理和编程方法。
- 教材章节:第五章《显示技术》5. 定时闹钟设计与实现:包括闹钟功能的整体设计、程序编写、调试与优化。
单片机课程设计定时闹钟
单片机课程设计定时闹钟一、课程目标知识目标:1. 理解单片机的基本原理和内部结构,掌握定时器/计数器的工作原理;2. 学会使用C语言编写单片机程序,实现对定时闹钟的功能设计;3. 掌握单片机中断系统的使用,了解其在定时闹钟中的应用。
技能目标:1. 能够运用所学知识,独立设计并实现一个具有定时功能的闹钟;2. 培养学生动手实践能力,学会使用编程软件和开发工具,进行程序编写、调试与下载;3. 提高学生的问题分析和解决能力,学会在设计过程中考虑实际需求,优化程序性能。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学习热情;2. 培养学生的团队协作意识,学会在项目合作中沟通与分享;3. 培养学生严谨的科学态度,注重细节,追求卓越。
课程性质:本课程属于实践性较强的学科,要求学生将理论知识与实际操作相结合,完成具有实际应用价值的设计项目。
学生特点:学生已具备一定的单片机基础知识,对编程有一定了解,但实践经验不足。
教学要求:结合学生特点,注重实践操作,以项目为导向,引导学生通过自主探究、小组合作等方式,完成课程目标。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. 理论知识:- 单片机内部结构及工作原理复习;- 定时器/计数器原理及其在单片机中的应用;- 中断系统原理及其使用方法;- C语言编程基础复习,重点讲解定时器编程方法。
2. 实践操作:- 使用编程软件(如Keil)进行程序编写和调试;- 单片机最小系统搭建,了解并实践时钟电路、复位电路等;- 设计并实现定时闹钟程序,掌握定时中断的使用;- 调试与优化,确保定时闹钟功能的准确性。
3. 教学大纲:- 第一周:复习单片机基础知识,讲解定时器/计数器原理;- 第二周:学习中断系统,实践定时器编程;- 第三周:编写定时闹钟程序,进行初步调试;- 第四周:优化程序,完成定时闹钟功能,并进行展示与评价。
教材章节关联:- 《单片机原理与应用》第三章:单片机的内部结构和工作原理;- 第四章:定时器/计数器及中断系统;- 第九章:C语言编程。
单片机课程设计基于单片机的定时器设计
一、设计要求 (2)1.1 设计内容及要求 (2)1.2 设计方案及思路 (2)二、系统硬件设计 (2)2.1 硬件电路的总体设计方案及框图 (2)2.2 各单元硬件设计 (3)2.2..1 复位电路设计 (3)2.2.2 时钟电路设计 (3)2.2.3 显示电路设计 (4)2.2.4 主要硬件元器件介绍 (4)2.3 EDA辅助设计 (6)2.3.1 定时器的原理图 (6)2.3.2 定时器的PCB图 (6)三、系统软件设计 (9)3.1 主程序流程图 (9)3.2定时子程序流程图 (9)3.3 定时器完整程序 (12)四、系统软件仿真 (15)五、总结 (17)六、参考文献 (17)附录一:七段数码管字型码 (18)附录二:元器件清单 (18)摘要:本次课程设计是基于8051单片机控制的电子定时器设计。
设计中应用了单片中断及LED显示等技术,经历了方案设计、电路硬件设计、软件设计、软件仿真等过程,经过此次课程设计掌握了单片机应用系统的设计过程,单片机应用系统的设计流程如图所示:一、设计要求1.1 设计内容及要求以89C51单片机为核心,设计一个定时器,4位LED显示,分别显示10分,分,10秒,秒。
定时范围从1秒到59分59秒,有按键设置定时时间,按开始键后开始计时,每过一秒刷新一次定时时间,若计时时间到,停止计时,并在LED上显示定时的时间。
仪器工作过程:1、通电或复位状态显示0000;2、由按键设置定时时间;3、定时开始键按下,开始定时,每一秒刷新一次计时时间;4、定时时间到,停止计时,4位LED显示设定时间;5、复位后恢复初始状态,准备进行下一次定时。
1.2 设计方案及思路根据设计要求,本系统初步设定由单片机系统、键0——3、LED显示组成。
1、按键的输入:键0——3四个键作为时间设定的控制键,由P1口输入2、定时的显示电路:8051显示电路由4位共阴极数码管显示,由8051的串行口输出,并通过74LS164八位移位寄存器输入给数码管二、系统硬件设计2.1 硬件电路的总体设计方案及框图设计一个控制系统总体设计方案很重要,关系设计接下来的操作程序,一下就是本设计的总体框架。
51单片机定时器实验内容
51单片机定时器实验内容
51单片机定时器实验的内容可以根据不同的需求和目的进行调整,以下是
一些可能的实验内容:
1. 定时器初始化实验:实验目标是了解如何初始化51单片机的定时器,包括设置定时器的工作模式、计数值、初始值等。
实验中可以编写代码,让定时器在初始化后自动开始计时,并在达到指定时间后产生中断或输出信号。
2. 定时器中断实验:实验目标是了解如何使用51单片机的定时器中断功能,实现定时器在达到指定时间后自动触发中断,并在中断服务程序中执行特定的操作。
实验中可以编写代码,让定时器在达到指定时间后自动进入中断服务程序,并在其中执行特定的操作,如点亮LED灯等。
3. 定时器PWM输出实验:实验目标是了解如何使用51单片机的定时器PWM输出功能,实现定时器输出PWM波形。
实验中可以编写代码,让定时器输出不同占空比的PWM波形,并通过调整占空比来控制LED灯的亮
度等。
4. 定时器与外部事件同步实验:实验目标是了解如何使用51单片机的定时器与外部事件同步,实现定时器在外部事件发生时自动开始计时或停止计时。
实验中可以编写代码,让定时器在外部事件发生时自动开始计时或停止计时,并在达到指定时间后执行特定的操作。
以上是一些常见的51单片机定时器实验内容,通过这些实验可以深入了解51单片机的定时器工作原理和用法,并提高编程技能和硬件控制能力。
单片机课程设计——单片机定时器实验
TI/RI:串行I/O中断
1)中断允许寄存器:IE(1:允许;0:不允许)
2)TF1:定时器T1溢出中断请求。当定时器T1产生溢出时,定时器T1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。
3)中断处理过程
包含:中断请求、中断响应、中断服务、中断返回四个阶段.。
}
}
(四)仿真结果
(1)第1秒钟
除了读方式外,2716还有如下工作方式:
(2)禁止方式;
(3)备用方式;
(4)写入方式;
(5)校核方式;
图4-14 Intel2716读时序波形
(6)编程。
设计步骤
(一)原理
以2716为8031程序存储,用P1控制LED灯。
(二)实验电路图及连接
(三)实验程序设计框图及程序清单
(1)实验程序设计框图如下:
(2)实验目的:
1)学习8031内部计数器的使用和编程方法。
2)掌握中断处理程序的编程方法。
(3)设计要求:
1)实验电路及连接。
2)实验程序设计框图及程序清单。
3)验证实验可靠性。
主要芯片简介
8031单片机简介
(一)8031单片机的引脚
(1)主电源引脚Vss和Vcc
1)Vss接地
2)Vcc正常操作时为+5伏电源
(二)8031单片机的定时器和中断
8031片内有两个16位定时/计数器(增量式计数)
(1)工作方式(方式0、方式1、方式2、方式3)
方式1(16位定时/计数)
(2)控制寄存器
1)定时/计数器方式控制寄存器:TMOD
2)定时/计数器控制寄存器:TCON
TF1,TF0:定时/计数器中断请求标志,1:有请求;0:无请求
单片机实验二 定时器实验程序
sbit L3=P0^7;
unsigned char keynum;
unsigned int lasttime=100;
bit bset=0;
unsigned char keyscan();
void display();
unsigned char getkey();
void set();
code unsigned char table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
sbit H1=P3^6;
sbit H2=P3^7;
sbit L1=P0^5;
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
P1M1=0x00;
P1M0=0xff;
while(1)
{
keynum=keyscan();
display();
set();
}
}
void timer0() interrupt 1
{
P1=0X00;
W1=1;
W2=0;W3=1;W4=1;
P1=table[(unsigned char)(lasttime%1000/100)]|a;
}
else if(ct1<60)
{
P1=0X00;
W2=1;
W3=0;W4=1;W1=1;
P1=table[(unsigned char)(lasttime%1000%100/10)]|a;
单片机系统课程设计定时器
大连民族大学《单片机系统课程设计》课程报告2020-2021第一学期学院:机电工程学院专业:自动化班级:学生姓名任课教师:日期:2021年1月1日目录1 任务分析及性能指标 (5)1.1任务分析 (5)1.2性能指标 (5)2 总体方案设计 (6)2.1硬件方案 (6)2.2软件方案 (6)3 电路原理图 (7)4 程序清单 (8)5 调试及性能分析 (10)6 总结 (11)7 参考文献 (11)1任务分析及性能指标1.1 任务分析了解并学会Keil和Proteus软件使用方法,利用Keil设计程序,用Proteus 软件进行仿真。
利用单片机的两个计时器和两个个四位数码管实现两路最长99分钟的定时。
4位数码管的低两位显示秒钟,高2位显示分钟。
通过按键设定定时时间,当定时完成时,利用蜂鸣器进行提醒。
如果继续采用前次定时时间,使之再次启用时不需重新输入数据。
1.2 性能指标使定时器有最长99分钟的定时,通过按键设定定时时,当定时完成时,蜂鸣器会进行提醒。
如果继续采用前次定时时间,再次启用时不需重新输入数据。
2总体方案设计2.1 硬件方案通过对任务分析,其硬件主要有AT89C51单片机、芯片74LS245、蜂鸣器、七段共阴极数码管、按键等。
AT89C51单片机系统通常情况下,P0口分时复用作为地址、数据总线,P2口提供A15-A8即高8位地址,P3口用作第二功能,只有P1口通常用作I/0O口。
8051的P1口作为基本I/O口使用,P1口是8位准双向口,它的每一位都可独立地定义为输入或输出,因此,既可作为8位的并行I/O口,也可作为8为的输入输出端。
74LS245是用来驱动LED或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号。
共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。
单片机课程设计--秒表定时器
单片机原理与应用课程设计说明书题目:秒表计时器系部:信息与控制工程学院专业:自动化班级:学生姓名: 学号:指导教师:2011年12月8 日目录1 设计任务与要求 (1)2 设计方案 (2)3 硬件电路设计 (7)4 软件设计 (8)5 结论 (12)参考文献 (14)1 设计任务与要求1.1课程设计的目的1.1.1根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;1.1.2 熟悉汇编语言或C语言的程序设计方法,熟悉51系列单片机的使用;1.1.3掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口、串行口通讯等功能;1.1.4掌握单片机应用系统的软硬件设计过程、方法及实现。
1.2课程设计的任务设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表计时器。
基本要求:用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
当按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管显示00。
1.3课程设计的要求1.1.1利用单片机内部定时器设计一个秒表, 要求能实现秒表的启动、停止和复位。
1.1.2焊接电路,编制程序,实现秒表计时器的基本功能,并完成课程设计说明书。
1.1.3课程设计期间遵守纪律,注意安全,爱护设备,合理分工,加强合作。
2 设计方案2.1设计方案介绍及工作原理说明该实验要求进行计时并在数码管上显示时间,则可利用pretues仿真软件设计电路并仿真STC89C51。
使用STC89C51单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个四位一体共阳极或共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止各项功能。
单片机定时器的设计
摘要随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,单片机以其强大的功能,成为许多功能电子产品的首选。
本次电子定时器电路根据设计要求采用AT89C51单片机来实现最大99秒倒计时,采用两位数码管显示。
文章的核心主要是硬件介绍及连接和软件编程两个大的方面。
硬件电路主要包括AT89C51、晶振电路、数码管,发光二级管,按键。
软件用汇编语言实现,主要包括主程序、倒计时、重启控制程序等软件模块。
采用软硬件配合基本能实现设定定时时间倒计时功能,达到了设计的要求和目的。
并在Proteus软件上进行了仿真和调试。
关键词 AT89C51单片机;定时器;倒计时目录摘要……………………………………………………………………………………………第一章绪论.........................................................1.1定时器的发展......................................1.2 电子定时器的应用 ....................................1.3选题的目的和意义.....................................1.4 本章小结第二章单片机的基础知识 (3)2.1单片机简介 (3)2.2单片机的特点 (3)2.3 本章小节第三章功能实现及硬件介绍 (4)3.1 设计功能实现 (4)3.2 C51单片机引脚介绍 (9)3.3时钟和复位电路3.4数码管显示 (10)3.5键盘 (12)3.6电气原理图………………………………………………………3.7本章小结第四章软件设计 (15)4.1 程序流程图 (15)4.2定时1秒设计 (16)4.3重新启动 (17)4.4程序 (17)4.5 本章小结结论................................................................ 参考文献............................................................ 致谢 ...........................................................第一章绪论1.1定时器的发展人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计--定时器题目名称:定时器时钟数码管显示姓名:班级:学号:日期:2012年6月29日单片机时钟1.摘要:时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。
利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显满刻度为“23时59分59秒”。
该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。
1.1. 关键词AT89C52 、LED显示1.2. 功能要求1)七位数码管显示时、分、秒,以24小时运算2)可实现时分调整1.3. 主要硬件元器件的介绍1.3.1 51单片机芯片根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
该系统的设计我们采用8051芯片。
下图所示为双列直插式封装的8051AH芯片的管脚图,功能如下:8051AH芯片的管脚图1.电源管脚Vcc(40脚):接+5V;Vss(20)脚:接地。
2.时钟信号管脚X1(19脚), X2(18脚):外部时钟信号的两个管脚。
3.控制线1)RESET(9脚):用作复位输入端。
2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。
对片内EPROM编程时,此管脚(作VP)接入21V编程电压。
3)ALE/P’(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。
当对内EPROM编程时,该管脚(P’)用于输入编程脉冲。
4)PSEN’(29脚):外部程序存储器读选通控制信号。
4.输入/输出口线1)P0口(32-39脚):8路漏极开路型双向并行I/O口。
在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。
在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。
外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL 负载。
2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。
在对片内EPROM编程及校验时,它接收低8位地址。
P1口能驱动4个LETTL负载。
3)P2口(21-28脚):具有内部上拉电阻的8位准双向I/O口。
在外接存储器时,P2口作为高8位地址总线。
在对片内EPROM编程及校验时,它接受高8位地址。
P2口驱动4个LETTL负载。
4)P3口(10-17脚):8位带有内部上拉电阻的准双向I/O口。
每一位有具有如下的特殊功能(或称第二功能):P3.0(RXD):串行输入端P3.1(TXD):串行输入端P3.2(INT0’):外部中断0输入端,低电平有效。
P3.3(INT1’):外部中断1输入端,低电平有效。
P3.4(T0):定时/计数器0外部事件计数输入端。
P3.5(T1):定时/计数器1外部事件计数输入端。
P3.6(WR’):外部数据存储器写选通信号,低电平有效。
P3.7(RD’):外部数据存储器读选通信号,低电平有效。
1.3.2 LED数码管数码管是单片机系统中常用的显示界面,可以显示“1、2、3、4、5、6、7、8、9、0”和十六进制中的“A、B、C、D、E、F”及小数点“.”,数码管怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。
分别被命名为A,B,C,D,E,F,G,H(小数点)和DP。
如果要显示一个数字2,那么A,B,G,E,D这5个段的发光管亮,C,F,H不亮,就可以了。
LED 数码管内部结构由图可知:要使数码管发光必须满足两个条件,一、COM端为高电平。
二、在A-G端的对应部分输入低电平。
这样电流流过相应的字段,数码管就会显示相应的字符了!由于数码管”A,B,C……DP”端都并在一起,要使每一个数码管显示各自的内容,使用动静态扫描方式都可以。
下面是共阴极数码管字型码表:51单片机结构框图1.4. 程序设计1.4.1.主程序设计中计时采用定时器T0中断完成。
主程序循环调用显示子程序和查键,当端口有开关按下时,转入相应的功能程序。
流程图如图2-4-1所示。
图1-4-1 主程序流程1.4.2.显示子程序显示子程序每次显示6个连续内存单元的十进制BCD码数据。
由于采用7段共阳LED数码管动态扫描实现数据显示,显示十进制BCD码数据对应段码存放在ROM中。
流程图如图2-4-2所示。
显示时取内存地址中数据,然后查表得对应显示段码从P0口输出,P2口将为对应的数码管供电,于是数码管就会显示该地址单元的数据。
图2-4-2 显示子程序1.4.3.定时器T0中断服务程序定时溢出中断周期设为50MS,中断进入后先进行定时中断初值校正,当中断累加到20次时,对秒计数单元进行加1操作。
时钟最大计时值为23时59分59秒。
#7FH存放“熄灭符”数据,用于时间调整时的闪烁功能。
在计数单元中,采用十进制BCD码计数,满十进位。
流程图如图3.3所示在程序中采用12MHZ晶振频率,精度为1MS,定时初值为50MS,用循环程序进行20次循环可到1S。
当1S到时调用加1程序并判断秒、分是否为60,当秒为60时,秒清零,分加1;当分为60时,分清零。
终端结束时,分时计时单元数据移入对应显示单元。
图3.3 定时器T0中断服务程序1.5. 按键设置采用共阳七段LED显示器,其管脚a-g,ap与单片机AT89C52的P0口相连;P0口输出段码数据;为保证其输出的电平和LED显示器所需的电平相匹配;P2.0---P2.5作为列扫描输出;P3.0,P3.1,P3.2,P3.3,接4个按钮开关,用于调时。
1.6. 数码管显示结果此图显示的是:17点12分03秒1.7. 程序#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define KeyPort P3 //定义按键端口#define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换sbit LATCH1=P2^2;//定义锁存使能端口段锁存sbit LATCH2=P2^3;// 位锁存unsigned char hour,minute,second;//定义时分秒bit UpdateTimeFlag;//定义读时间标志unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x 7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f};//分别对应相应的数码管点亮,即位码unsigned char TempData[8]; //存储显示值的全局变量void DelayUs2x(unsigned char t);//us级延时函数声明void DelayMs(unsigned char t); //ms级延时void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数unsigned char KeyScan(void);//键盘扫描void Init_Timer0(void);//定时器初始化/*------------------------------------------------主函数------------------------------------------------*/void main (void){unsigned char num;Init_Timer0();while (1) //主循环{num=KeyScan();switch(num){case 1:hour++;if(hour==24)hour=0; //正常时间小时加1break;case 2:hour--;if(hour==255)hour=23; //正常时间小时减1break;case 3:minute++;if(minute==60)minute=0; //分钟加1break;case 4:minute--;if(minute==255)minute=59; //分钟减1break;default:break;}if(UpdateTimeFlag==1){UpdateTimeFlag=0;TempData[0]=dofly_DuanMa[hour/10]; //时//数据的转换,因我们采用数码管0~9的显示,将数据分开TempData[1]=dofly_DuanMa[hour%10]; TempData[2]=0x40; //加入"-"TempData[3]=dofly_DuanMa[minute/10];//分TempData[4]=dofly_DuanMa[minute%10]; TempData[5]=0x40;TempData[6]=dofly_DuanMa[second/10];//秒TempData[7]=dofly_DuanMa[second%10];}}}/*------------------------------------------------uS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5 uS------------------------------------------------*/void DelayUs2x(unsigned char t){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------显示函数,用于动态扫描数码管输入参数FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。