登录  | 立即注册

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

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 数码管 定时器控制流水灯

[复制链接]
发表于 2022-1-7 19:44:20 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 数码管 定时器控制流水灯
开始时间: 2022-01-07
结束时间: 2022-01-07
数码管  定时器控制流水灯
只有程序
数码管
#include<reg52.h>

sbit ENLED = P1^1;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit LED = P0^0;

unsigned char code ledchar[]={
        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
        0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,
};
void main()
{
        unsigned char sec=0;
        unsigned char cnt=0;
       
        ENLED = 0;
        P20 = 0;
        P21 = 0;
        P22 = 0;
       
        TMOD=0x01;
        TH0 = 0x2A;
        TL0 = 0xAB;
        TR0=1;
        while(1)
         {
           if(TF0==1)
           {
                   TF0=0;
                         TH0 = 0x2A;
             TL0 = 0xAB;
                         cnt++;
                         if(cnt>=50)
                         {
                                  cnt=0;
                      P0=ledchar[sec];
                      sec++;
                      if(sec>=16)
                      {
                               sec=0;
                      }
                   }
           }
         }
}

定时器控制流水灯
#include<reg52.h>

sbit ENLED=P1^1;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;

void main()
{
        unsigned char cnt=0;
        unsigned char sec=0;
       
        ENLED=0;
        P20=0;
        P21=1;
        P22=1;
       
        TMOD=0x01;
        TH0 = 0x2A;
        TL0 = 0xAB;
        TR0 = 1;
        while(1)
        {
                if(TF0==1)
                {
                        TF0=0;
                        TH0 = 0x2A;
            TL0 = 0xAB;
                        cnt++;
                        if(cnt>=50)
                        {
                                cnt=0;
//                                P0=~(0x01<<sec);       //0000 0001-->1111 1110  小灯从左向右
                                P0=~(0x80>>sec);       //1000 0000-->0111 1111  小灯从右向左
                                sec++;
                                if(sec>=8)
                                {
                                        sec=0;
                                }
                        }
                }
        }
}
       

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

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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