我利用独立键盘的key1和key2来控制两个外部中断
key8.c
#include "myhead.h"
void time1_init(
void)
{
EA =
1;
TMOD |=
0x10;
TH1 = (
65536 -
1000) /
256;
TL1 = (
65536 -
1000) %
256;
ET1 =
1;
TR1 =
1;
}
void time1_isr() interrupt
3
{
TH1 = (
65536 -
1000) /
256;
TL1 = (
65536 -
1000) %
256;
display();
}
void int0_init(
void)
{
EA =
1;
IT0 =
1;
EX0 =
1;
}
void int0_isr(
void) interrupt
0
{
EX0 =
0;
if(
0 == start)
{
while(!start);
delay_ms(
10);
while(!start);
TR0 = ~TR0;
}
EX0 =
1;
}
void int1_init(
void)
{
EA =
1;
IT1 =
1;
EX1 =
1;
}
void int1_isr(
void) interrupt
2
{
EX1 =
0;
if(
0 == rst)
{
while(!rst);
delay_ms(
10);
while(!rst);
tempdata[
0] =
0x3f;
tempdata[
1] =
0x3f;
tempdata[
2] =
0x40;
tempdata[
3] =
0x3f;
tempdata[
4] =
0x3f;
tempdata[
5] =
0x40;
tempdata[
6] =
0x3f;
tempdata[
7] =
0x3f;
hour =
0 ;
min =
0;
sec =
0;
TR0 =
0;
}
EX1 =
1;
}
使用外部中断的时候会用到定时器
1,所以定时器
1就不能用做时钟的刷新
void key8()
{
unsigned char flag =
1;
unsigned char key;
time0_init();
time1_init();
int0_init();
int1_init();
while(flag)
{
key = key_scan();
if(
0xe7 == key)
{
lcd_over();
flag =
0;
PORT =
0xff;
}
}
}
key8.h
#ifndef _KRY8_H
#define _KEY8_H
extern void time1_init(
void);
extern void time1_isr();
extern void int0_init(
void);
extern void int0_isr(
void);
extern void int1_init(
void);
extern void int1_isr(
void);
extern void key8();
#endif
转载请注明原文地址: https://ju.6miu.com/read-1125778.html