|
发表于 2012-7-22 09:54:54
|
显示全部楼层
- #include<reg51.h>
- #include"delay.h"
- #define uchar unsigned char
- sbit RS = P2^0;
- sbit RW = P2^1;
- sbit E = P2^2;
- uchar CheckBusy(void)
- {
- uchar BF;
- RS = 0;
- RW = 1;
- E = 1;
- BF = P0;
- E = 0;
- RW = 0;
- return BF;
- }
- void Command(uchar com)
- {
- uchar BF;
- do
- {
- BF = CheckBusy();
- BF &= 0x80;
- }while(BF == 1);
- RS = 0;
- RW = 0;
- E = 1;
- P0 = com;
- E = 0;
- delay(1);
- }
- void Data(uchar dat)
- {
- uchar BF;
- do
- {
- BF = CheckBusy();
- BF &= 0x80;
- }while(BF == 1);
- RS = 1;
- RW = 0;
- E = 1;
- P0 = dat;
- E =0;
- RS =0;
- }
- void LCD1602_Init(void)
- {
- Command(0x3c);
- Command(0x0c);
- Command(0x01);
- Command(0x04);
- Command(0x80);
- }
- void Write_LCD1602(uchar Address, uchar *WData)
- {
- uchar temp = 0;
- while(WData[temp] != '\0')
- {
- Command(Address);
- Data(WData[temp]);
- temp++;
- Address += 0x01;
- }
- }
复制代码 Proteus仿真绝无问题 |
|