View Single Post
Old 11-04-2009, 03:13 PM   #9
8051topic
Đệ tử 4 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 71
:
Chào mọi người, bây giờ mới có thời gian nghiên cứu PIC tiếp.
Mình vừa viết lại chương trình hiển thị trên led 7 đoạn (phần cứng như trên), lần này mình dùng CCS C và đếm từ 0000 --> 9999. Chương trình chạy tốt trên các Port, mình post lên để các bạn tham khảo.
Chương trình hiển thị cùng lúc lên Port B và D.
Code:
//*****************************************************************************
// Author  : Tran Van Duy
// Date    : 06/04/09
// Hardware: PIC16F887
//*****************************************************************************
#include <16F887.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)

int16 a, dem;
int8 i, nghin, tram, chuc, dvi;

void hex_bcd()
{
   nghin=a/1000;
   a=a%1000;
   tram=a/100;
   a=a%100;
   chuc=a/10;
   dvi=a%10;
}
void hienthi()
{
   i=0;
   while(i<100)
   {
      output_b(dvi|0xE0);   //don vi so 4
      output_d(dvi|0xE0);   //don vi so 4
      delay_ms(2);
      output_b(chuc|0xD0);
      output_d(chuc|0xD0);
      delay_ms(2);
      output_b(tram|0xB0);
      output_d(tram|0xB0);
      delay_ms(2);
      output_b(nghin|0x70);
      output_d(nghin|0x70);
      delay_ms(2);
      i++;
   }
   
}
void main()
{
   set_tris_b(0x00);
   set_tris_d(0x00);
   dem=0;
   while(1)
   {
      dem=dem+1;
      if(dem==10000)
      {
         dem=0;
      }
      a=dem;
      hex_bcd();
      hienthi();
   }
}
8051topic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn