单片机课程设计定时器
单片机定时器设计

单片机定时器设计
一、设计原理
单片机定时器是通过计时寄存器来实现定时功能的。
一般来说,计时寄存器是一个16位的寄存器,存放的值从0x0000到0xFFFF之间。
定时器通过不断地递增计时寄存器的值,来实现定时的功能。
当计时寄存器达到预设的值时,会产生一个定时器中断信号,可以通过该中断信号来触发其他相关操作。
定时器工作的基本原理是通过外部晶振提供一个基准时钟,利用该时钟周期性地对计时寄存器进行递增。
根据外部晶振的频率,定时器的精度也会不同。
定时器的工作模式主要分为两种:定时工作模式和计数工作模式。
定时工作模式是指定时器在达到预设的值后产生中断,并重新开始计时。
计数工作模式是指定时器不断地计数,直到外部触发一个事件,产生中断并清零计时寄存器。
二、设计实例分析
1.设计一个1秒的定时器
2.设计一个毫秒级的定时器
3.设计一个按键消抖定时器
在按键输入中,为了避免按键的抖动,常常需要使用定时器来进行按键的消抖处理。
假设按键抖动时间为10ms,我们可以设置一个10ms的定时器,在定时器中断时检测按键状态,若按键状态稳定一致,则认定按键有效。
结语
单片机定时器是一种非常实用的功能模块,可以实现各种定时、测定、控制等功能。
本文通过给出了几个常见的定时器设计实例,并提供了相应
的计算公式,希望对读者有所帮助。
通过进一步学习和实践,读者可以更
加深入地理解和应用单片机定时器。
单片机定时器实验报告

一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
单片机定时器实验报告

单片机定时器实验报告
单片机定时器实验报告
简介
•实验名称:单片机定时器实验
•实验目的:掌握单片机中定时器的工作原理及使用方法•实验设备:单片机开发板、电源等
实验内容
1.单片机定时器的基本概念和原理
2.单片机定时器的分类和特点
3.实验步骤和流程
–步骤1:搭建实验电路
–步骤2:编写单片机程序
–步骤3:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。
通过下载程序到单片机,观察到定时器按照预设
的时间间隔产生中断,并执行相应的任务。
•实验结果表明,我们掌握了单片机定时器的使用方法,可以实现定时功能。
实验分析
•单片机定时器是一种重要的计时和控制设备,广泛应用于各种电子设备中。
•通过本次实验,我们深入了解了单片机定时器的工作原理和使用方法,对于日后的电子设计和开发有着重要的意义。
实验总结
•通过本次实验,我们学习了单片机定时器的基本知识,掌握了单片机定时器的使用方法,并成功实现了定时功能。
•在实验过程中,我们发现了一些问题,并通过调试和修改程序进行了解决。
这对我们提高了动手实践和问题解决能力有很大帮助。
•通过本次实验,我们对于单片机定时器有了更深入的了解,为今后的学习和应用打下了坚实的基础。
参考资料
•《单片机原理与应用》
•单片机实验教材及课件。
单片机定时闹钟课程设计

单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。
技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。
学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。
2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。
3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。
4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。
单片机课程设计报告--电子时钟(2021整理)

一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY〔自己计算〕。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms 计数,计20次产生秒计数器78H单元加1,秒计数器加到60那么分计数器79H单元加1,分计数器加到60那么时计数器7AH单元加1,时计数器加到24那么时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理。
三、MCS-51单片机系统简介单片机应用系统由硬件系统和软件系统两局部组成。
硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。
软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。
与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。
在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。
配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED 指示灯就可以进行处理了。
在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。
单片机定时器毕业设计(论文)

毕业设计毕业设计题目:学生学号:学生姓名:所在系(部):专业及班级:指导教师:完成日期:《电气自动化》专业毕业设计任务书课题名称:定时系统课题类型:模拟课题设计的目的:(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)闹铃器件的选择方案:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。
采用蜂鸣器闹铃结构简单,控制方便。
51单片机定时器实验报告

