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

📄 自己编写的.c

📁 基于盛群ht46r232单片机的C语言 液晶显示屏1602a的显示驱动程序
💻 C
字号:
#include <ht46r232.h>
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
#pragma vector isr_c @ 0xc
//ISR for safequard
void isr_4(){} // external ISR
void isr_8(){} // timer/event 0
void isr_c(){} // timer/event 1
//initialize registers for safeguard
void safeguard_init(){
_intc0=0;
_intc1=0;	
_tmr0h=0;	
_tmr0l=0;	
_tmr0c=0;	
_tmr1h=0;	
_tmr1l=0;	
_tmr1c=0;
_pac=0xff;
_pbc = 0xff;     //input mode
_pcc = 0xff;
}

typedef unsigned char u8;
#define rs _pc2
#define ep _pc0
#define rw _pc1


void busycheck(void);
void init(void);
void cmd(unsigned char);
void data(unsigned char);

//************延时程序********
void delay5ms()              
{_delay(5000);}
//****************************



//************屏幕初始********
void init()
{
_pac=0;
_pbc=0;
_pcc=0;

_pb=0;
_pc=0;

delay5ms();
delay5ms();
delay5ms();

cmd(0x38);
delay5ms();

cmd(0x38);
delay5ms();

cmd(0x38);
delay5ms();
cmd(0x38);
busycheck();

cmd(0x08);
busycheck();

cmd(0x01);
busycheck();

cmd(0x06);
busycheck();

cmd(0x0c);
busycheck();

}
//****************************



//____________________________华丽的main函数分割线————————————————————————————
void main() 
{

int i=0;
u8 temp[]={"t"};
u8 temp1[]={"87"};

safeguard_init();



init();


       
 while(1){ 
cmd(0x01);
 _delay(60000);
 _delay(60000);

pos(0);
 _delay(60000);


for(i=0; i<(sizeof(temp)-1); i++){ 

         data(temp[i]);  

                               } 

for(i=0; i<(sizeof(temp1)-1); i++){ 

         data(temp1[i]);  

                               } 


pos(8);
_delay(65535);

for(i=0; i<(sizeof(temp)-1); i++){ 

         data(temp[i]);  

                               } 

for(i=0; i<(sizeof(temp1)-1); i++){ 

         data(temp1[i]);  

                               } 

cmd(0xc); 
_delay(60000);
_delay(60000);
_delay(60000);
_delay(60000);
_delay(60000);
_delay(60000);


} 
} 

//________________________________________________


//***********送指令函数********
void cmd(u8 mingling)
{
 busycheck();

 rs= 0;
 rw = 0;
 ep = 0; 
_delay(65535);

 _pb =mingling;

 ep=1;

 ep=0;

}
//***************************



//*********送数据************
void data(u8 zimu)
{busycheck();
rw=0;
 rs = 1;
 rw = 0;
 ep = 0;
_delay(65535);

_pb = zimu;

 ep = 1;

 ep = 0; 

}

//***************************

//*********busycheck*********

void busycheck(void){
u8 val;

do{
ep=0;
_pbc=0xff;
rs=0;
rw=1;
ep=1;
_delay(8);
val=_pb;
_delay(5);
ep=0;
  }while(val&(u8)0x80);
rw=0;
_pbc=0;

}

//*******************************************************
 

//*********************************写入地址******************

void pos(u8 x)
{
cmd(x|0x80);
}
//*****************************************************

⌨️ 快捷键说明

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