单片机定时器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; //重置初值
}
//本程序出自: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; //重置初值
}
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)