好文档 - 专业文书写作范文服务资料分享网站

嵌入式课程设计报告 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

.

附录

一、 源程序

#define

GLOBAL_CLK

1

#include \#include \#include \#include \#include \#include \/*

*#define LCD_W35 *

*#elif defined(LCD_W35) *

*#define LCD_WIDTH 320 宽 //在option.h文件里面有他们的定义

*#define LCD_HEIGHT *#define LCD_PIXCLOCK

240 高

4

时钟参数

*#define LCD_RIGHT_MARGIN *#define LCD_LEFT_MARGIN *#define LCD_HSYNC_LEN

0x44 右边沿 0x04 左边沿

0x01 行无效脉冲宽度

10 上边沿 4

下边沿

*#define LCD_UPPER_MARGIN *#define LCD_LOWER_MARGIN *#define LCD_VSYNC_LEN

*#define LCD_CON5 */

1 列无效脉冲宽度

((1<<11) | (1<<8) | (1<<9) | (1<<0) )

unsigned int lcd_buf[LCD_HEIGHT][LCD_WIDTH]; //24bpp,定义为(unsigned int)32

.

.

void delay(unsigned int times); void lcd_init(void);

void lcd_brush_background(unsigned int color);

void lcd_draw_circle(unsigned int color, unsigned int radius);

void lcd_draw_word(unsigned int x, unsigned int y, unsigned int color, const unsigned char ch[]); void lcd_draw_ascii(unsigned int x, unsigned int y, unsigned int color, const unsigned char ch[]); void lcd_put_pixel(unsigned int x, unsigned int y, unsigned int color);

int Main(void) { }

void delay(unsigned int times) { int i;

for (;times > 0; times--) }

void lcd_init(void) {

.

lcd_init();

lcd_brush_background(0xffffff);

lcd_draw_word(80, 100, 0x00ff00, *word); lcd_draw_word(80, 200, 0x00ff00, *(word + 4)); lcd_draw_ascii(130, 80, 0xff0000, *(word + 8)); lcd_draw_ascii(130, 155, 0xff0000, *(word + 10)); lcd_draw_ascii(130, 230, 0xff0000, *(word + 12)); while (1); return 0;

for (i = 0; i < 400; i++);

rGPCCON = 0xaaaa02a9; //管脚配置用于LCD

.

rGPCUP = 0xffffffff; rGPDCON = 0xaaaaaaaa; rGPDUP = 0xffffffff;

rGPGCON |= (0x3<<8); //设置GPG4为LCD_PWREN rGPGUP |= (0x1<<4); rGPGDAT |= (0x1<<4);

rLCDCON1 = (LCD_PIXCLOCK<<8) | (0x3<<5) | (0xd<<1); //设置时钟、LCD类型

为TFT、24bpp

rLCDCON2 = (LCD_UPPER_MARGIN<<24) | ((LCD_HEIGHT - 1)<<14) |

(LCD_LOWER_MARGIN<<6) | (LCD_VSYNC_LEN);

rLCDCON3 = (LCD_RIGHT_MARGIN<<19) | ((LCD_WIDTH - 1)<<8) |

(LCD_LEFT_MARGIN);

rLCDCON4 = LCD_HSYNC_LEN; rLCDCON5 = 0x0308;

rLCDSADDR1 = (((unsigned int)lcd_buf>>22)<<21) | ((0x1fffff) & ((unsigned

int)lcd_buf>>1));

rLCDSADDR2 = 0x1fffff & (((unsigned int)lcd_buf + (LCD_WIDTH * LCD_HEIGHT *

4))>>1);

rLCDSADDR3 = LCD_WIDTH * 32 / 16; rLCDINTMSK |= 0x3; rTCONSEL = 0;

rLCDCON5 = rLCDCON5 & (~(1<<3)) | (1<<3); //有效PWREN信号

rLCDCON5 = rLCDCON5 & (~(1<<5)) | (0<<5); //PWREN信号极性不翻转 }

void lcd_brush_background(unsigned int color) {

.

rLCDCON1 |= 0x1; //开启LCD

int x, y;

.

for (x = 0; x < LCD_HEIGHT; x++) { for (y = 0; y < LCD_WIDTH; y++) { lcd_buf[x][y] = color;

}

}

}

void lcd_draw_circle(unsigned int color, unsigned int radius) { unsigned int x, y;

unsigned int sqr = radius * radius;

for (x = 0; x < LCD_WIDTH; x++) { for (y = 0; y < LCD_HEIGHT; y++) {

if (((x-120)*(x-120) + (y-160)*(y-160)) <= sqr) { lcd_buf[x][y] = color;

}

}

}

}

.

//点在圆内的话就上色

嵌入式课程设计报告 - 图文

.附录一、源程序#defineGLOBAL_CLK1#include\#include\#include\#include\#include\#include\/**#defineLCD_W35**#elifdefined
推荐度:
点击下载文档文档为doc格式
5969m0vs1v8c83h0epna2cg5h8inz6016aw
领取福利

微信扫码领取福利

微信扫码分享