📄 dsp2407 lcd.txt
字号:
适合在DSP上开发LCD程序的参考
/*******************************************************************/
#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(); //写入了"
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -