基于OLED液晶显示器的显示系统Word文件下载.docx

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

基于OLED液晶显示器的显示系统Word文件下载.docx

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

基于OLED液晶显示器的显示系统Word文件下载.docx

硬复位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

FMQ

AN07

VCC

KEY

MOSI0

D0

PB4

PA1

D1

PB3

PA2

RST

PB1

PA3

DC

PB2

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<

ms;

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);

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"

);

PORTA_PA2){

LCD_P6x8Str(1,3,"

2"

PORTA_PA3){

LCD_P6x8Str(1,4,"

3"

PORTA_PA4){

LCD_P6x8Str(1,5,"

4"

}/*loopforever*/

/*pleasemakesurethatyouneverleavemain*/

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

#defineOLED_GLO

oled.h"

#defineXLevelL0x00

#defineXLevelH0x10

#defineXLevel((XLevelH&

0x0F)*16+XLevelL)

#defineMax_Column128

#defineMax_Row64

#defineBrightness0xCF

4线SPI使用说明:

VBT供内部DC-DC电压,3.3~4.3V,如果使用5V电压,为保险起见串一个100~500欧的电阻

VCC供内部逻辑电压1.8~6V

GND地

BS0低电平

BS1低电平

BS2低电平

CS片选管脚

DC命令数据选择管脚

RES模块复位管脚

D0(SCLK),时钟脚,由MCU控制

D1(MOSI),主输出从输入数据脚,由MCU控制

D2悬空

D3-D7,低电平,也可悬空,但最好设为低电平

RD低电平,也可悬空,但最好设为低电平

RW低电平,也可悬空,但最好设为低电平

C7---D0(SCLK)时钟脚,由MCU控制

C6---D1(MOSI)主输出从输入数据脚,由MCU控制

C0---RST模块复位管脚

C4---DC命令数据选择管脚*/

/****************************引脚定义***********************************

PB1RST

PB2DC

PB3D1

PB4D0

*************************************************************************/

#defineX_WIDTH128

#defineY_WIDTH64

//======================================

constbyteF6x8[][6]=

{

{0x00,0x00,0x00,0x00,0x00,0x00},//sp

{0x00,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},//'

{0x00,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,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,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},//=

{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,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,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},//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,0x00,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,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},//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

//{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

//{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

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

当前位置:首页 > 医药卫生 > 基础医学

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

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