分享

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

 共同成长888 2013-06-08
单片机定时器0工作模式1 
 
 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;       //重置初值

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多