单片机实现60s定时器
单片机573+数码管+按钮 实现60秒的定时器
知识:
IE寄存器
TCON寄存器
TMOD 寄存器
/***************** 2个定时中断,2个按钮中断 *******************/ #include <reg51.h> #define SEG P2 //数码管 断码口 #define SCANP P1 //数码管 com扫描口 sbit OC = P0^; //定义573锁存器使能口,我是用的573驱动7段数码管 sbit PB0=P3^; //按钮0 sbit PB1=P3^; //按钮1 /******************** 第一个定时器 ********************/ #define count_M1 50000 // 0.05s MODE 1 一个机器周期1us 这里12MHZ 机器周期=1/(12/12) 定时时间=定时个数*机器周期=50000*1us =0.05s #define TH_M1 (65536-count_M1)/256 //MODE 1 高4位 #define TL_M1 (65536-count_M1)%256 //MODE 1 低4位 ; /***定义中断次数,第一个中断***/ /********************** 第2个定时器 **********************/ #define count_M2 250 //MODE 2 250*1us = 0.25s #define TH_M2 (256-count_M2) //方式2 高4位 #define TL_M2 (256-count_M2) //方式1 低4位 ; /***定义中断次数 ,第2个中断***/ ]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67 }; // 共阴极 ]={ 0x3f,0x3f }; // 数码管开始显示 0 0 ; ; void delay(void); main() { OC = ; //锁存置0 ,点亮数码管 IE=0x8f; // 1000 1111 1000开启总中断 1111开启4个中断 TCON=0x00; //低电平0触发 TMOD=0x21; // 0010 0001 timer1采用方式2 timer0采用方式1 TH0=TH_M1; //T0高4位 MODE 1 TL0=TL_M1; //T0低4位 MODE 1 TR0=; //不启动 T0 TH1=TH_M2; //设置T1自动加载值,计数值 MODE2 TL1=TL_M2; // T1 MODE2 TR1=; //启动T1 P3 =0xff; //设置按钮输入 ); } /************** 中断0 计算并显示秒数 ***************/ { TH0=TH_M1; TL0=TL_M1; ) //中断计数20次 0.05*20 = 1S { count_T0=; seconds++; ) seconds=; } disp[]=TAB[seconds/]; //十位 disp[]=TAB[seconds%]; //个位 } /*********************** 中断1 扫描 ************************/ { ) //0.25us * 32 ==8ms { count_T1=; ) //不能超过十位 scan=; SEG=0xff; SCANP=~scan; SEG=disp[scan-]; } } /************************ 按钮 0 中断 码表开始/暂停 *************************/ { TR0=~TR0; //启动/暂停定时器 ); delay(); //延时去抖动 } /************************ 中断1 按钮 1 复位 ************************/ { ); delay(); seconds=; disp[]=disp[]=0xc0; } void delay(void) //延时去抖动 { int i; ;i<;i++); // 2400 * 8 = 19200us = 20ms }
单片机实现60s定时器的更多相关文章
- C51单片机_day_01(定时器和中断系统)
c51单片机 51单片机是控制电路系统的开关,当然芯片就是51芯片,现在随着科技的发展,也是出了很多,功能更多,更全的芯片. 51是用c语言做为程序编程的语言 ——我对基本基础 ...
- STM32F103单片机学习—— 通用定时器
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fengshuiyue/article/details/79150724 本篇重点记录的是STM32F ...
- 【单片机】CH32V103C8T6定时器3程序实验
代码功能:每隔1毫秒进入一次定时器中断. 每隔1秒串口打印一次数据. time.c #include "time.h" #include "ch32v10x.h" ...
- 26.单片机中利用定时器中断,在主流程while(1){}中设置每隔精确时间计量
{ CountMilliseconds++;//只负责自加,加到最大又重新从0开始 } u16 setDelay(u16 t) { ); } u8 checkDelay (u16 t)//返回非零表示 ...
- MCS-51单片机的定时器/计数器概念
一.MCS-51单片机的定时器/计数器概念 单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,而花费的时间恰好是1微秒;只要相邻两个计数脉冲之间的时间间隔相等,则计 ...
- ATmega328P定时器详解
写这篇文章,纯粹是想为博客拉点点击量.在博客园,游客访问好像是不计入阅读量的,而作为一个十八线博主,注册用户的访问应该以搜索引擎为主,博客园首页为次,个位数的粉丝就别谈了. 所以,希望各位从搜索引擎点 ...
- STM32定时器学习---基本定时器
STM32F1系列的产品,除了互联网产品外,工作8个,3种定时器,其中一种就是基本定时器.那么STM32单片机的基本定时器如何操作以及编程呢? 下面我们就来详细的了解一下 STM32F1系列的产品,除 ...
- STC12C5A60S2 双串口通信
STC12C5A60S2单片机是一款功能比较强大的单片机,它拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行口相同:特殊的是STC12C5A60S2单片机内部有一个独立波特率发生器, ...
- MODBUS-寄存器与功能码学习
分类 简称 起始地址 结束地址 能够使用的功能码 输出逻辑线圈/(可读写位)/(DI/O)(如继电器开关控制) 0x 00000 09999 0x01读一组逻辑线圈 0x05写单个线圈 0x0f写多个 ...
随机推荐
- MAC下反編譯安卓APK
所需工具: 1.apktool http://ibotpeaches.github.io/Apktool/ (配置說明) https://bitbucket.org/iBotPeac ...
- CnBlogs自定义博客样式
弄了半个晚上的时间,总算马马虎虎搞好了博客的样式. 整个博客是蓝色的基调,比较激情,我喜欢. 比较郁闷的是,rightmenu 和 main都是position:absolute 布局的.要添加一个f ...
- HTML5的Server-Sent Events介绍
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } HTML5有一个Server-Sent Events(S ...
- 网站开发中很实用的 HTML5 & jQuery 插件
这篇文章挑选了15款在网站开发中很实用的 HTML5 & jQuery 插件,如果你正在寻找能优化网站,使其更具创造力和视觉冲击,那么本文正是你需要的.这些优秀的 jQuery 插件能为你的网 ...
- Wrangle – 响应式的,触摸友好的多选插件
Wrangle 是一个响应式,触摸友好的选择插件,支持 jQuery 以及 Zepto.Wrangle 为多项选择提供了一个独特的方法:通过画一条贯穿项目的线条来选择项目.它给你的应用程序的一种新的方 ...
- MySQL之MySQL常用的函数方法
MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...
- JavaScript学习笔记-实例详解-类(一)
实例详解-类(一): //每个javascript函数(除了bind())都自动拥有一个prototype对象// 在未添加属性或重写prototype对象之前,它只包含唯一一个不可枚举属性const ...
- 内网渗透测试思路-FREEBUF
(在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...
- Oracle11g 统计信息——统计信息自动收集任务
参考文献: Oracle11g 统计信息(一)-----统计信息自动收集任务 背景: 在使用cacti监控oracle数据库IO的时候发现每天晚上10点钟的时候oracle数据库读写明显增加,如下图所 ...
- webbench 压力测试
原文 webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 主要是 -t 参数用着比较爽,下面参考了张宴 ...