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

📄 show.c

📁 ATMEG162获得GPS定位数据的程序
💻 C
字号:
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/delay.h>
#include "self_def.h"


//定义字码数组
unsigned char zima[]={
		//{0}
		0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,

		//{1}
		0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

		//{2}
		0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,

		//{3}
		0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,

		//{4}
		0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,

		//{5}
    	0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,


		//{6}
		0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,

		//{7}
		0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,

		//{8}
		0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,

		//{9}
		0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,

		//{E}
		0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,
		
		//{S}
		0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,

		//{W}
		0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,

		//{N}
		0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,

		//{R}
		0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,

		//{O}
		0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,

		//{A}
		0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,

		//{V}
		0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,
		
		//{.}
		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,

		};
//发送主控制指令
void OUTMI(uchar i)
{
	E1_H;
	EN_INS;
	PORTA=i;
	//_delay_us(5);
	E1_L;
}
//发送从控制指令
void OUTSI(uchar i)
{
	E2_H;
	EN_INS;
	PORTA=i;
	//_delay_us(5);
	E2_L;
}
//发送主数据
void OUTMD(uchar i)
{
	E1_H;
	EN_DATA;
	PORTA=i;
	//_delay_us(5);
	E1_L;
}
//发送从数据
void OUTSD(uchar i)
{
	E2_H;
	EN_DATA;
	PORTA=i;
	//_delay_us(5);
	E2_L;
}
//设置页面
void SetPage(uchar i,uchar j)
{
	OUTMI(0xB8|i);
	OUTSI(0xB8|j);
}
//设置物理地址
void SetAddress(uchar i,uchar j)
{
	OUTMI(i);
	OUTSI(i);
}
//清屏
void clrscr(void)
{
	uchar i,page;
	for(page=0;page<4;page++)
	{
		SetPage(page,page);
		SetAddress(0,0);
		for(i=0;i<61;i++)
		{
			OUTMD(0);
			OUTSD(0);
		}
	}
}
//显示两行汉字
//字码为宋体,常规,小四,16*16格式
void display_word(uchar d,uchar x_add,uchar layer,uchar length)
{
	//page表示页面,address表示显存的物理地址,window左右部分
	uchar x,address=0,window=0;
	unsigned int d_where;
	//uchar dis_data;
	d_where=d*length*2;
	for(x=0;x<length;x++)
	{
		if(x_add>60){
						window=1;
						address=x_add%61;
					}
		else
					address=x_add;
		if(layer==0)
		{
			//写第一行8个字
			SetPage(0,0);					//写page0
			SetAddress(address,address);	
			if(1==window)					//判断左边还是右边,即主还是从
				OUTSD(zima[d_where]);
			else
				OUTMD(zima[d_where]);
			SetPage(1,1);					//写page1
			SetAddress(address,address);
			if(1==window)
				OUTSD(zima[d_where+length]);
			else
				OUTMD(zima[d_where+length]);
		}
		else
		{
			//写第二行8个字
			SetPage(2,2);
			SetAddress(address,address);
			if(1==window)
				OUTSD(zima[d_where]);
			else
				OUTMD(zima[d_where]);
			SetPage(3,3);
			SetAddress(address,address);
			if(1==window)
				OUTSD(zima[d_where+length]);
			else
				OUTMD(zima[d_where+length]);
		}
		x_add++;
		d_where++;		
	}
}
//初始化LCD
void init_lcd(void)
{
	
	DDRA=0xFF;
	DDRB|=(1<<PB0)|(1<<PB1)|(1<<PB4);
	DDRD|=(1<<PD4);
	EN_WRITE;

	OUTMI(0xE2);OUTSI(0xE2);			//复位
	OUTMI(0xAE);OUTSI(0xAE);			//POWER SAVE
	OUTMI(0xA4);OUTSI(0xA4);			//动态驱动
	OUTMI(0xA9);OUTSI(0xA9);			//1/32占空比
	OUTMI(0xA0);OUTSI(0xA0);			//顺时针
	OUTMI(0xEE);OUTSI(0xEE);			//写模式
	OUTMI(0x00);						//column 0
	OUTMI(0xC0);						//从第一行开始显示
	OUTSI(0x00);
	OUTSI(0xC0);
	OUTMI(0xAF);OUTSI(0xAF);			//display on
	clrscr();
}
/*********************************************************
//取字码地址
uchar get_d_where(uchar c)
{
	uchar d_where;
	if(c>='0'&&c<='9')
		d_where=c-'0';
	else if(c=='E'||c=='e')
		d_where=10;
	else if(c=='S'||c=='s')
		d_where=11;
	else if(c=='W'||c=='w')
		d_where=12;
	else
		d_where=13;
	return d_where;
}
**********************************************************/

⌨️ 快捷键说明

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