View Single Post
Old 04-03-2009, 12:40 PM   #3
xuanhiendk2
Đệ tử 3 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 52
:
Trích:
Nguyên văn bởi vietktqs_dragon View Post
mình mói làm quen với Pic.có 1 bài tập cho 4led 7 thanh hiện thị từ 0000->9999.mỗi 1s tăng 1 đơn vị
tuy nhiên mình mới code dc cho hiện thị số có 4 chứ số mình muốn.mong các bạn giúp đỡ
Code:
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=20000000)
int8 led[4] = {0b11110111,0b00111011,0b11111101,0b00111110};
int8 Font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void hienthi(int16 count)
{
int8 a[4]={0};
int8 j;
a[3]=count/1000;
a[2]=(count/100)%10;
a[1]=(count/10)%10;
a[0]=count%10;

for (j=0;j<4;j++)
  {
   porta=led[j];
   portd=Font[a[j]];
   delay_ms(2);
   
   }

}
void main()
{

trisa=0x00;
porta=0xff;
trisd=0x00;
portd=0xff;
while(1)
{ 
hienthi(2009);
delay_ms(2);

}
}
bạn nên đưa cả schematic lên để mọi người góp ý cho dễ. Mà chương trình của bạn hình như là hiển thị số 2009 lên 4 Led 7 đoạn đấy chứ có phải là hiển thị tăng dần từ 0000 đến 9999 đâu
xuanhiendk2 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn