您现在所在的是:

单片机论坛

回帖:4个,阅读:2251 [上一页] [1] [下一页]
1181
feng89
文章数:107
年度积分:50
历史总积分:1181
注册时间:2002/10/23
发站内信
发表于:2005/10/6 18:15:00
#0楼
本显示屏用是的240X128屏,控制器是:T6963C。一列显示15个16X16汉写可以显示8行。

这是一个32路,K型热电隅温控的控制器的显示界面。想用温控的朋友可以找我!……^_^.
qq:283870012
附件
附件
附件

//我的t6963c的程序(C语言)
//我可是倾囊相售了,大家看完帮顶下,可以让更多人看到
//是我花不少时间编写调试成功的,希望对大家有用。
//取模方式:行列式,顺向(高位在前。)
#include <reg51.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
//#define lcd_cmd_addr 0x8100    //lcd指令口地址,如果用总线的方式,我的程序是用间接的方式的
//#define lcd_dat_addr 0x8000    //lcd数据口地址
#define gra_first_addr 0x0000   //图形区首地址
#define linewidth 30            //图形区宽度
#define dataport P0             //液晶接的数据接口。

sbit cd=P2^0;    //命令  数据
sbit ce=P2^1;    //片信号。
sbit wr=P3^6;    //读信号
sbit rd=P3^7;    //写信号

unsigned int graphicpos;        //变量中存放妆前的图形区首地址

void lcddelay(unsigned int time)
   {
     unsigned int i;
     for(i=0;i<time;i++);

     }
/*
lcdwait:根据参数STA的值,等待直到某一个状态满足条件。
STA:0:读写条件
    1:自动读
    2:自动写

void lcdwait(unsigned char sta)
  {
    unsigned char lcdstate;
    while(1)
    {
      lcddelay(2);
      ce=0;
  cd=1;
  rd=1;
  wr=1;
  dataport=0xff; //读之前要先给数据口送0XFF。
  rd=0;
  lcdstate=dataport;  //读出数据。
  rd=1;
  ce=1;
     
 
      if(sta==0)
        {if((lcdstate&0x03)==0x03) break;
         
         }
      else  if(sta==1)
        {if((lcdstate&0x04)==0x04) break;
         
         }
       else if(sta==2)
        {if((lcdstate&0x08)==0x08) break;
         
         }

      else break;
     }  

   }

/*
lcdcommand :写命令到LCD命令口
DAT1:参数1
DAT2:参数2
DAT3:参数3
CMD:命令字
PNUM:参数个数
如果只有一个参数,则存放到DAT1中。
*/
void lcdcommand(unsigned char dat1,unsigned char dat2,unsigned char cmd,unsigned char pnum)
{
if ((pnum==1)||(pnum==2))
 {
   lcdwait(0);
   ce=0;
cd=0;
wr=0;
dataport=dat1; //写数据
wr=1;
cd=1;
ce=1;
 
 }

if (pnum==2)
 {
   lcdwait(0);
   ce=0;
cd=0;
wr=0;
dataport=dat2; //写数据
wr=1;
cd=1;
ce=1;
 
 }

   lcdwait(0);
      ce=0;
cd=1;
wr=0;
dataport=cmd; //写向命令口写入命令字
wr=1;
ce=1;
}

/*
dispchar:在指定的位置显示一个8X16的西文字符,要显示一个汉字就要两个西文
xpos:距左上角的横向显示字符的位置
ypos:距左上角的纵向显示字符的位置
index:字符码
*/

void dispchar(unsigned char xpos,unsigned char ypos,unsigned int index)

{
 unsigned int addr;
 unsigned int mya;
 extern unsigned char code modetable[];
 unsigned int lrampos;
 lrampos=ypos*linewidth+xpos+graphicpos;//计算LCDRAM对应的地址
 for (addr=(index*16);addr<(index+1)*16;addr++)
  {
   lcdcommand(lrampos,lrampos>>8,0x24,2);
   mya=addr;
   lcdcommand(modetable[addr],0,0xc4,1);
   lrampos+=linewidth;
   }
}

/*
dispchword:在指定的位置显示一个汉字就要两个西文
xpos:距左上角的横向显示字符的位置
ypos:距左上角的纵向显示字符的位置
index:字符码
*/

void dispchword(unsigned char xpos,unsigned ypos,unsigned index)

 {  
dispchar(xpos,ypos,index);
dispchar(xpos+1,ypos,index+1);

 }
/*
清屏功能:利用向数据单元填充00的办法清屏。

*/

void lcdclr()
 {   unsigned int i=16384;         //240x128的屏总共有:128X128=16384个单元。
     lcdcommand(0,0,0x24,2);       //设填充开始地址
   do
   { lcdcommand(0x00,0,0xc0,1);   //写入填充数据,数据指针自动加1
    }while(i--);
    lcdcommand(0x00,0,0xb2,0);    //读写自动结束。
 }

/*
void lcdint():初始化LCD。
*/
void lcdint()

{    
  lcdcommand(0x00,0x00,0x42,2);          //设置图形区首地址
  lcdcommand(linewidth,0x00,0x43,2);     //设置图形区的宽度
  lcdcommand(0,0,0x9b,0);                //设置显示开关为开文字、开图形显示
  lcdcommand(0,0,0x80,0);                //设置显示方式为合成
  lcdclr();                              //清屏。
   
}

void main()
{unsigned char i,j,k=0;
lcdint();

lcddelay(1000);

for(i=0;i<128;i+=16)
{
for(j=0;j<30;j+=2)
{dispchword(j,i,k);
k+=2;

}
}
   
while(1);

}







**内容隐藏回复可见**

看贴要回帖!本显示屏用是的240X128屏,控制器是:T6963C。一列显示15个16X16汉写可以显示8行。

这是一个32路,K型热电隅温控的控制器的显示界面。想用温控的朋友可以找我!……^_^.
qq:283870012






[此贴子已经被作者于2005-10-15 12:24:57编辑过]
135元10点PLC,6点输入,4点继电器输出,带外壳、开关电源。
WWW.FXPLC.CN
1951
jishu61
文章数:353
年度积分:50
历史总积分:1951
注册时间:2005/3/26
发站内信
发表于:2005/10/6 18:30:00
#1楼
我虽然看不懂,但也帮忙顶一下.
无条件抵制日货,日本孬种.
969
zhoucq2
文章数:33
年度积分:50
历史总积分:969
注册时间:2004/9/13
发站内信
发表于:2005/10/7 22:52:00
#2楼
911
lypin
文章数:5
年度积分:50
历史总积分:911
注册时间:2005/10/11
发站内信
发表于:2005/10/11 20:42:00
#3楼
楼主能否把电路图贴出来。
楼主能否把温控的电路图贴出来?
906
jiawena
文章数:5
年度积分:50
历史总积分:906
注册时间:2005/10/11
发站内信
发表于:2005/10/13 14:12:00
#4楼
楼主,可不可以把温控的电路图发一个给我?谢谢!jiawenang@1633.com

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005