打印
[C语言]

各位大神,关于1621驱动程序,求解救

[复制链接]
1425|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
superminx|  楼主 | 2014-4-19 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 superminx 于 2014-4-21 15:32 编辑

各位大神。本人是刚接触单片机的,很菜鸟。最近在自学PIC这东西。关于PIC驱动1621有些问题,求大神解救


#include<PIC16F73.h>
#include <stdio.h>

#define BIAS        0X52                      //1/3偏压,4COM                        
#define XTAL        0X28                      //系统时钟选择为外部XT振荡器
#define WDTDIS      0X0A                      //禁止WDT溢出标志输出   
#define TIMERDIS    0X08                     //时基输出禁能

#define SYSDIS      0X00                      //关闭系统时钟和偏压发生器  
#define SYSEN       0X02                      //打开系统时钟   
#define LCDON       0X06                      //打开偏压发生器
#define LCDOFF      0x04                      //关闭LCD显示     
#define nop();

#define CS   RC5
#define WR   RC3
#define DATA RC4
#define LED  RC2                    //这个是我验证的输出端口,接LED;


#define uchar unsigned char
#define uint unsigned int
/***************************延时子函数******************************/

void delay1s()                            //延时1S
{
uchar i;
uint j;
for(i=0;i<10;i++)
  for(j=0;j<13000;j++);
}   

/*************************写数据函数***************************/
void Ht1621Wr_Data(uchar dat,uchar cnt)   //从高位cnt写入数据           
{
uchar i;
for(i=0;i<cnt;i++)
{
   if((dat&0x80)==0)
    DATA=0;
   else
    DATA=1;
   WR=0;
   nop();
   nop();
   nop();
   WR=1;
   dat<<=1;
}
}


/*************************发送命令写入函数***************************/
void Ht1621WrCmd(uchar Cmd)               
{
CS=0;
nop();
nop();
Ht1621Wr_Data(0x80,4);                    //写入命令标志100
Ht1621Wr_Data(Cmd,8);                     //写入8位 Cmd命令数据
nop();
nop();
CS=1;
nop();
nop();

}

/***********************显示函数**************************/
void display(unsigned char col,unsigned char pag)
{
pag<<=2;
col<<=4;
CS=0;
nop();
nop();
Ht1621Wr_Data(0xA0,3);          //写入数据标志101
Ht1621Wr_Data(pag,6);           //写入Y轴的数据(写入6位数据地址)
Ht1621Wr_Data(col,4);            //写入X轴数据 (写入低4位数据)
CS=1;
nop();
nop();
}
//*************************LCD off函数********************************/
void LCD_OFF()
{
  uchar i;
  uchar j=0;
for(i=0;i<32;i++)
   {display(0x00,j);
     j++;
    }
}

/*************************HT1621B初始化设置*************************/
void SETUP_HT1621()                       //HT1621偏压、背极、工作方式设置
{
CS=1;
WR=1;
DATA=1;
nop();
nop();
nop();
Ht1621WrCmd(BIAS);
Ht1621WrCmd(XTAL);
Ht1621WrCmd(WDTDIS);
Ht1621WrCmd(SYSEN);
Ht1621WrCmd(LCDON);
Ht1621WrCmd(TIMERDIS);
}

//*******************************主函数******************************/
main()                                  //主函数
{
  ADCON1=0x06;           //这里,我查了很多网上的资料,不知道设置是否对
  TRISB=0x7C;                             //这是我设置按键输入的设置
  TRISC=0X00;                             //C口设为输出,以控制HT1621驱动LCD  
  SETUP_HT1621();
  LCD_OFF();
  delay1s();

    while(1)
   {
       display(0x0f,2);          //在COM和SEG组成的4X32表格中,显示第二行的4个点。
       LED=~LED;
       delay1s();
   }
}


烧录进去,LED正常工作,但是LCD屏就死无反应,我实在是想不出办法,所以求各位大神解救。
本人菜鸟一个,请见谅

相关帖子

沙发
superminx|  楼主 | 2014-4-19 17:42 | 只看该作者
急求啊,大婶们

使用特权

评论回复
板凳
superminx|  楼主 | 2014-4-21 15:32 | 只看该作者
怎么没人解救我?哎。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