⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic74机ht1621驱动程序c .txt

📁 功 能:液晶驱动模块 芯片型号:HT1621B 说 明: 程序设计:FANZENGTING 设计时间:2001.06.02 版 本 号:
💻 TXT
字号:
/*******************************************************************
公司名称:
模块名称:1621.c
功    能:液晶驱动模块           芯片型号:HT1621B
说    明:
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
#include <pic.h>
#include <pic1674.h>
#include <math.h>
#include <stdio.h>
#define WR      RB4/*时钟线*/
#define DATA    RB5/*数据线*/
#define CS      RB6/*片选线*/
#define word_long 8/*TAB_DISPLAY[16]时为8;TAB_DISPLAY[32]时为4*/
unsigned char   TAB_DISPLAY[16];
/*1621的显存是4位*32的,故用16*8位的寄存器
  就能满足要求奇数显存放高4位,偶数放低4位*/
/*****************************************************************/
   /*LCD系统命令(可选)*/
const char TAB_REST[10]={0b00000001,/*打开系统振荡器命令*/
    0b00000011,/*打开LCD 偏压发生器命令*/
    0b00000101,/*WDT 溢出标志输出失效命令*/
    0b00000110,/*时基输出使能命令*/
    0b00011000,/*系统时钟源片内RC振荡器命令*/
    0b00101001,/*LCD1/3偏压选项4个公共口命令*/
    0b01000000,/*声音频率4KHz命令*/
    0b00001001,/*打开声音输出命令*/
    0b10100000,/*时基/WDT 时钟输出1Hz命令*/
    0b10001000};/*使/IRQ 输出有效命令*/
/******************************************************************** 
函 数 名:dlay( )
功    能:延时
说    明 (内部函数)
入口参数:无
返 回 值:无  
设    计:FANZENGTING           日    期:2001-06-02
修    改:                      日    期: 
***********************************************************************/
void dlay( )
 {
  #asm
  nop;
  nop;
  nop;
  nop;
  nop;
  #endasm
 }
/******************************************************************** 
函 数 名:display_start( )
功    能:LCD系统初始化
说    明 启动1621
入口参数:无
返 回 值:无  
设    计:FANZENGTING           日    期:2001-06-02
修    改:                      日    期: 
***********************************************************************/
void display_start( )
 {
unsigned char t;
  CS=0;
  send_data(0b10000000,3);/*送3位命令模式代码100*/
  for(t=0;t<=9;t++)
  {
   send_data(TAB_REST[t],9);/*送9位命令代码*/ 
  }
  CS=1;
   WR=1;
  }
/******************************************************************** 
函 数 名:display( )
功    能:写显存
说    明 连续地址写模式
入口参数:无
返 回 值:无  
设    计:FANZENGTING           日    期:2001-06-02
修    改:                      日    期: 
***********************************************************************/
void display( )
 {
unsigned char t;
  CS=0;
  WR=0;
  send_data(0b10100000,3);/*送3位WRITE 模式命令代码101*/
  send_data(0,6);/*送6位首地址00h*/
  for(t=0;t<=15;t++)
  {
   send_data(TAB_DISPLAY[t],word_long);/*送16*8显存数据*/
  }
  CS=1;
   WR=1;
 }
/******************************************************************** 
函 数 名:send_data(data_bus,loop)
功    能:数据传送
说    明  (内部函数)
入口参数:待传数,待传数的位数
返 回 值:无  
设    计:FANZENGTING           日    期:2001-06-02
修    改:                      日    期: 
***********************************************************************/
int send_data(data_bus,loop)
unsigned char data_bus,loop;
 {
  for(;loop!=0;loop--)
  {
   dlay( );
   WR=0;
   if((data_bus&0b10000000)==0)
   {
    DATA=0;
   }
   else
   {
    DATA=1;
   }
   data_bus=data_bus<<1;
   WR=1;
  }
 }
/****************************************************************
void main( )
 {
  display_start( );
  while(1)
  {
   display( );
  }
 }
****************************************************************/ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -