单片机
返回首页

51单片机60秒倒计时 数码管显示

2021-11-26 来源:eefocus

本资源适用于初学者,使用单片机型号为普中51单片机:


下面展示 代码。


#include'reg52.h'

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;//38译码器控制位选

char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

char a1,a2,s=60;//s为要定时 60秒

void timer0()

{ TMOD|=0x01;

TH0=0xfc;

TL0=0x18;//¶¨定时1MS

EA=1;

ET0=1;

TR0=1;

}

void setwei(char i) // 选择数码管的位选

{ switch(i)

{ case 0: LSA=1;LSB=1;LSC=1;break;

case 1: LSA=0;LSB=1;LSC=1;break;

case 2: LSA=1;LSB=0;LSC=1;break;

case 3: LSA=0;LSB=0;LSC=1;break;

case 4: LSA=1;LSB=1;LSC=0;break;

case 5: LSA=0;LSB=1;LSC=0;break;

case 6: LSA=1;LSB=0;LSC=0;break;

case 7: LSA=0;LSB=0;LSC=0;break;

}

}


void delay(int i)

{ while(i–);

}

void display(char w,char s) //w:要显示的数码管的位 s:要显示的数码管的数

{ setwei(w);

P0=smgduan[s];

delay(200);

P0=0x00;

}

void display1(char s1,char s2)

{ display(0,s1);

display(1,s2);

}

void main()

{ timer0();


while(1)

{  a1=s/10; 

a2=s%10;

display1(a1,a2);

}


}

void timerint() interrupt 1

{ static int i=0;

TMOD|=0x01;

TH0=0xfc;

TL0=0x18;

i++;

if(i==1000)

{ i=0;

s–;

}

if(s<=0)

{s=60;}

}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

最新器件
精选电路图
  • 简洁的过零调功器电路设计与分析

  • CCFL的工作原理及电子驱动电路解析

  • MT3608构成3.7V转12V的升压电路图

  • 基于M66T旋律发​​生器的电路图解析

  • 基于CA3193的热电偶放大器电路

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章