原创 自己写的1602液晶固定显示程序

2008-6-17 13:24 2338 1 2 分类: 工程师职场
/*********************************
调用c51头文件
*********************************/
#include<reg51.h>
/*********************************
定义常量、用到的量和字库
*********************************/
#define uint unsigned int
#define uchar unsigned char
sbit RS="P3"^0;
sbit RW="P3"^1;
sbit E="P3"^5;
sbit P1_7=P1^7;/*定义P1_7用来判断1602是否繁忙*/
void write();
void enable();
void delay();
void judge();
uchar no1[17]={0x41,0x42,0x43,0x44,
              0x45,0x46,0x47,0x48,
              0x49,0x4a,0x4b,0x4c,
              0x4d,0x4e,0x4f,0x50,
              0x00};/*ABCDEFGHIJKLMNOP*/
uchar no2[17]={0x51,0x52,0x53,0x54,
              0x55,0x56,0x57,0x58,
     0x59,0x5a,0x31,0x32,
     0x33,0x34,0x35,0x36,
     0x00};/*QRSTUVWXYZ123456*/
/**********************************
主函数
**********************************/
void main(void){
P1=0x01;/*清除屏幕*/
enable();
P1=0x38;/*使能8位2行5x7点阵*/
enable();
P1=0x0f;/*显示器开、光标开、闪烁开*/
enable();
P1=0x06;/*文字不动,光标自动右移*/
enable();
write();
while(1);/*显示保持*/
}
/*********************************
写入文字的子函数
*********************************/
void write(){
uint j="0",k=0,l=1,m=1;
P1=0x80;/*第一行使能*/
enable();
while(l){
if(no1[j]!=0x00){/*判断字符是否全部显示完全*/
P1=no1[j];
RS=1;
RW=0;
E=0;
judge();/*判断1602繁忙否*/
E=1;
j++;
}
else {l=0;}/*跳出第一行循环输出*/
}
P1=0x0c0;/*第二行使能*/
enable();
while(m){
if(no2[k]!=0x00){/*判断字符是否全部显示完全*/
P1=no2[k];
RS=1;
RW=0;
E=0;
judge();/*判断1602繁忙否*/
E=1;
k++;
}
else {m=0;}/*跳出第二行循环输出*/
}
}
/**********************************
使能操作的子函数
**********************************/
void enable(){
RS=0;
RW=0;
E=0;
delay();
E=1;
}
/**********************************
延时程序
**********************************/
void delay(){
uint i;
for(i=0;i<5000;i++);
}
/**********************************
判断1602是否繁忙的子程序
**********************************/
void judge(){
uint k;
P1=0xff;
RS=0;
RW=1;
E=0;
for(k=0;k<3000;k++);
E=1;
while(P1_7);
}
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户76592 2008-8-7 14:13

鼓励原创!
相关推荐阅读
用户148513 2008-08-15 16:56
教你用手机
教你快速识别手机质量的好坏。按*#06#然后在你的手机上会出现一个序列号给你,你就数到第七个和第八个数。  假如你的第七个和第八个数是下面对应的两个数,那么你的手机质量的好坏就确定了。  0,2or2...
用户148513 2008-08-13 21:16
中国强!
本拉登说:中国是全球唯一绝对不能惹的国家!   原因是这样的:基地组织曾派出七名恐怖分子袭击中国,结果是:一人在炸立交桥时转晕在桥上;一人在炸公交车时没挤上车;一人在炸超市时摇控器被盗;一人在炸政府大...
用户148513 2008-08-07 08:27
成败5元钱
成败5元钱 50多年前,一个中国青年随着“闯南洋”的大军来到马来西亚,当他站在这片土地上时,兜里只剩下5元钱。 为了生存,他在这片土地上为橡胶园主割过橡胶,采过香蕉,为小饭店端过盘子……谁也不会想到,...
用户148513 2008-08-03 18:41
省赛我做宽带放大器
今年省赛我做宽带放大器,这是一道纯模拟的赛题,说实话,我以前用运算放大器的次数不多,成功得出想要结果的次数更少,也就那几次简单的模电实验里成功的做出了放大效果,我真是愁啊!这次做的赛题,用multis...
用户148513 2008-08-03 18:31
ARE YOU READY? (BY 李嘉诚)
When you dreamt of great success, Do you have preparation diligently? When you have wild ambitions t...
我要评论
1
1
关闭 站长推荐上一条 /4 下一条