📄 自己编写的.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 + -