基于OLED液晶显示器的显示系统.docx

上传人:b****2 文档编号:1174236 上传时间:2022-10-18 格式:DOCX 页数:27 大小:1.62MB
下载 相关 举报
基于OLED液晶显示器的显示系统.docx_第1页
第1页 / 共27页
基于OLED液晶显示器的显示系统.docx_第2页
第2页 / 共27页
基于OLED液晶显示器的显示系统.docx_第3页
第3页 / 共27页
基于OLED液晶显示器的显示系统.docx_第4页
第4页 / 共27页
基于OLED液晶显示器的显示系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于OLED液晶显示器的显示系统.docx

《基于OLED液晶显示器的显示系统.docx》由会员分享,可在线阅读,更多相关《基于OLED液晶显示器的显示系统.docx(27页珍藏版)》请在冰豆网上搜索。

基于OLED液晶显示器的显示系统.docx

基于OLED液晶显示器的显示系统

 

基于OLED液晶显示器的显示系统

 

姓名:

唐旭晴

学号:

110400609

班级:

11电子2班

一、实习目的

(1)了解飞思卡尔单片机的基本原理,掌握其基本的工作流程。

(2)了解OLED液晶显示屏的基本原理及用法。

(3)能够熟练使用CodeWarrior软件编写C语言程序,使用BDM仿真器下载程序。

(4)能够熟练焊接电路板。

二、实验设备与器件

CodeWarrior软件,BDM仿真器,万用电路板,飞思卡尔单片机,OLED液晶显示器

三、实验内容

内容:

利用飞思卡尔单片机制作基于OLED液晶显示器的显示系统

要求:

用四个按键控制,按下第一个按键显示“北”,按下第二个按键显示“京”,按下第三个按键显示“印刷”,按下第四个按键显示“学院”。

(1)OLED,即有机发光二极管(OrganicLight-EmittingDiode),又称为有机电激光显示(OrganicElectroluminesenceDisplay,OELD)。

OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

LCD都需要背光,而OLED不需要,因为它是自发光的。

这样同样的显示,OLED效果要来得好一些。

以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。

我们使用的是ALINETEK的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线串行模式下,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显存与屏幕对应关系表

(2)飞思卡尔单片机的功能及特点:

MC9S12XS128是16位单片机,由16位中央处理单元(CPU12X)、128KB程序、Flash(P-lash)、8KBRAM、8KB数据Flash(D-lash)组成片内存储器。

主要功能模块包括:

内部存储器,内部PLL锁相环模块,2个异步串口通讯SCI,1个串行外设接口SPIMSCAN模块,1个8通道输入/输出比较定时器模块TIM,周期中断定时器模块PIT,16通道A/D转换模块ADC,1个8通道脉冲宽度调制模块PWM,输入/输出数字I/O口。

本次设计中主要用到PORTA,PORTB端口:

PORTA:

PORTA为通用I/O口,共8个,作为通用数字I/O口使用,未集成特殊功能.主要配置寄存器有:

数据寄存器PORTA、数据方向寄存DDRA、上拉电阻控制寄存器PUCR和驱动控制寄存器RDR。

a.数据寄存器PORTA

通过写1/0使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值。

例:

PORTA_PB0=1

b.数据方向寄存器DDRA

DDRA寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。

MCU复位后,DDRA值为0x00,引脚默认为输入口。

例:

DDRA=0xFF//配置PORTA口为输出

PORTB:

PORTB为通用数字I/O口,共8个。

其使用与PORTA基本一样。

主要配置寄存器有:

数据寄存器PORTB、数据方向寄存DDRB。

上拉电阻控制寄存器PUCR和驱动控制寄存器RDR与PORTA、PORTB、PORTE、PORTK共用。

a.数据寄存器PORTB

b.数据方向寄存器DDRB

四、原理图:

器件说明:

OLED液晶显示器(8管脚),4个1k电阻,4个按键,飞思卡尔芯片(64管脚)

 

管脚连接:

GND

GND

FMQ

AN07

VCC

VCC

KEY

MOSI0

D0

PB4

PA1

PA1

D1

PB3

PA2

PA2

RST

PB1

PA3

PA3

DC

PB2

PA4

PA4

五、流程图

 

六、程序设计

1.voidpll_set(void):

内部锁相环模块,单片机使用PLL功能能够获得更高的总线频率,这对于需要提高单片机运行速度的应用场合非常必要。

2.voidOLED_Init(void):

初始化OLED液晶显示屏

3.voidLCD_WrCmd(bytecmd):

写指令函数

4.voidLCD_WrDat(bytedata):

写数据函数

5.voidLCD_PutPixel(bytex,bytey):

填充一个点

6.voidLCD_P6x8Str(bytex,bytey,bytech[]):

显示字符串函数

7.voidmain(void):

主函数

#include"main.h"//所有头文件已包含在在include.h里

unsignedcharch_data[]="---Bytangxuqing";//显示数组

/*

*******************************************************************

*

*延时函数

*

********************************************************************

*/

voiddelayms(unsignedlongms)

{

unsignedintii,jj;

if(ms<1)

ms=1;

for(ii=0;ii

for(jj=0;jj<3338*2;jj++);//80MHz--1ms

}

/*

*******************************************************************

*

*时钟设置

*通过锁相环(PLL)设置系统时钟为56M

*

********************************************************************

*/

voidpll_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口的初定义

*

*

********************************************************************

*/

voidinit_IO(void){

DDRA=0xff;

PORTA=0xfb;

}

/*

*******************************************************************

*

*主函数

*

*

********************************************************************

*/

voidmain(void){

/*putyourowncodehere*/

_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;//SETPORTAI/OINPUT

PORTAB_PA1=1;

PORTAB_PA2=1;

PORTAB_PA3=1;

PORTAB_PA4=1;

EnableInterrupts;

for(;;){

//_FEED_COP();/*feedsthedog*/

/*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");

}

if(!

PORTA_PA2){

LCD_P6x8Str(1,3,"2");

}

if(!

PORTA_PA3){

LCD_P6x8Str(1,4,"3");

}

if(!

PORTA_PA4){

LCD_P6x8Str(1,5,"4");

}

}/*loopforever*/

/*pleasemakesurethatyouneverleavemain*/

}

OLED.c函数(子程序函数)

#defineOLED_GLO

#include"oled.h"

#defineXLevelL0x00

#defineXLevelH0x10

#defineXLevel((XLevelH&0x0F)*16+XLevelL)

#defineMax_Column128

#defineMax_Row64

#defineBrightness0xCF

/*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1