(原创)51单片机C语言程序设计--速学教程实例(入门篇)之定时器0
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*/
/*
延时长短可以通过变量初值来改变
*/
/******************************************************************/
void Delay1ms(uint count)
{
uint i,j;
for(i=0;i<count;i++)
for(j=0;j<110;j++);
void main()
{
TMOD=0x01;
//定时器设置
TH0=(65536-50000)/256;
//定时器 0 赋初值
TL0=(65536-50000)%256;
EA=1;
//开总中断
ET0=1;
//开定时器 0 中断
TR0=1;
//开始计数
while(1)
{
if(flag_get==1)
{
P10=0;
*/
/******************************************************************/
#include <reg52.h>
//头文件调用,写程序时都要加上
#define uint unsigned int //宏定义,为了后面定义变量书写简便
#define uchar unsigned char
sbit P10=P1^0;
uchar mm=0;
//全局变量
uchar flag_get=0;
//定义标志位,为 1 则灯亮
/******************************************************************/
/*
名称:延时函数
*/
/*
功能:C 语言中常用的 for 循环延时方法
/******************************************************************/
/*
名称:定时器 0 演示程序
*/
/*
作者:苏涛
*/
ቤተ መጻሕፍቲ ባይዱ
/*
时间:2011-01-11
*/
/*
单位:安徽建筑工业学院 电子与信息工程学院 */
/*
07 级电子信息工程专业 二班
void timer0() interrupt 1 using 1
{
mm++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(mm==20)
{
mm=0;
flag_get=1;
}
}
}
/******************************************************************/
/*
名称:主函数
*/
/*
功能:利用定时器 0 每隔 1 秒使 P1.0 口 LED 灯亮 */
/******************************************************************/
Delay1ms(200);
flag_get=0;
}
else P10=1;
}
}
/******************************************************************/
/*
名称:定时器 0 中断
*/
/*
功能:通过定时 1 秒产生中断使标志位置 1
*/
/******************************************************************/