📄 dis_void.c
字号:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdio.h>
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
#include "dis_void.h"
#define lcd_di PA6
#define lcd_rw PA3
#define lcd_e PA4
#define lcd_cs1 PA7
#define lcd_cs2 PA5
#define data_io PORTC
#define uchar unsigned char
#define uint unsigned int
#define sbi(x,y) (x|=(1<<y))
#define cbi(x,y) (x&=~(1<<y))
/////////////////////
////////
void delay(unsigned int v)
{
while(v)v--;
}
void wcode(unsigned char c_code,unsigned char cs1,unsigned char cs2)
{
if(cs1==0)
{
cbi(PORTA,lcd_cs1);
}
else
{
sbi(PORTA,lcd_cs1);
}
if(cs2==0)
{
cbi(PORTA,lcd_cs2);
}
else
{
sbi(PORTA,lcd_cs2);
}
cbi(PORTA,lcd_di);
cbi(PORTA,lcd_rw);
data_io=c_code;
cbi(PORTA,lcd_e);
delay(10);
sbi(PORTA,lcd_e);
delay(10);
cbi(PORTA,lcd_e);
}
void wdata(unsigned char cdata,unsigned char cs1,unsigned char cs2)
{
if(cs1==0)
{
cbi(PORTA,lcd_cs1);
}
else
{
sbi(PORTA,lcd_cs1);
}
if(cs2==0)
{
cbi(PORTA,lcd_cs2);
}
else
{
sbi(PORTA,lcd_cs2);
}
sbi(PORTA,lcd_di);
cbi(PORTA,lcd_rw);
data_io=cdata;
cbi(PORTA,lcd_e);
delay(10);
sbi(PORTA,lcd_e);
delay(10);
cbi(PORTA,lcd_e);
}
void set_startline(unsigned char i)
{
i=0xc0+i;
wcode(i,1,1);
}
void set_adr(unsigned char x,unsigned char y)
{
x=x+0xb8;y=y+0x40;
wcode(x,1,1);
wcode(y,1,1);
}
void dison_off(unsigned char o)
{
o=o+0x3e;
wcode(o,1,1);
}
uchar inva(unsigned char b)
{
uchar v1=0;
uchar v2=0;
char i;
uchar j1=0x80;
uchar j2=0x01;
for(i=7;i>=1;i=i-2)
{
v1=((b<<i)&j1)|v1;
v2=((b>>i)&j2)|v2;
j1=j1>>1;
j2=j2<<1;
}
return(v1|v2);
}
void clr_disp()
{
unsigned char clr_i,clr_j;
for(clr_i=0;clr_i<8;clr_i++)
{
set_adr(clr_i,0);
for(clr_j=0;clr_j<64;clr_j++)
{
wdata(0,1,1);
}
}
}
//////////////////////
////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -