登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[学习笔记] 定时器在数码管中的应用

[复制链接]
发表于 2022-1-24 15:41:24 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机数码管
学习安排: 单片机定时器
开始时间: 2022-01-21
结束时间: 2022-01-24
定时器要规范使用,注意使用格式 ;

一:先实现一个数码管的从0到f,然后数码管依次递增
#include <reg52.h>


sbit LED = P0^0;
sbit A0 = P2^0;
sbit A1 = P2^1;
sbit A2 = P2^2;
sbit ENLED = P1^1;


void main()
       
{
unsigned int sec = 0;
        unsigned char n = 0;
        unsigned long i = 0;
        unsigned int m = 0;
  unsigned char cnt = 0;
unsigned char code LED[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
};
unsigned char LEDbuff[6]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
ENLED=0;
  TMOD = 0x01;
  TR0 = 1;
  TH0 = 0xB8;
  TL0 = 0x00;

  while(1)
        {
                switch(n)
  {
        case 0 : A2=0; A1=0; A0=0;  break;
                       
  case 1 : A2=0; A1=0; A0=1;  break;
                       
        case 2 : A2=0; A1=1; A0=0;  break;
                       
        case 3 : A2=0; A1=1; A0=1;  break;
               
        case 4 : A2=1; A1=0; A0=0;  break;
               
  case 5 : A2=1; A1=0; A0=1; n=0; break;
                        default :break;
        }
        if(TF0 == 1)
{
  TF0 = 0;
        TH0 = 0xB8;
  TL0 = 0x00;
        cnt++;
       
if(cnt>=50)
{
cnt = 0;



        if(m<=16)
        {
        m++;
                P0=LED[m];
        }
        else{
        m=0;
                n++;
        }

       


}
}
}
}




二:数码管先赋一个值然后从左向右流动,然后数字依次递增:
#include <reg52.h>

sbit LED = P0^0;
sbit A0 = P2^0;
sbit A1 = P2^1;
sbit A2 = P2^2;
sbit ENLED = P1^1;

void main()
       
{
unsigned int sec = 0;
        unsigned char n = 0;
        unsigned long i = 0;
        unsigned int m = 0;
  unsigned char cnt = 0;
unsigned char code LED[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
};
unsigned char LEDbuff[6]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
ENLED=0;
  TMOD = 0x01;
  TR0 = 1;
  TH0 = 0xB8;
  TL0 = 0x00;

while(1)
{



if(TF0==1)
{
        TF0=0;
        TL0=0x00;
        TH0=0xB8;
       
        cnt++;
        if(cnt>=50)
        {
       
        cnt=0;
        LED = ~LED;
        }
       
}

}



好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表