单片机利用中断实现时分秒时钟的简易小程序(附仿真图)

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

单片机利用中断实现时分秒时钟(附仿真图)

基于89c51单片机

程序:

#include <>

#define uchar unsigned char

code unsigned char ke[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; code unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar key(); //声明函数key

void delay(i); //声明函数delay

void main(void)

{ uchar i;

while(1)

{

i=key();

P2=0x02;

P0=led[i%10];

delay(50);

P2=0x01;

P0=led[i/10];

delay(50);

}

}

void delay(i) //延时函数

{ unsigned char j;

for(;i>0;i--)

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

}

uchar key(void) //线反转法

{ uchar h,j,a;

P1=0x0f;

a=P1|0xf0;

if(a==0xff)return(99);

{

delay(10);

P1=0xf0;

h=P1|0x0f;

P1=0xff;

a=a&h;

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

{

if(a==ke[j])

return(j);

}

}

return(99);

}

仿真图:

相关文档
最新文档