PDA

View Full Version : آموزش: اشکال در ایجاد وقفه



saeed_sholoogh59
سه شنبه 06 تیر 1391, 17:57 عصر
برنامهای بنویسید که با فشردن کلید B.0از 0تا99به صورت صعودی بشماردوهربار شمارش روی دو سون سگمنت متصل به پورت Aنمایش دهددر صورت قطع کلید شمارش متوقف شود عدد اخر نمایش داده شود ودر صورت فشردن B.0شمارش به صورت نزولی تا0ادامه یابد

این برنامه ر و نوشتم براش ولی قسمت وقفه ونزولی شمارش مشکل خوردم کسی میتونه کمک کنه؟

#include <mega16.h>
#include <delay.h>
signed char code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
void seven_segment(char a,char b){
PORTA=code [a];
PORTD.0=0;
delay_ms(2);
PORTD.0=1;
PORTA=code [b];
PORTD.1=0;
delay_ms(2);
}
void main(void){
char i,j,k,l;
DDRD=0x0F;
DDRA=0x7F;
while(1){
if(PIND.2==1);{
do{
for(i=0;i<=9;i++){
for(j=0;j<10;j++){
delay_ms(100);
seven_segment(i,j);}}
} while (PIND.2==0);{seven_segment(i,j);};}




if(PIND.3==1){
for(k=i;k>=0;k--){
for(l=j;l>=0;l--){
delay_ms(100);
seven_segment(k,l);
while(PIND.3==0) {seven_segment(k,l);};}
}
}
}
}