历史上的今天
今天是:2025年01月26日(星期日)
2019年01月26日 | STC12C5A32S2单片机之1602渐入显示
2019-01-26 来源:eefocus
基本框架根据郭天祥Lesson8中的程序来编写,但是渐入显示的时候郭用的指令是write_com(0x18);
可我用的时候就是显示不出来,于是根据1602的说明书,用了另外一个指令write_com(0x07) //当写一个字符,整屏显示左移
程序如下:
可直接运行,已调试OK
#include
sbit LCD_rs=P1^0;
sbit LCD_rw=P1^1;
sbit LCD_en=P2^5;
unsigned char num;
unsigned char code table[]="I Love ZYN";
unsigned char code table1[]="0123456789";
void Delay(unsigned int i) //注意,若此处用char声明,否则会看不到延时渐进的效果,疑问?
{
unsigned int j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
void LCD_Write_com(unsigned char a)
{
LCD_rs=0;
Delay(5);
LCD_rw=0;
Delay(5);
P0=a;
Delay(5);
LCD_en=1;
Delay(5);
LCD_en=0;
Delay(5);
}
void LCD_Write_data(unsigned char b)
{
LCD_rs=1;
Delay(5);
LCD_rw=0;
Delay(5);
P0=b;
LCD_en=1;
Delay(5);
LCD_en=0;
Delay(5);
}
void LCD_init()
{
Delay(15);
LCD_Write_com(0x38);
Delay(5);
LCD_Write_com(0x08);
Delay(5);
LCD_Write_com(0x01);
Delay(5);
LCD_Write_com(0x07); //当写一个字符,整屏显示左移
Delay(5);
LCD_Write_com(0x0e);
Delay(5);
}
void main()
{
LCD_init();
LCD_Write_com(0x80+0x16);//此处0x16也可用十进制数22
Delay(5);
for(num=0;num<10;num++)
{
LCD_Write_data(table[num]);
Delay(3000);
}
LCD_Write_com(0x80+0x59);//此处0x59也可用十进制数89表示
for(num=0;num<10;num++)
{
LCD_Write_data(table1[num]);
Delay(3000);
}
while(1);
}
实际效果如下:

史海拾趣
|
我的dnw.exe总报内存错误不能用了,谁有最新版DNW.exe或者源程序?? 我本来用dnw.exe 0.60c好好的,后来把xp从sp2升级到sp3,dnw就不可以用了,每次都报内存错误,不能用了。 谁有最新的dnw.exe程序或者源程序,发我一份,谢拉!!! 邮箱地址:Baiqiang.Liu@Honeywell.com… 查看全部问答> |
|
单文档视图程序中动态Create一个PropertySheet到FormView中,怎么样禁掉OK按钮,从而禁止用户关掉PropertySheet 单文档视图程序中动态Create一个PropertySheet到FormView中,会有一个OK按钮,怎么样禁掉OK按钮,从而禁止用户关掉PropertySheet… 查看全部问答> |
|
用STC单片机的朋友请进,凡实验并报告结果者赠送100芯币,斑竹无虚言 首先,我想说,以下我说的这件事情,实在有点匪夷所思,大家可以认为是我糊涂了,或者喝醉了也不无不可(的确,刚才我郁闷了半天的确是买了一罐啤酒在喝)但是,我所看到的现象实在让我难以理解,所以请大家帮个忙,做做实验。我现在手上有3500多芯 ...… 查看全部问答> |
|
在本《电源设计小贴士》中,德州仪器高级应用经理 Robert Kollman 将与您分享采用压降方法实现的并行电源供应。 $(\'swf_ftq\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\' ...… 查看全部问答> |




