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

📄 lcd.c

📁 单片机控制FPGA的程序,包括AD转换,频率输出,测试程序
💻 C
字号:
#include"includes.h"

void lcd_sendcmd(unsigned char da)	 //向液晶发送指令
{
     unsigned char i;
	cs=0;
	a0=0;  //指令通道
	sck=1;
	for(i = 0; i < 8; i++)
	{
		da <<= 1;
		cda = CY;
		sck = 0;
		mydelay(10);
		sck = 1;
		mydelay(10);
	}
   	cs = 1;
	mydelay(20);


}
void lcd_senddata(unsigned char da)	 //向液晶发送数据
{
     unsigned char i;
	cs=0;
	a0=1;  //数据通道
	sck=1;
	for(i = 0; i < 8; i++)
	{
		da <<= 1;
		cda = CY;
		sck = 0;
		mydelay(10);
		sck = 1;
		mydelay(10);
	}
   	cs = 1;
	mydelay(20);


}
void lcd_init(void)		  
{
	res = 1;
	mydelay(32767);
	mydelay(32767);
	lcd_sendcmd(0xE2); //internal reset
	lcd_sendcmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
	lcd_sendcmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
	lcd_sendcmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
	lcd_sendcmd(0xA6); //d0=0display normal;=1reverse
	lcd_sendcmd(0xf8); //select booster ratio
	lcd_sendcmd(0x00); //d0\d1=00:4x
	lcd_sendcmd(0x2C); //d2:1=select internal power supply operating mode
	lcd_sendcmd(0x2E); //
	lcd_sendcmd(0x2F);
	// lcd_sendcmd(0x25); //select internal resistor ratio(RB/RA)mode
	lcd_sendcmd(0x81); //select the VO output voltage electronic volume register
	lcd_sendcmd(0x14); //select the VO output voltage electronic volume register
	lcd_sendcmd(0x0e); //select the VO output voltage electronic volume register
	lcd_sendcmd(0xAF); //d0:LCD display ON=1/OFF=0
	lcd_sendcmd(0xE0);
	lcd_sendcmd(0x40); //Set the display RAM start line address
}

void Set_Page_Address(unsigned char dat)    //设置页地址
{
	lcd_sendcmd(0xb0|dat);
}

void Set_Colume_Address(unsigned char dat)	//设置列地址
{
	unsigned char tmp;
	tmp=dat>>4;
	lcd_sendcmd(0x10|tmp); //送列地址高三位
	tmp=0x0f&dat;
	lcd_sendcmd(tmp);     //送列地址低四位
}
void lcd_clr(void)		   //清屏
{
unsigned char i,j;
for(i = 0; i < 8; i++)
{
	Set_Page_Address(i);
	Set_Colume_Address(0);
	
	for(j = 0; j < 128; j++)
	{
		lcd_senddata(0x00);
	
	}
}
}
void lcd_drawpot(unsigned char x/*0-127*/, unsigned char y/*0-63*/)
{
	unsigned char temp;
	Set_Colume_Address(x);
	Set_Page_Address(y>>3);
	y &= 0x07;
    temp = 1<<y;
	lcd_senddata(temp);
}
//x每写一个字+16,y换行+1
void lcd_drawhanzimo(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
{
	unsigned int i;
	
	Set_Page_Address(y);
	Set_Colume_Address(x);
	for(i = 0; i<16; i ++)
	lcd_senddata(*(ptr+i));
	
	Set_Page_Address(y+1);
	Set_Colume_Address(x);
	for(i = 0; i<16; i++)
	lcd_senddata(*(ptr+i+16));
}


void lcd_drawnumber(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
{
    unsigned int i;
    Set_Page_Address(y);
	Set_Colume_Address(x);
	for(i = 0; i<8; i ++)
	lcd_senddata(*(ptr+i));
	
	Set_Page_Address(y+1);
	Set_Colume_Address(x);
	for(i = 0; i<8; i++)
	lcd_senddata(*(ptr+i+8));
	
}


⌨️ 快捷键说明

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