单片机定时器程序c语言,单片机定时器程序
51单片机定时器中断程序(C语言)
程序:延时1s
方法:1.汇编实现 影响程序运行速度 2.中断 比较快
用C语言实现的,先要定义好定时器的初值
不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期
机器周期=12/n(n指晶振频率),假设你要定时的时间为M
那么定时的初值为:
M/机器周期=初值;
TH0=(65536-初值)%256;
TL0=(65536-初值)/256;
将(65536-初值)所得的值化成16进制,其高位就是TH0的值,低位为TL0的值
例如用12M晶振做1ms定时计算如下:
机器周期=12/12*10^6=1us(微秒)
定时初值=(1*10^-3)/(1*10^-6)=1000;
所以:TH0=(65536-1000)%256;
TL0=(65536-1000)/256;
将65536-1000=64536化为16进制为:0xFC18
TH0=0xFC;
TL0=0X18;
定好初值后要延迟一秒就定一个延时参数,这里使用1000就行了(定时为1ms)中断程序为:
timer0() interrupt 1 // 1ms延时(12.0MHz)
{
TR0=0;
ET0=0;
TH0=0xfc;
TL0=0x18;
if(delayTimes1!=0) delayTimes1--;
TR0=1;
ET0=1;
}
调用程序大致为:
if(delay_flag==0)
{
delay_flag=1;
delayTimes1=1000;
}
if(delayTimes1==0)
{
delay_flag=0;
这里写定时到的操作就行了;
}
(在主程序中使用delay_ms()这样的程序会影响程序运行速度的,使用中断就不会)
定时器初值计算小工具下载http://doc.xuehai.net/soft/cun/2009/2009032018855.html
定时器计数00-59(P0接8为数码管位选端ds1-ds8,P2接8位数码管的段码A-H)
*******************************************************************************************
#include
sbit P0_0=P0^0; //个位数字
sbit P0_1=P0^1; //十位数字
void delay(int k); //Tab为数码管显示值,存入一个数组内
unsigned char ge,shi,num,count;
unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void main()
{
TMOD=0x1; //T0,工作方式1
TH0=0xb1; //20ms定时
TL0=0xe0;
TR0=1; //开启T0定时器
ET0=1; //允许T0定时器中断
EA=1; //开启总中断允许
P2=Tab[0];P0_0=0;P0_1=0;//显示00
num=0; //被显示的数置0
while(1) //一直调用显示,等待T0中断修改显示数据
{
shi=num/10; //取出十位数
ge=num%10; //取出个位数
P0_0=1;P0_1=1; //关闭显示
P2=Tab[shi]; //P2口送出十位数据显示代码
P0_0=0; //打开十位显示
delay(1000); //延时
P0_0=1; //关闭显示
P2=Tab[ge]; //P2口送出个位数据显示代码
P0_1=0;
单片机定时器程序c语言,单片机定时器程序相关推荐
- C语言应用到SSD,SSD1963的样例程序 c语言驱动读写程序.doc
SSD1963的样例程序 c语言驱动读写程序 /* STC89C54RD+的flash空间从0x4000~0xf3ff 共90个扇区,每扇区512字节*/ //#define BaseAddr0x10 ...
- 单片机按键检测程序c语言,单片机检测按键短击,连击c程序
/****************************************************************************/ //文 件 名:key.c //功 能:短 ...
- c语言使用求余方式的转化为二进制程序,C语言第三讲 程序结构 (下).ppt
<C语言第三讲 程序结构 (下).ppt>由会员分享,可在线阅读,更多相关<C语言第三讲 程序结构 (下).ppt(24页珍藏版)>请在人人文库网上搜索. 1.1,第三讲 程序 ...
- 常用c语言小程序,c语言经典小程序汇总大全
网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好.坚持下来,你会发现编程的乐趣的.当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果,南无果断放弃未 ...
- c语言的一段程序,C语言第一个程序(入门)
1.文件类型(基本) c语言源文件 为.c 文件扩展名,例如 main.c 编译后将得到 a.out 文件 运行会得到 我们程序执行的结果 2.hello world (第一个程序) #i ...
- c语言有啥简单的小程序,c语言-简单小程序-简单算法
<c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...
- c语言50个小程序,C语言50小程序.doc
C语言50小程序 一 基础部分: 输入1~10之间的一个数字,输出它对应的英文单词. /* Note:Your choice is C IDE */ #include "stdio.h&qu ...
- c语言循环读文件程序,c语言读文件程序报告.docx
----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方 ----------专业最好文档,专业为你服务,急你所急,供你所需----------- ...
- c语言算术程序,(C语言)简单算术程序.ppt
(C语言)简单算术程序 开始做算术 算术式子C语言如何表示 算术式怎么写 算术运算符:(+ - * / % ++ --) 求一年有多少个星期?余多少天 求平均值 求10,20,30或者a,b,c的平均 ...
- c 程序多语言,怎样在程序中利用C支持多国语言
怎样在程序中利用C支持多国语言 本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的 ...
最新文章
- SSH-publickey
- 概率论-3.1 多位随机变量及其联合分布
- android byte的使用
- python eel 多线程_Python 基础
- redis学习笔记——应用场景
- 算法63----丑数【动态规划】
- 使用正则表达式从字符串中提取email
- CSP202009-1 称检测点查询(100分)【数学】
- 【强烈推荐】蒋勋细说《红楼梦》
- 华三服务器升级文档,H3C交换机升级步骤
- dht11传感器c语言程序,树莓派 DHT11 温湿度传感器读取 C 语言版
- MySQL 怎么插入10天前的日期_Mysql笔记
- uts大学计算机排名,uts是什么大学
- spring mongodb内嵌文档查询
- win10计算机网络共享打不开,windows10系统打不开WiFi热点如何修复
- 两台电脑不在一个城市,如何使这两台电脑构成一个局域网?
- MySQL 中 不等于 会过滤掉 Null 的问题
- HTML+CSS登录注册界面
- 抖音3d照片怎么制作html,抖音制作3D卡通小人怎么制作用什么软件 操作步骤介绍...
- 学习pandas库笔记(pd.read_excel)
热门文章
- 转录组测序分析项目及方法汇总(更新中)
- 舵机的基本了解以及数字舵机和模拟舵机的区别
- 镇楼篇--转行初入IT的心路历程
- 计算机表格数字怎么,电脑表格数字打不出来
- 分享8个免费的超清背景图片下载网站
- 免驱 usb有线网卡_2020年末台式机amp;笔记本无线网卡最全选购指南amp;攻略,打造极致WIFI体验!...
- winrm java客户端_Ansible for Windows:WinRM HTTPS设置
- QQ登录界面测试用例设计:
- python 热度图_python可视化(七)绘制詹姆斯、杜兰特、伦纳德生涯数据热度图...
- 复旦教授疯狂打车800次,发现大数据杀熟的秘密!附完整调研报告