应用介绍
proteus实现12864,12864仿真,用单片机仿真12864,protues汉字与图形显示,单片机12864, 单片机实现汉字仿真
#include <intrins.h>
#include<ziku.c>
#define uchar unsigned char
#define uint unsigned int
uchar num[] = "0123456789";
sbit REST = P2^0; //Reset signal, active"L"
sbit C_D = P2^1; //L:data H:code
sbit C_E = P2^2; //Chip enable signal, active"L"
sbit R_D = P2^3; //read signal, active"L"
sbit W_R = P2^4; //write signal, active"L"
#define width 15 //显示区宽度
#define Graphic 1
#define TXT 0
#define LcmLengthDots 128
#define LcmWidthDots 64
/**************************12864液晶的相关函数**********************/
void delay_nms(uint i)
{
while(i)
i--;
}
void write_commond(uchar com) //对液晶写一个指令
{
C_E = 0;
C_D = 1;
R_D = 1;
P0 = com;
W_R = 0; // write
_nop_();
W_R = 1; // disable write
C_E = 1;
C_D = 0;
}
void write_date(uchar dat) //对液晶写一个数据
{
C_E = 0;
C_D = 0;
R_D = 1;
P0 = dat;
W_R = 0;
_nop_();
W_R = 1;
C_E = 1;
C_D = 1;
}
void write_dc(uchar com,uchar dat) //写一个指令和一个数据
{
write_date(dat);
write_commond(com);
}
//写一个指令和两个数据
void write_ddc(uchar com,uchar dat1,uchar dat2)
{
write_date(dat1);
write_date(dat2);
write_commond(com);
}
//LCD初始化函数
void F12864_init(void)
{
REST = 0;
delay_nms(2000);
REST = 1;
write_ddc(0x40,0x00,0x00); //设置文本显示区首地址
write_ddc(0x41,128/8,0x00); //设置文本显示区宽度
write_ddc(0x42,0x00,0x08); //设置图形显示区首地址0x0800
write_ddc(0x43,128/8,0x00); //设置图形显示区宽度
write_commond(0xA0); //设置光标形状 8x8方块
write_commond(0x80); //显示方式设置 文本and图形(异或)
write_commond(0x92); //设置光标
write_commond(0x9F); //显示开关设置 文本开,图形开,光标闪烁关
}
//**************************//清显示存储器函数
void F12864_clear(void)
{
unsigned int i;
write_ddc(0x24,0x00,0x00); //置地址指针为从零开始
write_commond(0xb0); //自动写
for(i = 0;i < 128 * 64 ;i++)write_date(0x00); //清一屏
write_commond(0xb2); //自动写结束
write_ddc(0x24,0x00,0x00); //重置地址指针
}
//设定显示的地址
void goto_xy(uchar x,uchar y,uchar mode)
{
uint temp;
temp = 128 / 8 * y + x;
if(mode) //mode = 1为Graphic
{ //如果图形模式要加上图形区首地址0x0800
temp = temp + 0x0100;
}
write_ddc(0x24,temp & 0xff,temp / 256); //地址指针位置
}
//显示一个ASCII码函数
void Putchar(uchar x,uchar y,uchar Charbyte)
{
goto_xy(x,y,TXT);
write_dc(0xC4,Charbyte-32); //数据一次读写方式//查字符rom
}
void display_string(uchar x,uchar y,uchar *p)
{
while(*p != 0)
{
if(x > 15 ) //自动换行 128*64
{
x = 0;
y++;
}
Putchar(x,y,*p);
++x;
++p;
}
}
void display_num(uchar x,uchar y,uchar z)
{
uchar z1,z2;
z1 = num[z / 10];
z2 = num[z % 10];
Putchar(x,y,z1);
Putchar(x+1,y,z2);
}
//显示一串汉字,j = k + n为(n为要显示的字的个数),k为选择从哪个字开始
void dprintf_hanzi_string_1(struct typFNT_GB16 code *GB_16,uint X_pos,uint Y_pos,uchar j,uchar k)
{
unsigned int address;
unsigned char m,n;
while(k < j)
{
m = 0;
address = LcmLengthDots / 8 * Y_pos + X_pos + 0x0800;
for(n = 0;n < 16;n++) //计数值16
{
write_ddc(0x24,(uchar)(address),(uchar)(address>>8)); //设置显示存储器地址
write_dc(0xc0,GB_16[k].Mask[m++]); //写入汉字字模左部
write_dc(0xc0,GB_16[k].Mask[m++]); //写入汉字字模右部
address = address + 128/8; //修改显示存储器地址,显示下一列(共16列)
}
X_pos += 2;
k++;
}
}
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 汉字与图形显示
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
Last Loaded 汉字与图形显示.DBK | 11.79 KB | 2019-09-03 |
汉字与图形显示.DSN | 11.79 KB | 2019-09-03 |
汉字与图形显示.pdsprj.J8X8KE978YQ8Z68.Administrator.workspace | 0.22 KB | 2019-09-03 |
汉字与图形显示.PWI | 0.36 KB | 2019-09-03 |
LCD12864.c | 1.59 KB | 2019-09-03 |
LCD12864.LST | 2.44 KB | 2019-09-03 |
LCD12864.OBJ | 4.04 KB | 2019-09-03 |
main.c | 0.29 KB | 2019-09-03 |
main.LST | 0.64 KB | 2019-09-03 |
main.OBJ | 4.52 KB | 2019-09-03 |
ziku.c | 0.48 KB | 2019-09-03 |
汉字与图形显示 | 4.18 KB | 2019-09-03 |
汉字与图形显示.hex | 1.33 KB | 2019-09-03 |
汉字与图形显示.lnp | 0.03 KB | 2019-09-03 |
汉字与图形显示.M51 | 2.06 KB | 2019-09-03 |
汉字与图形显示.opt.bak | 0.53 KB | 2019-09-03 |
汉字与图形显示.plg | 0.17 KB | 2019-09-03 |
汉字与图形显示.Uv2.bak | 0.89 KB | 2019-09-03 |
汉字与图形显示.uvgui.Administrator | 4.84 KB | 2019-09-03 |
汉字与图形显示.uvopt | 1.55 KB | 2019-09-03 |
汉字与图形显示.uvproj | 2.87 KB | 2019-09-03 |
汉字与图形显示_Opt.Bak | 0.52 KB | 2019-09-03 |
汉字与图形显示_Uv2.Bak | 0.00 KB | 2019-09-03 |
汉字与图形显示_uvopt.bak | 5.84 KB | 2019-09-03 |
汉字与图形显示_uvproj.bak | 2.76 KB | 2019-09-03 |
仿真电路 | 0.00 KB | 2019-09-03 |
程序 | 0.00 KB | 2019-09-03 |
项目19- 汉字与图形显示 | 0.00 KB | 2019-09-03 |
发表评论 取消回复