📄 lcdx122.c
字号:
#include <iom16v.h>
#include <macros.h>
#include <eeprom.h>
#include "iodata.h"
#define set_lcd_data (PORTC|=(1<<1))
#define clr_lcd_data (PORTC&=~(1<<1))
#define set_lcd_clk (PORTC|=(1<<0))
#define clr_lcd_clk (PORTC&=~(1<<0))
/*
LCD_write(0x80,0);
LCD_write('O',1);
LCD_write('K',1);
*/
unsigned char dispchar[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void LCD_write(unsigned char data,unsigned char rs);
void LCD_initial()
{
LCD_write(0x30,0);
LCD_write(0x06,0);
LCD_write(0x0c,0);
LCD_write(0x01,0); /*clr screen*/
}
void LCD_clr()
{
LCD_write(0x01,0); /*clr screen*/
}
void LCD_write(unsigned char data,unsigned char rs)
{
unsigned char temp;
unsigned char count;
set_lcd_data;
clr_lcd_clk;
for (count=0;count<5;count++)
{
set_lcd_clk;
clr_lcd_clk;
}//*5 bits 1*/
clr_lcd_data; /*1 bit 0*/
set_lcd_clk;
clr_lcd_clk;
if (rs) set_lcd_data;
else clr_lcd_data; /*rs=0 instrution*/
set_lcd_clk;
clr_lcd_clk;
clr_lcd_data; /*1 bit 0*/
set_lcd_clk;
clr_lcd_clk;
if (data&0x80) set_lcd_data;//high 4 bit
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x40) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x20) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x10) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
clr_lcd_data; /*4 bit 0*/
for (count=0;count<4;count++)
{
set_lcd_clk;
clr_lcd_clk;
}
if (data&0x08) set_lcd_data;//low 4 bit
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x04) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x02) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
if (data&0x01) set_lcd_data;
else clr_lcd_data;
set_lcd_clk;
clr_lcd_clk;
clr_lcd_data; /*4 bit 0*/
for (count=0;count<4;count++)
{
set_lcd_clk;
clr_lcd_clk;
}
}
void lcd_BCD(unsigned char data_hex)
{
unsigned char bit_h,bit_l;
bit_h=((data_hex&0b11110000)>>4); //用0屏蔽
bit_l=data_hex&0b00001111; //用0屏蔽
LCD_write(dispchar[bit_h],1);
LCD_write(dispchar[bit_l],1);
LCD_write(' ',1);
}
void lcd_num3(unsigned int data_hex)
{
unsigned int bit4,bit3,bit2,bit1,bit0;
bit4=data_hex/10000;
bit3=data_hex/1000-bit4*10;
bit2=data_hex/100-bit4*100-bit3*10;
bit1=data_hex/10-bit4*1000-bit3*100-bit2*10;
bit0=data_hex-bit4*10000-bit3*1000-bit2*100-bit1*10;
LCD_write(dispchar[bit4],1);
LCD_write(dispchar[bit3],1);
LCD_write(dispchar[bit2],1);
LCD_write(dispchar[bit1],1);
LCD_write(dispchar[bit0],1);
LCD_write(' ',1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -