单片机小白学习之路(十九)---编写定时器1控制数码管程序

目标:编写定时器1中断--控制数码管程序
#include<reg52.h>

typedef unsigned int u16;
typedef unsigned char u8;

sbit LSA=P3^0;
sbit LSB=P3^1;
sbit LSC=P3^3;//数码管位选

sbit led = P2^0; //led灯

u8 code list[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
u8 n = 0; //定义在全局的被程序调用会不断累加,不会使用后又变成0

void Timer1Init() //定时中断1初始
{
    TMOD |= 0x10;
    TH1 = 0xFC;
    TL1 = 0x18;
    ET1 = 1;
    EA = 1;
    TR1 = 1;
}


void main()
{
    LSA=0;
    LSB=0;
    LSC=0;
    Timer1Init();   //定时器1 的初始化
    while(1);
}


void Timer1() interrupt 3
{
    static u16 i; //静态变量
    TH1 = 0xfc;
    TL1 = 0x18;
    i++;
    if(i==1000){
        i = 0;
        P0 = list[n++];//显示数字
        if(n==16)     //到列表尽头再重新来
            n=0;
    }

}
//状态:
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值