?? key.c
字號:
#include <pic.h>
#define portbit(address,bits) ((unsigned)(&address)*8 + (bits))
#define BUSY 0x80
#define WRITE_DATA 0xff
#define delay_data 0xff
#define COMMAND 0x00
#define LCD_CLEAR 0x01
#define portdata PORTC
#define firstline 0x80
#define secondline 0xc0
volatile bit E @ portbit(PORTE,2);
volatile bit RW @ portbit(PORTE,1);
volatile bit RS @ portbit(PORTE,0);
const unsigned char table[10] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
volatile unsigned char temp;
volatile unsigned char data;
#pragma interrupt_level 1
void delay(void)
{
unsigned int i;
for (i = 6553; -- i;)
{
}
}
unsigned char lcd_busy(void)
{
unsigned char temp;
portdata = 0xff;
RS = 0;
RW = 1;
E = 1;
TRISC = 0xff;
temp = portdata;
TRISC = 0x00;
E = 0;
return (temp);
}
void lcd_command_writedata(unsigned char check,unsigned char data)
{
if (check == COMMAND)
{
RS = 0;
}
else
{
RS = 1;
}
RW = 0;
portdata = data;
E = 1;
E = 0;
while (lcd_busy() & BUSY);
}
void lcd_disp(unsigned char address,unsigned char disp_data)
{
lcd_command_writedata(COMMAND,address);
lcd_command_writedata(WRITE_DATA,disp_data);
}
void lcd_init(void)
{
lcd_command_writedata(COMMAND,LCD_CLEAR);
lcd_command_writedata(COMMAND,0x38);
lcd_command_writedata(COMMAND,0x0e);
lcd_command_writedata(COMMAND,0x06);
}
void system_init(void)
{
delay();
INTCON = 0x00;
ADCON1 = 0x07;
TRISC = 0x00;
TRISE = 0x00;
}
void rb_init(void)
{
TRISB = 0xf0;
OPTION = 0x7f;
RBIF = 0;
PORTB = 0x00;
RBIE = 1;
PORTB = PORTB;
}
void key_serve(void)
{
PORTB = 0xfb;
if (RB4 == 0) temp = 5;
if (RB5 == 0) temp = 6;
PORTB = 0xf7;
if (RB4 == 0) temp = 7;
if (RB5 == 0) temp = 8;
PORTB = 0x00;
}
void main(void)
{
delay();
system_init();
rb_init();
lcd_init();
TMR2ON = 1;
ei();
while(1)
{
if (temp != 0)
{
data = table[temp];
lcd_disp(0x85,data);
lcd_disp(0xcf,0xfe);
temp = 0;
}
}
}
#pragma interrupt_level 1
void interrupt rb_interrupt(void)
{
delay();
if((RB4 == 0) || (RB5 == 0))
{
key_serve();
}
PORTB = PORTB;
RBIF = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -