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.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.