×
嵌入式开发 > 详情

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

发布时间:2020-07-09 发布时间:
|
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; //重置初值
}


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
关于Erlang语言的功能及特性