#include "reg51.h"
#include"absacc.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define wr_com XBYTE[0xC000]
#define wr_data XBYTE[0xC100]
#define rd_com XBYTE[0xC200]
#define rd_data XBYTE[0xC300]
void lcd_init(void); // lcd???
void write_cmd(BYTE cmd);
void write_data(BYTE dat) ; // ???
void set_display_place(BYTE line,column);
void write_string_lcd(BYTE line,column,unsigned char *string);
void Delay(WORD n)
{ WORD x;
while(n--)
{ x=500; while(x--); }
}
void write_cmd(BYTE cmd)
{ BYTE dl;
do {
dl=rd_com; }
while((dl&0x80)!=0); //??
wr_com= cmd;
Delay(1); }
void write_data(BYTE dat)
{ BYTE dl;
do { dl=rd_com; }
while((dl&0x80)!=0); //??
wr_data= dat;
Delay(1); }
void write_string(BYTE *s)
{ while(*s != '\0') //'\0'????????
{ write_data(*s);
s++; } }
void set_display_place(BYTE line,column) {
BYTE address;
if(line == 1) {
address = 0x80 + column;
}
else if(line == 2)
{ address = 0xc0 + column; }
write_cmd(address); }
void write_string_lcd(BYTE line,column,unsigned char *string) {
set_display_place(line,column);
write_string(string);
Delay(1); }
void lcd_init(void) {
write_cmd(0x38);//
write_cmd(0x38);//
write_cmd(0x06);//
write_cmd(0x0c);//
write_cmd(0x01);//
}
void main() {
lcd_init();
while(1)
{
write_string_lcd(1,1," 0123456789 ");
write_string_lcd(2,1," ABCDEDGHIJ "); } }
|