當前位置:編程學習大全網 - 編程軟體 - 用AT89C51單片機編寫壹個C語言程序實現2個數碼管秒計數器,用4個按鍵分別控制暫停、加壹秒、減壹秒和繼續

用AT89C51單片機編寫壹個C語言程序實現2個數碼管秒計數器,用4個按鍵分別控制暫停、加壹秒、減壹秒和繼續

#include<reg51.h>

#define uchar unsigned char;

uchar LED1,LED2;

uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar num=0;sec,key;

void delay(unsigned int a)

{

unsigned int i,j;

for(i=0;i<a;i++)

for(j=0;j<120;j++);

}

void display()

{

LED1=sec/10;

LED2=sec%10;

P2=0x01;

P0=distab[LED1];

delay(3);

P2=0x02;

P0=distab[LED2];

delay(3);

}

void t0isr() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

num++;

if(num>=20)

{

num=0;

sec++;

}

}

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

LED1=0;

LED2=0;

while(1)

{

key=P1;

if((key&0x0f)!=0x0f)

{

delay(10);

key=P1&0x0f;

if(key!=0x0f)

{

switch(key)

{

case 0x0e:TR0=0;break;

case 0x0d:sec++;break;

case 0x0b:sec--;break;

case 0x07:TR0=1;break;

default:break;

}

}

}

)

display();

}

}

  • 上一篇:電工培訓主要學習哪些內容
  • 下一篇:C語言能幹什麽?
  • copyright 2024編程學習大全網