51单片机定时器实验实验内容:实验内容:(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
C语言程序#include<reg52.h>#define uint unsigned int#define ucahr unsigned charsbit FM=P0^0;void main(){TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1);}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256; FM=~FM;}汇编程序ORG 0000HJAMP MAINORG 000BHLJMP INT0_INTORG 0100HMIAN: SETB EASETB ET0AJMP $INT0_INT:MOV R2,#0FAHMOV R3,#0C8HDJNZ R3,$DJNZ R2,INT0_INTRETI(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
#include<reg52.h>#define uint unsigned int#define ucahr unsigned charuint num,num1;sbit FM=P0^7;int shi,ge,a;void delay(uint);void shumaguan();unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void main(){TMOD=0x01;TH0=(65535-50000)/256; TH0=(65535-50000)%256; EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1){shumaguan();}}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256;num1++;if(num1==10) {num1=0;num++;shi=num/10;ge=num%10;if(num==100) {num=0;}}}void shumaguan() {P3=0x01;P2=table[shi];delay(5);P3=0x02;P2=table[ge]; delay(5);void zuoyi(){a=~P3;a=a<<1;P3=~a;if(P3==0xfb){P3=0xfe;}}void delay(uint x) {int i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms 使两位数码管从00、01、02……98、99每间隔500ms加1显示。
单片机定时器实验报告doc

单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。
二.实验仪器单片机开发板一套,计算机一台。
三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。
开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。
两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。
而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。
当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。
汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。
(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8051AH芯片的管脚图
1.电源管脚
Vcc(40脚):接+5V;Vss(20)脚:接地。
2.时钟信号管脚
X1(19脚), X2(18脚):外部时钟信号的两个管脚。
3.控制线
1)RESET(9脚):用作复位输入端。
2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。对片内EPROM编程时,此管脚(作VP)接入21V编程电压。
在程序中采用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.1.关键词
AT89C52、LED显示
1.2.功能要求
1)七位数码管显示时、分、秒,以24小时运算
2)可实现时分调整
1.3.主要硬件元器件的介绍
1.3.151单片机芯片
根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。该系统的设计我们采用8051芯片。
利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”。该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。
显示时取内存地址中数据,然后查表得对应显示段码从P0口输出,P2口将为对应的数码管供电,于是数码管就会显示该地址单元的数据。
图2-4-2显示子程序
1.4.3.定时器T0中断服务程序
定时溢出中断周期设为50MS,中断进入后先进行定时中断初值校正,当中断累加到20次时,对秒计数单元进行加1操作。时钟最大计时值为23时59分59秒。#7FH存放“熄灭符”数据,用于时间调整时的闪烁功能。在计数单元中,采用十进制BCD码计数,满十进位。流程图如图3.3所示
51单片机结构框图
1.4.程T0中断完成。主程序循环调用显示子程序和查键,当端口有开关按下时,转入相应的功能程序。流程图如图2-4-1所示。
图1-4-1主程序流程
1.4.2.显示子程序
显示子程序每次显示6个连续内存单元的十进制BCD码数据。由于采用7段共阳LED数码管动态扫描实现数据显示,显示十进制BCD码数据对应段码存放在ROM中。流程图如图2-4-2所示。
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负载。
P3.5(T1):定时/计数器1外部事件计数输入端。
P3.6(WR’):外部数据存储器写选通信号,低电平有效。
P3.7(RD’):外部数据存储器读选通信号,低电平有效。
1.3.2LED数码管
数码管是单片机系统中常用的显示界面,可以显示“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”端都并在一起,要使每一个数码管显示各自的内容,使用动静态扫描方式都可以。
下面是共阴极数码管字型码表:
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外部事件计数输入端。
单片机课程设计--定时器
———————————————————————————————— 作者:
————————————————————————————————日期:
题目名称:定时器时钟数码管显示
姓名:
班级:
学号:
日期:2012年6月29日
单片机时钟
1.摘要:
时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。