|
/*******************************************************************/ #include "exp1_2407.h" /*******************************************************************/ ioport unsigned port8002; //定义LCD端口地址为8002h
void delay_us() //延时100us子程序 { unsigned int j; for(j=1;j<5;j++); }
void delay_ms() //延时10ms子程序 { unsigned int k; for(k=1;k<350;k++); } void delay_s() { unsigned int i; for(i=1;i<30000;i++); } /*********************************************************************************/ void write_0() //写0子程序 { port8002=0x0004; port8002=0x0006; }
void write_1() //写1子程序 { port8002=0x0005; port8002=0x0007; }
void ready() //预备子程序 { port8002=0x0004; }
void write_ram_head() //写存储器开始子程序 { write_1(); write_1(); write_1(); write_1(); write_1(); //写5个1 write_0(); //rw=0 write_1(); //rs=1 write_0(); //写0 }
void write_command_head() //写命令开始子程序 { write_1(); write_1(); write_1(); write_1(); write_1(); //写5个1 write_0(); //rw=0 write_0(); //rs=0 write_0(); //写0 }
void write_end() //写结束子程序 { write_0(); write_0(); write_0(); write_0(); } /*********************************************************************************/ void lcdini() //lcd初始化子程序 { write_command_head(); //8位控制界面,基本指令集 write_0(); write_0(); write_1(); write_1(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_us(); /*********************************************************************************/ write_command_head(); //8位控制界面,基本指令集 write_0(); write_0(); write_1(); write_1(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_us(); /*********************************************************************************/ write_command_head(); //整体显示,游标关,游标位置关 write_0(); write_0(); write_0(); write_0(); write_end(); write_1(); write_1(); write_0(); write_0(); write_end(); delay_us(); /*********************************************************************************/ write_command_head(); //清ddram,添满"20H",并设定ddram的位址ac=0 write_0(); write_0(); write_0(); write_0(); write_end(); write_0(); write_0(); write_0(); write_1(); write_end(); delay_ms(); /*********************************************************************************/ write_command_head(); //往ddram写数时,光标右移,ddram的位址计数器+1 write_0(); write_0(); write_0(); write_0(); write_end(); write_0(); write_1(); write_1(); write_0(); write_end(); delay_us(); } /*********************************************************************************/ void sysini() //系统初始化子程序 { asm(" setc INTM"); //禁止所有中断 asm(" setc SXM"); //抑制符号位扩展 asm(" clrc OVM"); //累加器中结果正常溢出 * WDCR=0x00EF; //禁止看门狗 * IFR=0xFFFF; //清除所有中断标志,"写1清0" }
void nothing() //空中断子程序 { asm(" clrc INTM"); //开总中断 } /*********************************************************************************/ void main() { sysini(); for(;;) { ready(); lcdini(); delay_s(); /********************************************************/ write_ram_head(); //向ddram中写入a1 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_1(); write_end(); delay_us(); write_ram_head(); //向ddram中写入b0 write_1(); write_0(); write_1(); write_1(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了" /********************************************************/ write_ram_head(); //向ddram中写入c0 write_1(); write_1(); write_0(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入ed write_1(); write_1(); write_1(); write_0(); write_end(); write_1(); write_1(); write_0(); write_1(); write_end(); delay_s(); //写入了"理" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入b9 write_1(); write_0(); write_1(); write_1(); write_end(); write_1(); write_0(); write_0(); write_1(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a4 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_1(); write_0(); write_0(); write_end(); delay_s(); //写入了"工" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入b4 write_1(); write_0(); write_1(); write_1(); write_end(); write_0(); write_1(); write_0(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写了ef write_1(); write_1(); write_1(); write_0(); write_end(); write_1(); write_1(); write_1(); write_1(); write_end(); delay_s(); //写入了"达" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入ca write_1(); write_1(); write_0(); write_0(); write_end(); write_1(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_s(); //写入了"盛" delay_s(); /********************************************************/ write_ram_head(); //向ddram中写入d0 write_1(); write_1(); write_0(); write_1(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入bb write_1(); write_0(); write_1(); write_1(); write_end(); write_1(); write_0(); write_1(); write_1(); write_end(); delay_s(); //写入了"谢" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入d0 write_1(); write_1(); write_0(); write_1(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入bb write_1(); write_0(); write_1(); write_1(); write_end(); write_1(); write_0(); write_1(); write_1(); write_end(); delay_s(); //写入了"谢" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入b9 write_1(); write_0(); write_1(); write_1(); write_end(); write_1(); write_0(); write_0(); write_1(); write_end(); delay_us(); write_ram_head(); //向ddram中写入d8 write_1(); write_1(); write_0(); write_1(); write_end(); write_1(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"关" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_1(); write_0(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_0(); write_end(); delay_s(); //写入了"空格" /********************************************************/ write_ram_head(); //向ddram中写入a2 write_1(); write_1(); write_0(); write_1(); write_end(); write_0(); write_1(); write_0(); write_1(); write_end(); delay_us(); write_ram_head(); //向ddram中写入a0 write_1(); write_1(); write_0(); write_1(); write_end(); write_0(); write_1(); write_0(); write_1(); write_end(); delay_s(); //写入了"照" /********************************************************/ write_ram_head(); //向ddram中写入a1 write_1(); write_0(); write_1(); write_0(); write_end(); write_0(); write_0(); write_0(); write_1(); write_end(); delay_us(); write_ram_head(); //向ddram中写入b1 write_1(); write_0(); write_1(); write_1(); write_end(); write_0(); write_0(); write_0(); write_1(); write_end(); delay_s(); //写入了" } }
|