Klaviatūros sąsaja ir rodyti programa.

J

Joseph raj

Guest
Hi, i susieti klaviatūrą, kodera mm74c922, lcd jhd162a ir PIC16F877A rodyti pagrindinius presuoti.
Aš jungiantis klaviatūrą kodera su IPS.
Aš naudoju mplab ide.and hitechc C kompiliatorių.
Mano programa kaip below.I naudojate Proteus programinės įrangos simulation.there nėra klaida pastate, tačiau nėra rodomi pagrindiniai presuoti.
Aš turiu patikrinta Lcd programą ir ji rodo šviesą, kai tikrinami independently.Please man padėti ir padaryti pataisymus būtinai.
#
include <htc.h>
extern void lcd_cmd (unsigned char);
extern void lcd_data (unsigned char);
extern void lcd_ready (void);
extern void lcd_clear (void);
extern void ms_delay (unsigned int);
# define LCD_data PORTD
# define busy_bit RD7
# define LCD_rs RE0
# define LCD_rw RE1
# define LCD_en re2
# define enc_out PORTBtuščia lcd_init (tuščia)
(

ADCON1 = 0x06;
TRISE = 0;
TRISD = 0;
lcd_cmd (0x38);
lcd_cmd (0x0C);
/ / lcd_cmd (0x01);
lcd_cmd (0x0E);
lcd_cmd (0x06);
grąžinti;
)

tuščia lcd_cmd (unsigned char vertė)
(
/ / Lcd_ready ();
LCD_data = value;
LCD_rs = 0;
LCD_rw = 0;
LCD_en = 1;
ms_delay (1);
LCD_en = 0;
grąžinti;
)

tuščia lcd_clear (tuščia)
(
LCD_rs = 0;
lcd_data (0x01);
LCD_en = 1;
ms_delay (1);
LCD_en = 0;
grąžinti;
)
tuščia lcd_ready (tuščia)
(
/ / busy_bit = 1;
LCD_rs = 0;
LCD_rw = 1;
while (busy_bit == 1)
(
LCD_en = 0;
ms_delay (1);
LCD_en = 1;
)
grąžinti;
)
tuščia lcd_data (unsigned char vertė)
(
/ / lcd_ready ();
LCD_data = value;
LCD_rs = 1;
LCD_rw = 0;
LCD_en = 1;
ms_delay (20);
LCD_en = 0;
grąžinti;
)

tuščia ms_delay (unsigned int itime)
(
int i, j;
for (i = 0; i <itime; i )
for (j = 0; j <1275; j );
)

void main (void)
(

unsigned int temp;
lcd_init ();
lcd_clear ();
TRISB = 0xF0;
GALIMYBė = 0b00000111;
TRISB = 0b00000011;
/ / RBPU = 0;
INTEDG = 1;
Inte = 1;
GIE = 1;

jei (INTF)
(
lcd_cmd (0x80);
temp = enc_out & 0xF0;
if (temp == 0b00010000)
(

lcd_data ('1 ');
)
else if (temp == 0b00100000)
(
lcd_data ('2 ');
)
else if (temp == 0b00110000)
(

lcd_data ('3 ');
)
else if (temp == 0b01000000)
(

lcd_data ('4 ');
)
else if (temp == 0b01010000)
(
lcd_data ( "5");
)
else if (temp == 0b01100000)
(
lcd_data ('6 ');
)
else if (temp == 0b01110000)
(
lcd_data (7 ");
)
else if (temp == 0b10000000)
(
lcd_data (8 ");
)
else if (temp == 0b10010000)
(
lcd_data ('9 ');
)
else if (temp == 0b10100000)
(
lcd_data ('*');
)
else if (temp == 0b10110000)
(
lcd_data ('0 ');
)

else if (temp == 0b11000000)
(
lcd_data ('#');
)
INTF = 0;
)
)

 

Welcome to EDABoard.com

Sponsor

Back
Top