导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→液晶程序 ST7290

* 27993: 液晶程序 ST7290

   sifan1157 
sifan1157发表的帖子 

 液晶程序 ST7290
/************************************************************************************
*  Copyright (c) 2007,重庆优易特电子
*            All rights reserved.
*
* 文件名称: main.c
* 文件标识: none
* 适用器件: STC89C51RC

* 摘 要:   7290液晶显示程序,可以显示汉字、字母、数字。并且液晶本身带字库

* 当前版本:1.0
* 作 者:行卫军
* 完成日期:2007年12月10日
*
*************************************************************************************/ 
#include "reg51.h"
#include "intrins.h"

sbit CS =P1^0;    
sbit SID=P1^1; 
sbit SCLK=P1^2; 
sbit B_light=P2^7; //背光控制

void delay(unsigned int j)
{
  unsigned char i;
  do{
  for(i=0;i  <100;i++);
   }while(j--);

                           
void send_command(unsigned char command_data) //发送命令

 unsigned char i; 
 unsigned char i_data,temp_data1,temp_data2; 

 i_data=0xf8;   //操作命令,可以查看资料
 delay(10); 
 CS=1; 
 SCLK=0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 temp_data1=i_data&0xf0; 
 temp_data2=i_data&0x0f; 
 temp_data1>  >  =4; 
 temp_data2  <  <=4; 
 i_data=temp_data1|temp_data2; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 CS=0; 

void send_data(unsigned char command_data)    //发送数据

 unsigned char i; 
 unsigned char i_data,temp_data1,temp_data2;

 i_data=0xfa; //操作命令,可以查看资料
 delay(10); 
 CS=1; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 temp_data1=i_data&0xf0; 
 temp_data2=i_data&0x0f; 
 temp_data1>  >  =4; 
 temp_data2  <  <=4; 
 i_data=temp_data1|temp_data2; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 CS=0; 
}

void InitLCD() //液晶初始化

 send_command(0x30); //功能设置:一次送8位数据,基本指令集  
 send_command(0x06); //点设定:显示字符/光标从左到右移位,DDRAM地址加1 
 send_command(0x0c); //显示设定:开显示,显示光标,当前显示位反白闪动  
 send_command(0x04); //显示设定:开显示,显示光标,当前显示位反白闪动   
 send_command(0x01); //清DDRAM            
 send_command(0x02); //DDRAM地址归位         
 send_command(0x80); //把显示地址设为0X80,即为第一行的首位   
}
/* flagnew 是刷新标志位,1则刷新,0不刷新, 
 x,y为起始座标 x(0  <=x  <=3),y(0  <=y  <=7),x为行座标,y为列座标;
  how为要显示汉字的个数; 
    str是要显示汉字的地址 */
        
void DispHanzi(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)
{
 unsigned char hi=0;           //汉字显示
 if(x==0) send_command(0x80+y);   //
 else if(x==1) send_command(0x90+y);
 else if(x==2) send_command(0x88+y);
 else if(x==3) send_command(0x98+y);
 for(hi=0;hi  <how;hi++)
 {
  send_data(*(stri+hi*2));
  send_data(*(stri+hi*2+1));
 }
}

void DispZimu(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)//字母数字都可以显示
{
 unsigned char hi=0;         //字母显示
 if(x==0) send_command(0x80+y);  
 else if(x==1) send_command(0x90+y);
 else if(x==2) send_command(0x88+y);
 else if(x==3) send_command(0x98+y); 
 for(hi=0;hi  <how;hi++)
 {
  send_data(*(stri+hi));
 } 
}

main()

 InitLCD();
 B_light=0;
 DispHanzi(0,5,3,"实验板");
 DispZimu(0,1,8,"Easy51-B");
 DispHanzi(1,0,8,"重庆市优易特电子");
 DispZimu(2,0,16,"www.u-easytech.c");
 DispZimu(3,0,2,"om");
 while(1);

}    
代理销售STM32芯片、最小系统开发学习板(各种档次芯片开发学习板188元以下)
代理销售台达PLC、变频器等工控产品。
销售 51实验板   销售 51学习板   销售 51最小系统板  销售 51开发板 
销售 89C51F040开发板   销售 89C51F020开发板 销售 ADUC0832开发板
销售 51工控板和例程  销售 51工控板和例程  销售 51工控板和例程
提供课程设计、实验学习51系统板,和多达40多个例程,只需150元,只相当一个开发板的价格、你还可获得我们的在线服务。
为广大学子提供优秀的毕设计方案和再学习机会,只需1000元学习、毕业论文两不误。
长期提供嵌入式培训;三菱PLC、台达PLC和欧母龙PLC的编程欧培训;组态王开发培训;Protol 99应用培训等软硬件设计培训服务。
以我们的系统开以方案为您提供充分的学习平台,用我们实时的交流平台为您带来技术上质的飞越,
重庆市优易特电子
联系人:行卫军
电话:023-62111023 023-68659661  023-62209634
网址:  <;     
单片机菜鸟群:17373243 单片机中级学习群:(会员才能加入)
QQ:370302924
我们的服务终止是:用我们的技术给你带来方便和效益。

发表时间:2008年3月12日20:00:32

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:跪求CAN总线的设计有没有谁有CAN总线的资料 请发我邮箱 /P P dqzxz925@
[下一篇帖子]:怎么测出来的?你怎么知道是15ma,如何测出来的?  QQ:499857088