📄 lcd1602-0323.c
字号:
//lcd1602test.c
//Body: HT48R05A-1
//Mask option
//SysFreq: 4000KHz
//the others use the default value
#include <ht48R05A-1.h>
#define DATA _pa
#define ENABLE _pb0
#define RW _pb1
#define RS _pb2
#define EL _pc0
#define _tmrc4 _0e_4 //timer4 enable bit
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
//ISR for safequard
void isr_4(){} // external ISR
void isr_8() // timer/event
{
// if(delay1_num)
// delay1_num --;
}
void initial()
{
unsigned char i;
_pac = 0x00; // 输出到 LCD D0~D7端口
_pbc = 0x00; // PB0:E PB1:R/W PB2:RS
_pcc = 0x00; //PC0:EL
//EL = 0;
_intc = 0x5; //enable timer
_tmrc = 0x87; //timer mode (internal clock)
// set_timer();
_tmrc4 = 0;
_tmr = 0xe1;
_tmrc4 = 1; //start timer1
}
/******************************************/
void send_command(unsigned char num)
{
DATA = num;
RS = 0;
RW = 0;
ENABLE = 0;
_delay(20);
ENABLE = 1;
}
void send_data(unsigned char num)
{
DATA = num;
RS = 1;
RW = 0;
ENABLE = 0;
_delay(20);
ENABLE = 1;
}
main()
{
unsigned char index;
unsigned char i,j;
// safeguard_init();
initial();
_delay(15);
send_command(0x38);
_delay(5);
send_command(0x38);
_delay(5);
send_command(0x38);
send_command(0x38); //显示模式设置
send_command(0x08); //显示关闭
send_command(0x01); //显示清屏
send_command(0x06); //显示光标移动设置
send_command(0x0f); //显示及光标设置
send_command(0xc0);
send_command(0x80);
while(1)
{
send_data(0xc1);
send_data(0xc2);
send_data(0xc3);
send_data(0xc4);
send_data(0xc5);
send_data(0xc6);
send_data(0xc7);
send_data(0xc8);
}
/*
DATA = 0x01;
send_command();
DATA = 0X38;
send_command();
DATA = 0x0F;
send_command();
DATA = 0X06;
send_command();
DATA = 0XC0;
send_command();
DATA = 0X42;
RS = 1;
RW = 0;
ENABLE = 0;
_delay(20);
ENABLE = 1;
EL = 0;
*/
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -