基于OLED液晶显示器的显示系统_第1页
基于OLED液晶显示器的显示系统_第2页
基于OLED液晶显示器的显示系统_第3页
基于OLED液晶显示器的显示系统_第4页
基于OLED液晶显示器的显示系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于OLED液晶显示器的显示系统 姓名:唐旭晴学号:110400609班级:11电子2班一、实习目的(1)了解飞思卡尔单片机的基本原理,掌握其基本的工作流程。(2)了解OLED液晶显示屏的基本原理及用法。(3)能够熟练使用CodeWarrior软件编写C语言程序,使用BDM仿真器下载程序。(4)能够熟练焊接电路板。二、实验设备与器件CodeWarrior软件,BDM仿真器,万用电路板,飞思卡尔单片机,OLED液晶显示器三、实验内容内容:利用飞思卡尔单片机制作基于OLED液晶显示器的显示系统要求:用四个按键控制,按下第一个按键显示“北”,按下第二个按键显示“京”,按下第三个按键显示“印刷”,按下

2、第四个按键显示“学院”。(1)OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。LCD都需要背光,而OLED不需要,因为它是自发光的。这样同样的显示,OLED效果要来得好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。我们使用的是ALINETEK的

3、OLED显示模块,该模块有以下特点:1)模块有单色和双色两种可选,单色为纯蓝色,而双色则为黄蓝双色。2)尺寸小,显示尺寸为0.96寸,而模块的尺寸仅为27mm*26mm大小。3)高分辨率,该模块的分辨率为128*64。4)多种接口方式,该模块提供了总共4种接口包括:6800、8080两种并行接口方式、4线SPI接口方式以及IIC接口方式。5)不需要高压,直接接3.3V就可以工作了。这里我们采用的是4线串行(SPI)方式,4先串口模式使用的信号线有如下几条:CS:OLED片选信号。RST(RES):硬复位OLED。DC:命令/数据标志(0,读写命令;1,读写数据)。SCLK:串行时钟线。在4线串

4、行模式下,D0信号线作为串行时钟线SCLK。SDIN:串行数据线。在4线串行模式下,D1信号线作为串行数据线SDIN。模块的D2需要悬空,其他引脚可以接到GND。在4线串行模式下,只能往模块写数据而不能读数据。在4线SPI模式下,每个数据长度均为8位,在SCLK的上升沿,数据从SDIN移入到SSD1306,并且是高位在前的。DC线还是用作命令/数据的标志线。在4线SPI模式下,写操作的时序如图17.1.6所示: 4线SPI写操作时序图模块的显存:SSD1306的显存总共为128*64bit大小,SSD1306将这些显存分为了8页,其对应关系如下表所示: SSD1306显存与屏幕对应关

5、系表(2)飞思卡尔单片机的功能及特点:MC9S12XS128 是 16 位单片机,由 16 位中央处理单元(CPU12X)、128KB 程序、Flash(P-lash)、8KB RAM、8KB 数据 Flash(D-lash)组成片内存储器。主要功能模块包括:内部存储器, 内部 PLL 锁相环模块 ,2 个异步串口通讯 SCI ,1个串行外设接口 SPI MSCAN 模块 ,1 个 8 通道输入/输出比较定时器模块 TIM ,周期中断定时器模块 PIT ,16 通道 A/D 转换模块 ADC ,1 个 8 通道脉冲宽度调制模块 PWM ,输入/输出数字 I/O 口。本次设计中主要用到PORTA

6、,PORTB端口:PORTA:PORTA 为通用 I/O 口, 共 8 个,作为通用数字 I/O 口使用,未集成特殊功能.主要配置寄存器有:数据寄存器 PORTA、数据方向寄存 DDRA、上拉电阻控制寄存器PUCR 和驱动控制寄存器 RDR。a. 数据寄存器 PORTA通过写 1/0 使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值 。例:PORTA_PB0=1b. 数据方向寄存器 DDRADDRA 寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。MCU 复位后,DDRA 值为 0x00, 引脚默认为输入口。例:DDRA=0xFF /配置 PORTA

7、 口为输出 PORTB:PORTB 为通用数字 I/O 口, 共 8 个。其使用与 PORTA 基本一样。主要配置寄存器有:数据寄存器 PORTB、数据方向寄存 DDRB。上拉电阻控制寄存器 PUCR 和驱动控制寄存器 RDR 与 PORTA 、PORTB、PORTE、PORTK 共用。a.数据寄存器 PORTBb.数据方向寄存器 DDRB四、原理图: 器件说明:OLED液晶显示器(8管脚), 4个1k电阻,4个按键 ,飞思卡尔芯片(64管脚) 管脚连接:GNDGNDFMQAN07VCCVCCKEYMOSI0D0PB4PA1PA1D1PB3PA2PA2RSTPB1PA3PA3DCPB2PA4P

8、A4五、流程图 复位SSD1306驱动IC初始代码开启显示清0显存开始显示六、程序设计1. void pll_set(void):内部锁相环模块,单片机使用PLL功能能够获得更高的总线频率,这对于需要提高单片机运行速度的应用场合非常必要。2. void OLED_Init(void):初始化OLED液晶显示屏 3. void LCD_WrCmd(byte cmd):写指令函数4. void LCD_WrDat(byte data):写数据函数5.void LCD_PutPixel(byte x,byte y):填充一个点6. void LCD_P6x8Str(byte x,byte y,byt

9、e ch):显示字符串函数7. void main(void):主函数#include "main.h" /所有头文件已包含在在include.h里 unsigned char ch_data=" -By tangxuqing" /显示数组/* 延时函数*/void delayms(unsigned long ms) unsigned int ii,jj; if(ms<1) ms=1; for(ii=0;ii<ms;ii+) for(jj=0;jj<3338*2;jj+); /80MHz-1ms /* 时钟设置 * 通过锁相环(PLL)

10、设置系统时钟为56M */void pll_set(void) CLKSEL=0X00; PLLCTL_PLLON=1; SYNR =0xc0 | 0x06; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; /* 对I/O口的初定义 * */void init_IO(void) DDRA = 0xff; PORTA = 0xfb; /* 主函数 * */void main(void) /* put your

11、 own code here */ _DISABLE_COP(); /关看门狗 DisableInterrupts; /关中断 pll_set(); /锁相环初始化56MHz uart_init(); /串口初始化(中断,9600) OLED_Init(); /OLED初始化 sound_init(); /声音初始化 init_IO(); /通用I/O口初始化 LCD_P6x8Str(1,6,ch_data); /显示开机界面 kaiji_fmq();/开机声音 DDRA_DDRA1 = 0; DDRA_DDRA2 = 0; DDRA_DDRA3 = 0; DDRA_DDRA4 = 0; /S

12、ET PORTA I/O INPUT PORTAB_PA1 = 1; PORTAB_PA2 = 1; PORTAB_PA3 = 1; PORTAB_PA4 = 1;EnableInterrupts; for(;) /_FEED_COP(); /* feeds the dog */ /* for(i=0;i<32;i+) /扫描显示点 for(j=0;j<128;j+) LCD_PutPixel(j,i); delayms(1); */ / LCD_P6x8Str(0,0,ch_data); if(!PORTA_PA1) LCD_P6x8Str(1,2,"1");

13、 if(!PORTA_PA2) LCD_P6x8Str(1,3,"2"); if(!PORTA_PA3) LCD_P6x8Str(1,4,"3"); if(!PORTA_PA4) LCD_P6x8Str(1,5,"4"); /* loop forever */ /* please make sure that you never leave main */OLED.c函数(子程序函数) #define OLED_GLO#include "oled.h"#define XLevelL0x00#define XLeve

14、lH0x10#define XLevel(XLevelH&0x0F)*16+XLevelL)#define Max_Column128#define Max_Row 64#defineBrightness0xCF/*4线SPI使用说明:VBT 供内部DC-DC电压,3.34.3V,如果使用5V电压,为保险起见串一个100500欧的电阻VCC 供内部逻辑电压 1.86VGND 地BS0 低电平BS1 低电平BS2 低电平CS 片选管脚DC 命令数据选择管脚RES 模块复位管脚D0(SCLK) ,时钟脚,由MCU控制D1(MOSI) ,主输出从输入数据脚,由MCU控制D2 悬空D3-D7

15、, 低电平 , 也可悬空,但最好设为低电平RD 低电平 ,也可悬空,但最好设为低电平RW 低电平 ,也可悬空,但最好设为低电平RD 低电平 ,也可悬空,但最好设为低电平C7-D0(SCLK)时钟脚,由MCU控制C6-D1(MOSI)主输出从输入数据脚,由MCU控制C0-RST 模块复位管脚C4-DC 命令数据选择管脚*/* 引脚定义 *PB1 RSTPB2 DCPB3 D1PB4 D0*/ #define X_WIDTH 128#define Y_WIDTH 64/=const byte F6x86 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , / sp 0x0

16、0, 0x00, 0x00, 0x2f, 0x00, 0x00 , / ! 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 , / " 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 , / # 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 , / $ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 , / % 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 , / & 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 , / ' 0x0

17、0, 0x00, 0x1c, 0x22, 0x41, 0x00 , / ( 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 , / ) 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 , / * 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 , / + 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 , / , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 , / - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 , / . 0x00, 0x20, 0x10

18、, 0x08, 0x04, 0x02 , / / 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E , / 0 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 , / 1 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 , / 2 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 , / 3 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 , / 4 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 , / 5 0x00, 0x3C, 0x4A, 0x49, 0x49,

19、 0x30 , / 6 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 , / 7 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 , / 8 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E , / 9 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 , / : 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 , / ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 , / < 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 , /

20、= 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 , / > 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 , / ? 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E , / 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C , / A 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 , / B 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 , / C 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C , / D 0x00, 0x7F

21、, 0x49, 0x49, 0x49, 0x41 , / E 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 , / F 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A , / G 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F , / H 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 , / I 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 , / J 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 , / K 0x00, 0x7F, 0x40, 0x40,

22、 0x40, 0x40 , / L 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F , / M 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F , / N 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E , / O 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 , / P 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E , / Q 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 , / R 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 ,

23、 / S 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 , / T 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F , / U 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F , / V 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F , / W 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 , / X 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 , / Y 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 , / Z 0x00, 0x

24、00, 0x7F, 0x41, 0x41, 0x00 , / 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 , / 55 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 , / 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 , / 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 , / _ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 ,/ ' 0x00, 0x88, 0x48, 0x28, 0x18, 0xff , /a 0x00, 0xff, 0xa0, 0x90,

25、0x88, 0xe4 , /b 0x00, 0x02, 0x82, 0x7A, 0x2A, 0xEA , / c 0x2B, 0x7a, 0x82, 0x02, 0x02, 0x00 , / d 0x00, 0x7C, 0x54, 0x54, 0x54, 0x00 , / e 0xFE, 0x02, 0x22, 0x3E, 0x00, 0x00 , / f 0x00, 0xFF, 0x05, 0x75, 0x15, 0xFD , / g 0x15, 0x75, 0x07, 0x38, 0x80, 0xFF , / h 0x00, 0x06, 0x02, 0x23, 0xAA, 0xFB , /

26、 i 0x2A, 0x23, 0x02, 0x06, 0x00, 0x00 , / j 0xFE, 0x22, 0x3E, 0x00, 0x06, 0x12 , / k 0x7A, 0x1B, 0x7A, 0x52, 0x66, 0x00 , / l / 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 , / a / 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 , / b / 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 , / c / 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F , / d /

27、0x00, 0x38, 0x54, 0x54, 0x54, 0x18 , / e / 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 , / f / 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C , / g / 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 , / h / 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 , / i / 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 , / j / 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 , / k /

28、 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 , / l 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 , / m 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 , / n 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 , / o 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 , / p 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC , / q 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 , / r 0x00, 0x48,

29、0x54, 0x54, 0x54, 0x20 , / s 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 , / t 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C , / u 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C , / v 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C , / w 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 , / x 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C , / y 0x00, 0x44, 0x64, 0x54, 0

30、x4C, 0x44 , / z 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 / horiz lines;/*A13-D0(SCLK)时钟脚,由MCU控制 13A12-D1(MOSI)主输出从输入数据脚,由MCU控制 12A15-RST 模块复位管脚 15A14-DC 命令数据选择管脚 14*/ void OLED_Init(void) DDRB=DDRB|0x1e; DCHIGH();CLKHIGH();RESLOW(); LCD_DLY_ms(50); RESHIGH(); LCD_WrCmd(0xae);/-turn off oled panel LCD_WrCm

31、d(0x00);/-set low column address LCD_WrCmd(0x10);/-set high column address LCD_WrCmd(0x40);/-set start line address Set Mapping RAM Display Start Line (0x000x3F) LCD_WrCmd(0x81);/-set contrast control register LCD_WrCmd(0xcf); / Set SEG Output Current Brightness LCD_WrCmd(0xa1);/-Set SEG/Column Mapp

32、ing 0xa0左右反置 0xa1正常 LCD_WrCmd(0xc8);/Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 / LCD_WrCmd(0xa0);/-Set SEG/Column Mapping 0xa0左右反置 0xa1正常 / LCD_WrCmd(0xc0);/Set COM/Row Scan Direction 0xc0上下反置 0xc8正常 LCD_WrCmd(0xa6);/-set normal display LCD_WrCmd(0xa8);/-set multiplex ratio(1 to 64) LCD_WrCmd(0x3f)

33、;/-1/64 duty LCD_WrCmd(0xd3);/-set display offsetShift Mapping RAM Counter (0x000x3F) LCD_WrCmd(0x00);/-not offset LCD_WrCmd(0xd5);/-set display clock divide ratio/oscillator frequency LCD_WrCmd(0x80);/-set divide ratio, Set Clock as 100 Frames/Sec LCD_WrCmd(0xd9);/-set pre-charge period LCD_WrCmd(0

34、xf1);/Set Pre-Charge as 15 Clocks & Discharge as 1 Clock LCD_WrCmd(0xda);/-set com pins hardware configuration LCD_WrCmd(0x12); LCD_WrCmd(0xdb);/-set vcomh LCD_WrCmd(0x40);/Set VCOM Deselect Level LCD_WrCmd(0x20);/-Set Page Addressing Mode (0x00/0x01/0x02) LCD_WrCmd(0x02);/ LCD_WrCmd(0x8d);/-set

35、 Charge Pump enable/disable LCD_WrCmd(0x14);/-set(0x10) disable LCD_WrCmd(0xa4);/ Disable Entire Display On (0xa4/0xa5) LCD_WrCmd(0xa6);/ Disable Inverse Display On (0xa6/a7) LCD_WrCmd(0xaf);/-turn on oled panel OLCD_Fill(0); /初始清屏 LCD_Set_Pos(0,0);/DZXH_LOGO();/*A26-D0(SCLK)时钟脚,由MCU控制 13A27-D1(MOSI

36、)主输出从输入数据脚,由MCU控制 12A24-RST 模块复位管脚 15A25-DC 命令数据选择管脚 14*/ void LCD_WrDat(byte data)byte i=8;/LCD_CS=0;DCHIGH();/DC=1 ;/ NOP(); CLKLOW();/D0=0 ;/NOP(); while(i-) if(data&0x80)MISOHIGH();/D1=1 elseMISOLOW();/D1=0 CLKHIGH();/D0=1 ;/NOP();/asm("nop"); CLKLOW();/D0=0 data<<=1; /LCD_CS

37、=1;void Dis_Num(byte y, byte x, unsigned int num,byte N)/ byte line; byte j=0; byte n6=0; x=x*8; n0=(num/10000)%10; n1=(num/1000)%10; n2=(num/100)%10; n3=(num/10)%10; n4=num%10;/ n6='0' for(j=0;j<5;j+)nj=nj+16+32; LCD_P6x8Str(x,y,&n5-N);/从ACSII码表中读取字节,然后写入液晶/*A26-D0(SCLK)时钟脚,由MCU控制 E4

38、A27-D1(MOSI)主输出从输入数据脚,由MCU控制 E3A24-RST 模块复位管脚 E6A25-DC 命令数据选择管脚 E5 */void LCD_WrCmd(byte cmd)byte i=8;/LCD_CS=0;DCLOW(); CLKLOW(); /asm("nop"); while(i-) if(cmd&0x80)MISOHIGH(); elseMISOLOW(); CLKHIGH(); ;/NOP();/asm("nop"); CLKLOW(); cmd<<=1; /LCD_CS=1;void LCD_Set_Pos

39、(byte x, byte y) LCD_WrCmd(0xb0+y); LCD_WrCmd(x&0xf0)>>4)|0x10); LCD_WrCmd(x&0x0f);/|0x01);原来的版本图像整体右移一列,导致低128列移到第一列显示,不知道这么做是为什么,暂时先改回来void OLCD_Fill(byte bmp_data)byte y,x;for(y=0;y<8;y+)LCD_WrCmd(0xb0+y);LCD_WrCmd(0x01);LCD_WrCmd(0x10);for(x=0;x<X_WIDTH;x+)LCD_WrDat(bmp_data)

40、;void LCD_CLS(void)byte y,x;for(y=0;y<8;y+)LCD_WrCmd(0xb0+y);LCD_WrCmd(0x01);LCD_WrCmd(0x10);for(x=0;x<X_WIDTH;x+)LCD_WrDat(0);void LCD_DLY_ms(uint16 ms) word a; while(ms) a=2350; while(a-); ms-; return;/=/函数名: void LCD_PutPixel(byte x,byte y)/功能描述:绘制一个点(x,y)/参数:真实坐标值(x,y),x的范围0127,y的范围064/返回:

41、无/=void LCD_PutPixel(byte x,byte y)byte data1; /data1当前点的数据 LCD_Set_Pos(x,y);data1 = 0x01<<(y%8); LCD_WrCmd(0xb0+(y>>3);LCD_WrCmd(x&0xf0)>>4)|0x10);LCD_WrCmd(x&0x0f)|0x00);LCD_WrDat(data1); /=/函数名: void LCD_Rectangle(byte x1,byte y1,/ byte x2,byte y2,byte color,byte gif)/功能

42、描述:绘制一个实心矩形/参数:左上角坐标(x1,y1),右下角坐标(x2,y2)/ 其中x1、x2的范围0127,y1,y2的范围063,即真实坐标值/返回:无/=void LCD_Rectangle(byte x1,byte y1,byte x2,byte y2,byte gif)byte n;LCD_Set_Pos(x1,y1>>3);for(n=x1;n<=x2;n+)LCD_WrDat(0x01<<(y1%8); if(gif = 1) LCD_DLY_ms(50);LCD_Set_Pos(x1,y2>>3); for(n=x1;n<=x

43、2;n+)LCD_WrDat(0x01<<(y2%8); if(gif = 1) LCD_DLY_ms(5);/=/函数名:LCD_P6x8Str(byte x,byte y,byte *p)/功能描述:写入一组标准ASCII字符串/参数:显示的位置(x,y),y为页范围07,要显示的字符串/返回:无/=void LCD_P6x8Str(byte x,byte y,byte ch) byte c=0,i=0,j=0; while (chj!='0') c =chj-32; if(x>126)x=0;y+; LCD_Set_Pos(x,y); for(i=0;i

44、<6;i+) LCD_WrDat(F6x8ci); x+=6; j+; /=/函数名: void Draw_BMP(byte x,byte y)/功能描述:显示BMP图片128×64/参数:起始点坐标(x,y),x的范围0127,y为页的范围07/返回:无/=void Draw_BMP(byte x0,byte y0,byte x1,byte y1,byte *bmp) / word ii=0; byte x,y; if(y1%8=0) y=y1/8; else y=y1/8+1; for(y=y0;y<=y1;y+) LCD_Set_Pos(x0,y); for(x=x

45、0;x<=x1;x+) LCD_WrDat(*bmp+); void Draw_BMP2(byte x0,byte y0,byte x1,byte y1,byte *bmp) / word ii=0; byte x,y; if(y1%8=0) y=y1/8; else y=y1/8+1; for(y=y0;y<=y1;y+=2) LCD_Set_Pos(x0,y); for(x=x0;x<=x1;x+) if(*bmp+=3)>0x80) LCD_WrDat(0x01); elseLCD_WrDat(0x00); void LED_PrintImage(byte *pucTable, uint16 usRowNum, uint16 usColumnNum) byte ucData; word

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论