微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机定时器0工作模式1

单片机定时器0工作模式1

时间:12-01 来源:互联网 点击:
51单片机的定时器0工作模式1(16位模式),外中断INT0(P3_2引脚)控制T0(P3_4引脚)的按键信号,按键(P3_4引脚)作为T0时钟信号输入定时器0。若是INT0为1,则按键的状态(不断的按下然后抬起按键),使定时/计数器0计数,溢出中断引起P2.0引脚相连的LED灯闪烁。
//本程序出自:51hei单片机网
#include "reg_c51.h"
unsigned char hex[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
0x88,0x83,0xC6,0xA1,0x86,0x8E}; //数码管十六进制译码表
void main(void)
{
TMOD = 0xF0; //定时/计数器0运行在模式1,16位模式
TMOD |= 0x0D; //GATE0=1; C/T0#=1; M1=0; M0=1;
TH0 = 0xff; //设置初值,初值=(65536-7)/256=FFH
TL0 = 0xf9; //设置初值,初值=(65536-7)%256=F9H
//初值为65529,只需要再计7个数,定时/计数器就可以溢出
ET0=1; //允许定时/计数器0中断
EA=1; //允许总中断
TR0=1; //启动定时/计数器
while(1); //无限循环
{
P1=hex[TL0/16]; //显示TL0的高位
P0=hex[TL0%16]; //显示TL0的低位
}}
void it_timer0(void) interrupt 1 //定时/计数器0中断服务程序
{
P2_0 = ~P2_0; //每次中断将P2_0引脚取反,就是使LED灯闪烁
TH0 = 0xff; //重置初值
TL0 = 0xf9; //重置初值
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top