Trích:
Nguyên văn bởi tomato2711
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
}