Ðề tài: LCD va HEx
View Single Post
Old 27-04-2011, 04:45 PM   #4
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi tomato2711 View Post
VẬY viết lại SAO?bạn chỉnh lại dùm mình đi!
code:
Code:
//*****************************************************************************
// Author  : nhh
// Date    : 03/04/06
// Hardware: PIC16F877A
//*****************************************************************************
#include <16F877A.h>
#include <defs_16F877A.h>
#include <lcd_lib.c>
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
void hienthi(void);
int a,i;
const unsigned char dig[]={"0123456789abcdef"};
                  // ma hoa digital duoi dang mang
// Chuong trinh ngat
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
   {
         {
         if(RB4&&RB0)
         a=dig[0];
         }
         {
         if(RB4&&RB1)
         a=dig[4];
         }
         {
         if(RB4&&RB2)
         a=dig[8];
         }
         {
         if(RB4&&RB3)
         a=dig[12];
         }
//.......
         {
         if(RB5&&RB0)
         a=dig[1];
         }
         {
         if(RB5&&RB1)
         a=dig[5];
         }
         {
         if(RB5&&RB2)
         a=dig[9];
         }
         {
         if(RB5&&RB3)
         a=dig[13];
         }
//........
          {
         if(RB6&&RB0)
         a=dig[2];
         }
         {
         if(RB6&&RB1)
         a=dig[6];
         }
         {
         if(RB6&&RB2)
         a=dig[10];
         }
         {
         if(RB6&&RB3)
         a=dig[14];
         }
//........
          {
         if(RB7&&RB0)
         a=dig[3];
         }
         {
         if(RB7&&RB1)
         a=dig[7];
         }
         {
         if(RB7&&RB2)
         a=dig[11];
         }
         {
         if(RB7&&RB3)
         a=dig[15];
         }
   RBIF=0; //Xoa co ngat RB
   }
   hienthi();
   while(bit_test(PORTB,4))
   {
   }
    while(bit_test(PORTB,5))
   {
   }
   while(bit_test(PORTB,6))
   {
   }
   while(bit_test(PORTB,7))
   {
   }
   delay_ms(1);//chong nay phim
  
}
// Chuong trinh chinh
main()
{
set_tris_b(0b11110000);
set_tris_d(0);
set_tris_e(0);
enable_interrupts(global);
enable_interrupts(int_RB);
ext_int_edge(H_to_L);
portb=0;
portc=0;
lcd_init();
lcd_putcmd(0x01);
printf(lcd_putchar,"gia tri phim:");
 lcd_putcmd(0xc0);
while(true)
   {
   portb=1;
   portb=2;
   portb=4;
   portb=8;
   
   }
}
  
void hienthi()
{
lcd_putcmd(0xc0);
printf(lcd_putchar,"                          ");
lcd_putcmd(0xc0);
lcd_putchar(a);// doc gia tri nut nhan lên man hinh LCD
}
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn