Добавил:
ktotogdetotam
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:БЭМЗ полищук доки / mogilev yst / МК7007БМ / NUM_KEY
.C/*дгЄжЁп ®ЇаҐ¤Ґ«ҐЁп ®¬Ґа ¦ в®© Є®ЇЄЁ ЊЉ7006 ь35*/
/*Ї®¤Є«о票Ґ § Ј®«®ўЄ®ў ўгв२е ॣЁбва®ў 80‘31*/
#include <io51.h>
extern void delayi(char);
#define ind_read_write (*(char*) 0x014000) /*§ ЇЁбм Ё з⥨Ґ Ё¤ЁЄ в®а */
#define wrled_rdk1 (*(char*) 0x014800) /*§ ЇЁбм ў ॣЁбва ᢥ⮤Ё®¤®ў
Ё з⥨Ґ 1-Ј® Ў ©в Є« ўЁ вгал*/
#define wrreg_rdk2 (*(char*) 0x015000) /*§ ЇЁбм ў ॣЁбва гЇа ў«ҐЁп
Ё з⥨Ґ 2-Ј® Ў ©в Є« ўЁ вгал*/
#define inta_wrrg2 (*(char*) 0x015800) /*бЎа®б § Їа®б Є« ўЁ вгал -Ї® з⥨о*/
/*§ ЇЁбм ў ॣЁбва ¬Ї«Ёвг¤ -Ї® § ЇЁбЁ*/
unsigned char nkey1;
unsigned char nkey2;
extern unsigned char number;
extern unsigned char flg_irq0;
extern unsigned char i;
char num_key(void)
{
EX0=1;
wait_nkey1:
if(flg_irq0==0&&RI==0) /*®¦Ё¤ ЁҐ ЇаҐалў Ёп 0*/
goto wait_nkey1;
if(RI==1)return;
EX0=0;
delayi(0x23);
flg_irq0=0;
nkey1=wrled_rdk1; /*з⥨Ґ ॣЁбва®ў Є« ўЁ вгал*/
nkey2=wrreg_rdk2;
i=inta_wrrg2; /*бЎа®б § Їа®б Є« ўЁ вгал*/
switch (nkey1) { /*ЇҐаҐе®¤л Ї® ®¬Ґаг Є®ЇЄЁ*/
case 0x01 : return number=1;/*жЁда 7*/
break;
case 0x02 : return number=2;/*жЁда 4*/
break;
case 0x04 : return number=3;/*жЁда 1*/
break;
case 0x08 : return number=4;/*жЁда 0*/
break;
case 0x10 : return number=5;/*жЁда 8*/
break;
case 0x20 : return number=6;/*жЁда 5*/
break;
case 0x40 : return number=7;/*жЁда 2*/
break;
case 0x80 : return number=8;/*§ Їпв п*/
break;
}
switch (nkey2) { /*ЇҐаҐе®¤л Ї® ®¬Ґаг Є®ЇЄЁ*/
case 0x01 : return number=9;/*жЁда 9*/
break;
case 0x02 : return number=10;/*жЁда 6*/
break;
case 0x04 : return number=11;/*жЁда 3*/
break;
case 0x08 : return number=12;/*F-дгЄжЁ® «м п Є®ЇЄ */
break;
case 0x10 : return number=13;/*Їа®Ја ¬¬Ёа®ў ЁҐ*/
break;
case 0x20 : return number=14;/*ўў®¤*/
break;
case 0x40 : return number=15;/*ЇгбЄ*/
break;
case 0x80 : return number=16;/*бв®Ї*/
break;
}
}
Соседние файлы в папке МК7007БМ