PDA

View Full Version : đếm ngược từ 99 về 0 dùng 1 port sử dụng pic16f877a


Heroboss
08-04-2011, 06:28 PM
Em đang học vy xử lý đang có đoạn viết code đếm ngược từ 99 về 0 nhưng chỉ dùng 1 port thôi để điều khiển 2 led 7 đoạn. Ai có thể giúp dùm em viết đoạn code này được không à. Em xin cảm ơn các anh chị trên diễn đàn rất nhiều

akatsu
10-04-2011, 04:54 PM
dùng quet led đi bạn. để lại mail đi mình sẽ send tài liệu hướng dẫn cho bạn

Heroboss
10-04-2011, 06:39 PM
Dùng quét led thì em biết rồi, cần ở đây là kỹ thuật bảng(Lệnh retlw) mà chỉ được dùng 1 port để đếm ngược thôi không được dùng 2 port. Anh có thẻ giúp em k nếu được xin gửi qua yahoo: phong_le92000@yahoo.com. Em xin cảm ơn anh.

vidieukhiencdn
11-04-2011, 02:23 PM
dùng quet led đi bạn. để lại mail đi mình sẽ send tài liệu hướng dẫn cho bạn

- Máy tính bị mất hết dữ liệu mà sao còn tài liệu để send thế:) , để mình phụ 1 tay

#include <16F877a.h>
#include <def_8877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
#define led0 ra0
#define led1 ra1
#define led2 ra2
#define led3 ra3

#define data_led portb

char dig[]={192, 249, 164, 176, 153, 146, 130, 248, 128, 144};


void hienthi7doan(int16 x)
{
int8 i,j;
for (j = 0;j<50;j++)
{

x = x%100;
i = x/10;
led2 = 0;
data_led = dig[i];
delay_ms(10);
led2 = 1;

i = x%10;
led3 = 0;
data_led = dig[i];
delay_ms(10);
led3 = 1;
}
}

void main()
{
int8 i;
// TODO: USER CODE!!
trisb = 0x00;
trisa = 0x00;
portb = 0x00;
porta = 0xff;

while(true)
{

for (i = 0; i<100; i++)
hienthi7doan(i);

}

}
Nếu dếm lùi về thì bạn chỉnh lệnh for lại nhé

nguyenhuunguyen
16-04-2012, 10:39 AM
Các anh ơi cho hương dẫn em viết chương trình điều khiển led matrix với .em mới học lên chưa bit nhiều .các anh gửi vào mail cho em nhé .thanks các anh .mail :nguyenhuunguyen91@gmail.com

tudonghoa_k54
16-04-2012, 11:27 PM
Có ai biết viết bằng Asembly ko vậy?
Help me.