|
這是我最近做的一個lcd1602仿真實例- #ifndef __HARDWAR_H__
- #define __HARDWAR_H__
- #include <reg51.H>
- #define LCD_DATA P1
- sbit LCD_BUSY=LCD_DATA^7;
- sbit LCD_RW=P2^0;
- sbit LCD_RS=P2^1;
- sbit LCD_EN=P2^2;
- #endif
- #ifndef __LCD_H__
- #define __LCD_H__
- #define LCD_GO_HOME 0x02
- #define LCD_AC_AUTO_INCREMENT 0x06
- #define LCD_AC_AUTO_DECREASE 0x04
- #define LCD_MOVE_ENABLE 0x05
- #define LCD_MOVE_DISENABLE 0x04
- #define LCD_DISPLAY_ON 0x0C
- #define LCD_DISPLAY_OFF 0x08
- #define LCD_CURSOR_ON 0x0A
- #define LCD_CURSOR_OFF 0x08
- #define LCD_CURSOR_BLINK_ON 0x09
- #define LCD_CURSOR_BLINK_OFF 0x08
- #define LCD_LEFT_MOVE 0x18
- #define LCD_RIGHT_MOVE 0x1C
- #define LCD_CURSOR_LEFT_MOVE 0x10
- #define LCD_CURSOR_RIGHT_MOVE 0x14
- #define LCD_DISPLAY_DOUBLE_LINE 0x38
- #define LCD_DISPLAY_SINGLE_LINE 0x30 void LCD_cls(void);
- void LCD_write_data(unsigned char);
- void LCD_initial(void);
- void LCD_set_position(unsigned char);
- void LCD_prints(unsigned char *);
- void LCD_printc(unsigned char);
- #endif
- #include<reg51.h>
- #include<LCD1602.h>
- void main(void)
- {
- LCD_initial();
- LCD_set_position(0);
- LCD_printc('a');
- LCD_prints("Input too long!");
- LCD_set_position(0x40);
- LCD_printc('a');
- while(1)
- {
- ;
- }
- }
復制代碼 |
|