基于定时器的51单片机时钟程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于定时器的51单片机时钟程序51单片机时钟程序,基于定时器写出,同时还有定时、日历、键盘调节功能#include #include sbit dula=P2^6;

sbit wela=P2^7;

sbit key1=P3^4;

sbit key2=P3^5;

sbit luis=P3^6;

sbit key4=P3^7;

#define uint unsigned int #define uchar unsigned char

uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar code

table2[]={ 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef};

uchar a,b,d,shis,ges,

shif,gef,shim,gem,shi, fen,miao,shiy,gey,shir, ger,yue,ri;

void display1(uchar,uchar, uchar,uchar,uchar,uchar); void

display2(uchar,uchar, uchar,uchar);

void init();

void keyscan1();

void keyscan2();

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--); }

void main()

{

init();

a=0;

miao=0;

shi=0;

fen=0;

yue=1;

ri=1;

while(1)

{

if(luis==1)

{

display1(shis,ges,shif,gef,shim,gem); keyscan1();

}

else

{

display2(shiy,gey,shir,ger);

keyscan2();

}

}

}

void init()

{

d=0xaa;

P1=d;

TMOD=0x11;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

}

void display1(uchar shis,uchar ges,uchar shif, uchar gef,uchar shim,uchar gem)

{

dula=1;

P0=table[shis];

dula=0;

P0=0xff;

wela=1;

P0=0xfe;

wela=0;

delay(1);

dula=1;

P0=table2[ges]; dula=0;

P0=0xff;

wela=1;

P0=0xfd;

wela=0;

delay(1);

dula=1;

P0=table[shif]; dula=0;

P0=0xff;

wela=1;

P0=0xfb;

wela=0;

delay(1);

dula=1;

P0=table2[gef]; dula=0;

P0=0xff;

wela=1;

P0=0xf7;

wela=0;

delay(1);

dula=1;

P0=table[shim];

dula=0;

P0=0xff;

wela=1;

P0=0xef;

wela=0;

delay(1);

dula=1;

P0=table[gem];

dula=0;

P0=0xff;

wela=1;

P0=0xdf;

wela=0;

delay(1);

}

void r0() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; a++;

{

if(a==20) {

a=0;

miao++;

if(miao==60) {

miao=0;

fen++;

if(fen==60) {

fen=0;

shi++;

if(shi==24) {

shi=0;

{

if(yue==1) {

ri++;

if(ri==32) {

ri=0;

yue=yue+1; }

相关文档
最新文档