//При нажатии на кнопку будет зажигаться 1,2,3,4,5,6,7,8,9,0
#include<p18cxxx.h>
#include<delays.h>
#pragma config OSC=RC
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config BOR=OFF
#pragma config MCLRE=OFF
rom near char look7[]={ //таблица кодов цифр
0x40,0x79,0x24,
0x30,0x19,0x12,
0x02,0x78,0x00,0x10
};
int count;
#pragma code
void Switch(char b) //антидребезг
{
do{
while((PORTA&b)!=b); //программа зависает сдесь,если кнопка не нажата
Delay1KTCYx(30);
}while((PORTA&b)!=b);
do{
while((PORTA&b)==b); //программа зависает сдесь,если кнопка не отпущена
Delay1KTCYx(30);
}while((PORTA&b)==b);
}
void main(void)
{
ADCON1=0xef;
TRISA=1;
TRISB=0;
count=0;
while(1)
{
PORTB=look7[count];
Switch(1);
count++;
if(count>=10)
count=0;
}
}
Проверять все премеры нужно с Stimulus:
НАЗАД ДАЛЕЕ