1、硬复位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大小,S
2、SD1306将这些显存分为了8页,其对应关系如下表所示:SSD1306显存与屏幕对应关系表(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 通道脉冲
3、宽度调制模块 PWM ,输入/输出数字 I/O 口。本次设计中主要用到PORTA,PORTB端口:PORTA:PORTA 为通用 I/O 口, 共 8 个,作为通用数字 I/O 口使用,未集成特殊功能.主要配置寄存器有:数据寄存器 PORTA、数据方向寄存 DDRA、上拉电阻控制寄存器PUCR 和驱动控制寄存器 RDR。a. 数据寄存器 PORTA通过写 1/0 使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值。例:PORTA_PB0=1b. 数据方向寄存器 DDRADDRA 寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。MCU 复位后,DDRA
4、值为 0x00, 引脚默认为输入口。DDRA=0xFF /配置 PORTA 口为输出PORTB:PORTB 为通用数字 I/O 口, 共 8 个。其使用与 PORTA 基本一样。主要配置寄存器有:数据寄存器 PORTB、数据方向寄存 DDRB。上拉电阻控制寄存器 PUCR 和驱动控制寄存器 RDR 与 PORTA 、PORTB、PORTE、PORTK 共用。a.数据寄存器 PORTBb.数据方向寄存器 DDRB四、原理图:器件说明:OLED液晶显示器(8管脚), 4个1k电阻,4个按键,飞思卡尔芯片(64管脚)管脚连接:GNDFMQAN07VCCKEYMOSI0D0PB4PA1D1PB3PA2
5、RSTPB1PA3DCPB2PA4五、流程图六、程序设计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,byte ch):显示字符串函数7.void m
6、ain(void):主函数#include main.h /所有头文件已包含在在include.h里 unsigned char ch_data= -By tangxuqing; /显示数组/* 延时函数*/void delayms(unsigned long ms) unsigned int ii,jj; if(ms1) ms=1; for(ii=0;iims;ii+) for(jj=0;jj3338*2;jj+); /80MHz-1ms * 时钟设置* 通过锁相环(PLL)设置系统时钟为56M void pll_set(void) CLKSEL=0X00; PLLCTL_PLLON=1;
7、SYNR =0xc0 | 0x06; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1;* 对I/O口的初定义* void init_IO(void) DDRA = 0xff; PORTA = 0xfb;* 主函数void main(void) /* put your own code here */ _DISABLE_COP(); /关看门狗 DisableInterrupts; /关中断 pll_set(); /锁相环初始化56MHz uart_init(); /串口初始
8、化(中断,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; /SET PORTA I/O INPUT PORTAB_PA1 = 1; PORTAB_PA2 = 1; PORTAB_PA3 = 1; PORTAB_PA4 = 1; EnableInterrupts; for(;
9、) /_FEED_COP(); /* feeds the dog */* for(i=0;i32;i+) /扫描显示点 for(j=0;j128;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,2PORTA_PA3) LCD_P6x8Str(1,4,3PORTA_PA4) LCD_P6x8Str(1,5,4 /* loop forever */ /* please make sure tha
10、t you never leave main */OLED.c函数(子程序函数) #define OLED_GLOoled.h#define XLevelL 0x00#define XLevelH 0x10#define XLevel (XLevelH&0x0F)*16+XLevelL)#define Max_Column 128#define Max_Row 64#define Brightness 0xCF4线SPI使用说明:VBT 供内部DC-DC电压,3.34.3V,如果使用5V电压,为保险起见串一个100500欧的电阻VCC 供内部逻辑电压 1.86VGND 地BS0 低电平BS1
11、低电平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 命令数据选择管脚*/* 引脚定义 * PB1 RST PB2 DC PB3 D1 PB4 D0*/ #define X_WIDTH 128#define Y_WID
12、TH 64/=const byte F6x86 = 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,
13、 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 , / - 0x0
14、0, 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
15、, 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,
16、 0x00 , / 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,
17、 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,
18、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, 0
19、x01 , / 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,
20、 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, 0x
21、2A, 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 , /
22、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 /
23、 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