求助:关于T6963C控制器的程序哪里出错了 点击:768 | 回复:1



caoxiaoxue

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2006年4月06日
发表于:2006-04-18 09:40:00
楼主


#include <reg51.h>
#include <math.h>
#include <absacc.h>
#include <string.h>

//以8*8字符计算,显示屏横向、纵向可以显示的字符个数
#define LineChar 8 //共8行
#define ColumnChar 16 //总共16列

//信号管脚定义(全局变量)(注意:因为液晶数据口接P1,故为间接控制方式)
sbit cd=P2^0;
sbit reset=P2^1;
sbit wr=P3^6;
sbit rd=P3^7;
unsigned char  code ASCII816[ ][16];
unsigned char code HZTable[ ][32];

//数据线定义
#define dataport P1    //P1为数据口
#define unchar unsigned char
#define unint  unsigned int

/*----------------------------------------------------------------------------------------*/
//延时函数
void Lcddelay(unsigned char MS)
{
        unsigned char us, usn;
while(MS!=0)
{ usn = 4;
while(usn!=0)
{
us=0xf0;
while(us!=0){us--;}
usn--;
}
MS--;
}
}
/*---------------------------------------------------------------------------------------*/
//状态检查函数
//指令,数据读写状态检查
void RWCheck()
{
  unchar dat;
      do{
        dataport=0xff;
        cd=1;
        rd=0;
        dat=dataport;
        rd=1;
        dat=0x03&dat;//STA0,STA1是否准备好
        }while(dat!=0x03);

 }
//数据自动读状态检查
void AutoRCheck()
{
 unchar dat;
    do{
        dataport=0xff;
        cd=1;
        rd=0;
        dat=dataport;
        rd=1;
        dat=0x04&dat;//STA2是否准备好
        }while(dat==0x00);
 }
 //数据自动写状态检查
void AutoWCheck()
{
 unchar dat;
    do{
        dataport=0xff;
        cd=1;
        rd=0;
        dat=dataport;
        rd=1;
        dat=0x08&dat;//STA3是否准备好
        }while(dat==0x00);
 }

//读数据
unchar InPortData()
{
 unchar dat;
 RWCheck(); //判断状态位STA0,STA1
 cd=0;
 dataport=0xff;
 rd=0;
 dat=dataport;
 rd=1;
 return(dat);
 }
/*------------------------------------------------------------------------------------*/
/*------输入/出函数,与T6963通讯------------------------------------------------*/
/*------------------------------------------------------------------------*/

// 向数据口发Data
void OutPortData(dat) { RWCheck(); cd=0;  dataport=dat; wr=0; wr=1;}

//写有 1 个参数命令
void OutPortCom1(command) { RWCheck(); cd=1; dataport=command; wr=0; wr=1;}

//写有 2 个参数命令
void OutPortCom2(dat, command) { OutPortData(dat); OutPortCom1(command); }

//写有 3 个参数命令
void OutPortCom3(data1, data2, command) { OutPortData(data1); OutPortData(data2); OutPortCom1(c



论语

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2006年4月20日
发表于:2006-04-20 20:55:00
1楼
c的看不懂,汇编的用过
1.做好初始化
2.上电复位的时候看看系统的复位顺序
3.最好别太着急,先做一个字,想显示在哪里就显示在哪里先

热门招聘
相关主题

官方公众号

智造工程师