帮我看看这个port0000 port0001是设置的什么意思呀?初学者不懂。。。。谢了。。。
/*Main.c*/
#include "global.c"
#define CMD_ADD port0000
#define DAT_ADD port0001
ioport char CMD_ADD;
ioport char DAT_ADD;
delay(int ms)
{ // 延时子程序
int i;
int j;
while(ms--)
{
for(i = 0; i< 25; i++)
{
for(j = 0; j<160; j++)
; //j=j;
}
}
}
lcd_wcmd(unsigned char cmd)
{ // 写入指令数据到LCD
delay(2);
// while(lcd_bz());
CMD_ADD = cmd;
}
//lcd_pos(unsigned char pos)
//{ //设定显示位置
// lcd_wcmd(pos | 0x80);
//}
lcd_wdat(unsigned char dat)
{ //写入字符显示数据到LCD
delay(1);
// while(lcd_bz());
DAT_ADD = dat;
}
lcd_init()
{ //LCD初始化设定
lcd_wcmd(0x38); //
delay(1);
lcd_wcmd(0x0c); //
delay(1);
lcd_wcmd(0x06); //
delay(1);
lcd_wcmd(0x01); //清除LCD的显示内容
delay(2);
}
void KickDog() /*踢除看门狗 */
{
WDKEY=0x5555;
WDKEY=0xAAAA;
}
// 系统初始化子程序
void sysinitial()
{
asm(" SETC INTM "); /* 关闭总中断 */
asm(" CLRC SXM "); /* 禁止符号位扩展 */
asm(" CLRC CNF "); /* B0块映射为 on-chip DARAM*/
asm(" CLRC OVM "); /* 累加器结果正常溢出*/
SCSR1=0x8FFE; /* 系统时钟CLKOUT=20*0.5=10M */
/* 打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟CLKOUT=10M */
WDCR=0x006F; /* 禁止看门狗,看门狗时钟64分频 */
KickDog(); /* 初始化看门狗 */
IFR=0xFFFF; /* 清除中断标志 */
IMR=0x0000; /* 关闭中断*/
}
// 主程序
main()
{
int k;
unsigned char i,j;
unsigned char dis1[] = {" Welcome you!"};
unsigned char dis2[] = {" LCD1602!"};
sysinitial(); // 系统初始化
lcd_init(); // 初始化LCD
delay(10);
lcd_wcmd(0x80);
// lcd_pos(0); // 设置显示位置为第一行2223第5个字符
i = 0;
while(dis1[i] != '\0')
{ // 显示字符Welcome to use"
lcd_wdat(dis1[i]);
i++;
}
lcd_wcmd(0x80+0x40);
// lcd_pos(0x40); // 设置显示位置为第一行第1个字符
i = 0;
while(dis2[i] != '\0')
{ // 显示字符Welcome to use"
lcd_wdat(dis2[i]);
i++;
}
while(1);
}
|