![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
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 |
![]() |
![]() |
|
|