View Single Post
Old 13-10-2013, 09:08 AM   #1
linhnguyen93nb
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 6
:
anh chị coi giùm em cái code và chỉnh sủa nó giùm em cái. em cám ơn

em xin đượ mô tả nguyên lý làm việc của nó như sau:
mạch em dùng 2 nút nhấn 1 nút nhân RB0 khi nhấn vào thì led 7 đoạn đếm số từ 0-9.
còn khi nhấn RC0 thì led 7 đoạn giảm xuống từ 9-0.
khi nhấn 1 trong 2 công tắc thi led chân RA0 sẽ sáng trong khoảng 5s rồi tắt.
em lập trình nó như sau:
anh chị coi sửa lại giùm em cái. em mới vào nghề nên phần này hơi kém.

#include <16f877a.h>
#fuses HS, NOWDT, NOPROTECT, NOLVP, NOBROWNOUT
#use delay(clock=1200000)
#use fast_io(b)
#use fast_io(d)
#use fast_io(c)
#byte portd=0x08
#byte portb=0x06
#byte portc=0x07
#bit dk=portb.0
#bit dk1=portc.0
int x, y , z;
void hien(z);
void khong_lam_viec();
void main()
{
set_tris_b(0b00000001);
set_tris_c(0b00000001);
set_tris_d(0b00000000);
x=0;y=0;z=0;
while(1)
{
if(dk==0)
{
if(dk==1)
{
x=x+1;
}

}
else
{
if(dk1==0)
{
if(dk1==1)
{
y=y+1;
}
}
}
z=x-y;
hien(z);
}
}
void hien(z)
{
switch(z)
{
case 0: {portd=0x3F; break;}
case 1: {portd=0x06; break;}
case 2: {portd=0x5B; break;}
case 3: {portd=0x4F; break;}
case 4: {portd=0x66; break;}
case 5: {portd=0x6D; break;}
case 6: {portd=0x7D; break;}
case 7: {portd=0x07; break;}
case 8: {portd=0x7F; break;}
case 9: {portd=0x6F; break;}
default: break;
}
delay_ms(5);
}
void khong_lam_viec(z)
{
while(1)
{
hien(z);
}
}
mạch mô phỏng của nó:
https://mega.co.nz/#!Ap0VFayK!WIp4AG...umvZv69W9UW1wo
linhnguyen93nb vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn