/*******************************************************************
程序功能:ILI9331液晶驱动
设 计:林夕依然
时 间:2010.10.8
*********************************************************************/
#include<avr/io.h>
#include<util/delay.h>
#define uchar unsigned char
#define uint unsigned int
/********************************************************************
函数:
功能:端口定义
********************************************************************/
#define DATAOUT(data) PORTD=(uchar)((data&0xFF00)>>8);PORTB=(uchar)data;
#define CS 0
#define CS0() PORTA&=~(1<<CS)
#define CS1() PORTA|=1<<CS
#define WR 1
#define WR0() PORTA&=~(1<<WR)
#define WR1() PORTA|=1<<WR
#define RS 2
#define RS0() PORTA&=~(1<<RS)
#define RS1() PORTA|=1<<RS
#define RD 3
#define RD0() PORTA&=~(1<<RD)
#define RD1() PORTA|=1<<RD
#define RST 4
#define RST0() PORTA&=~(1<<RST)
#define RST1() PORTA|=1<<RST
#define EN 5
#define EN0() PORTA&=~(1<<EN)
#define EN1() PORTA|=1<<EN
//#define LCD_X 240 //竖屏
//#define LCD_Y 320
#define LCD_X 320 //横屏
#define LCD_Y 240
#define R 0xF800
#define G 0x07E0
#define B 0x001F
#define WHITE 0xFFFF // 白色:
/********************************************************************
函数:void X_cmd(uint cmd)
功能:写指令
********************************************************************/
void X_cmd(uint cmd)
{
RD1();
CS0();
RS0();
WR0();
DATAOUT(cmd);
_delay_us(2);
WR1();
CS1();
}
/********************************************************************
函数:void X_data(uint data)
功能:写数据
********************************************************************/
void X_data(uint data)
{
RD1();
CS0();
RS1();
WR0();
DATAOUT(data);
_delay_us(2);
WR1();
CS1();
}
/********************************************************************
函数:void LCD_REST(void)
功能:LCD复位
********************************************************************/
void LCD_REST(void)
{
RST1();
_delay_ms(10);
RST0();
_delay_ms(100);
RST1();
_delay_ms(30);
}
/********************************************************************
函数:void X_cmd_data(uint cmd,uint data)
功能:写指令,写数据
********************************************************************/
void X_cmd_data(uint cmd,uint data)
{
X_cmd(cmd);
X_data(data);
}
/********************************************************************
函数:void LCD_BlockSet(uint startx, uint starty, uint endx, uint endy)
功能:液晶屏显示窗口设置,竖屏模式
********************************************************************/
/*
void LCD_BlockSet(uint startx, uint starty, uint endx, uint endy)
{
X_cmd_data(0x0050,startx);
X_cmd_data(0x0051,endx);
X_cmd_data(0x0052,319-endy);
X_cmd_data(0x0053,319-starty);
X_cmd_data(0x0020,startx);
X_cmd_data(0x0021,319-starty);
X_cmd(0x0022);
}
*/
void LCD_BlockSet(uint startx, uint starty, uint endx, uint endy)
{
X_cmd_data(0x0050,239-endy);//液晶屏显示窗口设置,横屏模式
X_cmd_data(0x0051,239-starty);
X_cmd_data(0x0052,319-endx);
X_cmd_data(0x0053,319-startx);
X_cmd_data(0x0020,239-starty);
X_cmd_data(0x0021,319-startx);
X_cmd(0x0022);
}
/********************************************************************
函数:void LCD_Init(void)
功能:LCD初始化
********************************************************************/
void LCD_Init(void)
{
LCD_REST();
// Base config
//X_cmd_data(0x00E7,0x1014);
X_cmd_data(0x0001,0x0100); //驱动输出
X_cmd_data(0x0002,0x0200); //液晶显示驱动输出
X_cmd_data(0x0003,0x1008);//刷屏方向 X_cmd_data(0x0003,0x1008); X_cmd_data(0x0003,0x1010);
X_cmd_data(0x0008,0x0202); //显示控制2
X_cmd_data(0x0009,0x0000); //显示控制3
X_cmd_data(0x000A,0x0000); //显示控制4
X_cmd_data(0x000C,0x0000); //RGB显示接口控制1
X_cmd_data(0x000D,0x0000); //
X_cmd_data(0x000F,0x0000); //RGB显示接口控制2
//Power On sequence
X_cmd_data(0x0010,0x0000); //功率控制1
X_cmd_data(0x0011,0x0004); //功率控制2
X_cmd_data(0x0012,0x0000); //功率控制3
X_cmd_data(0x0013,0x0000); //功率控制3
_delay_ms(200);
X_cmd_data(0x0010,0x1490);
X_cmd_data(0x0011,0x0224);
_delay_ms(50);
X_cmd_data(0x0012,0x001A);
_delay_ms(50);
X_cmd_data(0x0013,0x1100);
X_cmd_data(0x0029,0x0011); //功率控制7
X_cmd_data(0x002B,0x000C); //帧率和颜色控制
_delay_ms(50);
//Set GRAM area
X_cmd_data(0x0020,0x0000); //水平GRAM设置
X_cmd_data(0x0021,0x0000); //垂直GRAM设置
//Adjust the Gamma Curve
X_cmd_data(0x0030,0x0000); //Gamma Control 1
X_cmd_data(0x0031,0x0607); //Gamma Control 2
X_cmd_data(0x0032,0x0305); //Gamma Control 3
X_cmd_data(0x0035,0x0000); //Gamma Control 4
X_cmd_data(0x0036,0x1604); //Gamma Control 5
X_cmd_data(0x0037,0x0204); //Gamma Control 6
X_cmd_data(0x0038,0x0001); //Gamma Control 7
X_cmd_data(0x0039,0x0707); //Gamma Control 8
X_cmd_data(0x003C,0x0000); //Gamma Control 9
X_cmd_data(0x003D,0x000F); //Gamma Control 10
//Set RAM area
X_cmd_data(0x0050,0x0000); //X起始地址
X_cmd_data(0x0051,0x00EF); //X结束地址(239)
X_cmd_data(0x0052,0x0000); //Y起始地址
X_cmd_data(0x0053,0x013F); //Y结束地址(319)
X_cmd_data(0x0060,0xA700); //驱动输出控制
X_cmd_data(0x0061,0x0001); //图像显示控制
X_cmd_data(0x006A,0x0000); //垂直滚动控制
//Partial Display Control
X_cmd_data(0x0080,0x0000); //图1显示控制
X_cmd_data(0x0081,0x0000); //部分图片1区(起始线)
X_cmd_data(0x0082,0x0000);
X_cmd_data(0x0083,0x0000);
X_cmd_data(0x0084,0x0000);
X_cmd_data(0x0085,0x0000);
//Panel Control
X_cmd_data(0x0090,0x0010); //面板接口控制1
X_cmd_data(0x0092,0x0600); //面板接口控制2
X_cmd_data(0x0007,0x0133); //显示控制1
X_cmd(0x0022); //对GRAM写数据
}
/********************************************************************
函数:void GUI_FillSCR(uint color)
功能:全屏填充
********************************************************************/
void GUI_FillSCR(uint color)
{
uint i,j;
LCD_BlockSet(0,0,LCD_X-1,LCD_Y-1);
for(i=0; i<LCD_X; i++)
{
for(j=0; j<LCD_Y; j++)
{
X_data(color);
}
}
}
/********************************************************************
函数:void GUI_ClearSCR(void)
功能:清屏
********************************************************************/
void GUI_ClearSCR(void)
{
LCD_Init();
GUI_FillSCR(0x00);
}
/********************************************************************
函数:void LCD_RectangleFill(uint x0, uint y0, uint width, uint high, uint color)
功能:指定位置填充颜色
********************************************************************/
void LCD_RectangleFill(uint x0, uint y0, uint width, uint high, uint color)
{
uint i,j;
LCD_BlockSet(x0, y0, x0+width-1, y0+high-1);
for(i=0; i<width; i++)
{
for(j=0; j<high; j++)
{
X_data(color);
}
}
}
/********************************************************************
函数:int main(void)
功能:主函数
********************************************************************/
int main(void)
{
DDRA=0xFF;
PORTA=0xFF;
DDRB=0xFF;
PORTB=0xFF;
DDRD=0xFF;
PORTD=0xF
没有合适的资源?快使用搜索试试~ 我知道了~
AVR-code.rar_avr
共99个文件
makefile:9个
lss:9个
elf:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 157 浏览量
2022-09-20
18:02:40
上传
评论
收藏 124KB RAR 举报
温馨提示
可以运行的 avr程序 已经测试过
资源推荐
资源详情
资源评论
收起资源包目录
AVR-code.rar (99个子文件)
AVR
ADC
main.c 3KB
adc.aws 227B
ADC.aps 3KB
default
dep
main.o.d 2KB
ADC.map 14KB
ADC.eep 13B
ADC.hex 2KB
Makefile 2KB
main.o 7KB
ADC.elf 7KB
ADC.lss 18KB
juzhenjianpan
juzhenjianpan.aws 223B
juzhenjianpan.aps 3KB
main.c 1KB
default
dep
main.o.d 1KB
juzhenjianpan.elf 5KB
juzhenjianpan.hex 958B
juzhenjianpan.lss 9KB
juzhenjianpan.eep 13B
juzhenjianpan.map 10KB
Makefile 2KB
main.o 5KB
moniSPI
main.c 1KB
moniSPI.aps 3KB
monispi.aws 218B
default
dep
main.o.d 1KB
moniSPI.elf 4KB
moniSPI.hex 815B
moniSPI.map 10KB
moniSPI.eep 13B
Makefile 2KB
main.o 4KB
moniSPI.lss 7KB
USART
main.c 3KB
usart.aws 710B
USART.aps 3KB
default
dep
main.o.d 2KB
USART.eep 13B
USART.hex 987B
USART.lss 8KB
Makefile 2KB
main.o 5KB
USART.elf 5KB
USART.map 10KB
LCD
main.c 3KB
lcd.aws 213B
LCD.aps 3KB
default
dep
main.o.d 1KB
LCD.elf 6KB
LCD.lss 11KB
LCD.eep 13B
LCD.hex 1KB
Makefile 2KB
main.o 7KB
LCD.map 10KB
SPI
main.c 2KB
spi.aws 106B
SPI.aps 3KB
default
dep
main.o.d 1KB
SPI.eep 13B
SPI.hex 754B
SPI.elf 5KB
SPI.lss 7KB
SPI.map 10KB
Makefile 2KB
main.o 4KB
AD
main.c 4KB
ad.aws 214B
AD.aps 3KB
default
dep
main.o.d 2KB
AD.lss 20KB
AD.map 13KB
AD.hex 3KB
AD.elf 7KB
Makefile 2KB
main.o 9KB
AD.eep 13B
LCD28
main.c 8KB
lcd28.aws 215B
LCD28.aps 3KB
default
dep
main.o.d 1KB
LCD28.lss 32KB
LCD28.eep 13B
LCD28.elf 9KB
LCD28.map 10KB
Makefile 2KB
main.o 14KB
LCD28.hex 4KB
anjian
main.c 1KB
anjian.aps 3KB
anjian.aws 473B
default
anjian.hex 553B
dep
main.o.d 1KB
anjian.lss 5KB
anjian.eep 13B
anjian.elf 4KB
Makefile 2KB
main.o 4KB
anjian.map 9KB
共 99 条
- 1
资源评论
局外狗
- 粉丝: 64
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功