本文最后修改时间:2017年11月13日 15:00
一、本节简介
本节以simple_peripheral工程为例,介绍如何使用LCD显示。
二、实验平台
1)CC2640R2F平台
①协议栈版本:CC2640R2 SDK v1.40.00.45
②编译软件:CCS7.3.0.00019
③硬件平台:香瓜CC2640R2F开发板
④仿真器:香瓜XDS100V3下载器
三、版权声明
1)作者:甜甜的大香瓜
2)声明:喝水不忘挖井人,转载请注明出处。
3)纠错/业务合作:[email protected]
4)香瓜BLE之CC2640R2F群:557278427
5)本文出处:原创连载资料《简单粗暴学蓝牙5》
6)完整开源资料下载地址(电脑端打开):
https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
7)香瓜CC2640R2F开发板购买链接:
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4023-16963296339.8.21bfc58419sWKt&id=558653143169
8)香瓜XDS100V3下载器购买链接:
https://item.taobao.com/item.htm?spm=a230r.1.14.1.1d150040zvJBco&id=558356989143&ns=1&abbucket=6#detail
四、实验前提
1、在进行本文步骤前,请先阅读以下章节:
1)《简单粗暴学蓝牙5》的“第一章至第四章”章节。
2、在进行本文步骤前,请先实现以下章节:
1)《简单粗暴学蓝牙5》的“第三章 软件的安装及使用”章节。
2) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之LED》:http://blog.csdn.net/feilusia/article/details/78087346
3) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之自定义按键》:http://blog.csdn.net/feilusia/article/details/78239447
4) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之自定义周期事件》:http://blog.csdn.net/feilusia/article/details/78245788
5) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之有源蜂鸣器》:http://blog.csdn.net/feilusia/article/details/78144258
五、基础知识
1、本文使用的是什么LCD?
答:
使用的是opengua设计的OLED。
1)图片
2)购买地址
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-16963296341.2.5c196d0ci31tGM&id=558148641485
3)基本参数
2、本文控制LCD的流程是如何的?
答:
1)硬件连接
OLED引脚 | 香瓜CC2640R2F开发板引脚 |
GND | GND |
VCC | VCC |
D0 | IOID_9 |
D1 | IOID_10 |
RST | IOID_4 |
DC | IOID_26 |
3)软件控制流程
①IO初始化。
②根据时序初始化LCD。
③显示。
六、硬件原理
1、开发板对应位置
需将拨码开关的左8、左9、左11、左12,共4个按键上拨。
七、实验步骤
1、编写并添加自定义的LCD驱动
1)写一个LCD驱动GUA_LCD.c(存放在“……\simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\GUA”路径下)
//**********************************************************************
//name: GUA_LCD.c
//introduce: 香瓜的LCD驱动
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
#include
#include
#include
#include
#include
#include
#include "Board.h"
#include "util.h"
#include "GUA_LCD.h"
/*********************宏定义************************/
#define GUA_LCD_D0 IOID_9 //D0(SCLK)
#define GUA_LCD_D1 IOID_10 //D1(MOSI)
#define GUA_LCD_RST IOID_4 //复位
#define GUA_LCD_DC IOID_26 //A0 H/L 命令数据选通端,H:数据,L:命令
#define GUA_LCD_X_WIDTH 128
#define GUA_LCD_Y_WIDTH 64
#define GUA_LCD_MAX_BUF 25
#define GUA_LCD_HAL_MAX_CHARS 16
#define GUA_LCD_SCL_1() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D0, 1)
#define GUA_LCD_SCL_0() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D0, 0)
#define GUA_LCD_SDA_1() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D1, 1)
#define GUA_LCD_SDA_0() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D1, 0)
#define GUA_LCD_RST_1() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_RST, 1)
#define GUA_LCD_RST_0() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_RST, 0)
#define GUA_LCD_DC_1() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_DC, 1)
#define GUA_LCD_DC_0() PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_DC, 0)
/*********************内部变量************************/
static PIN_State GUA_LcdPins;
static PIN_Handle GUA_HlcdPins = NULL;
//IO配置
static PIN_Config GUA_LcdPinsCfg[] =
{
GUA_LCD_D0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
GUA_LCD_D1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
GUA_LCD_RST | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
GUA_LCD_DC | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
/*********************内部函数************************/
/*
//16*16的点阵字体取模方式:共阴——列行式——逆向输出
static const GUA_U8 GUA_F16x16[] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//8*16的点阵
static const GUA_U8 GUA_F8X16[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,// ! 1
0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// " 2
0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,// # 3
0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,// $ 4
0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,// % 5
0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,// & 6
0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ' 7
0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,// ( 8
0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,// ) 9
0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,// * 10
0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,// + 11
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,// , 12
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,// - 13
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,// . 14
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,// / 15
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,// 0 16
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// 1 17
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,// 2 18
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,// 3 19
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,// 4 20
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,// 5 21
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,// 6 22
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,// 7 23
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,// 8 24
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,// 9 25
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,// : 26
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,// ; 27
0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,// < 28
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,// = 29
0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,// > 30
0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,// ? 31
0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,// @ 32
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,// A 33
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,// B 34
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,// C 35
0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,// D 36
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,// E 37
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,// F 38
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,// G 39
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,// H 40
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// I 41
0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,// J 42
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,// K 43
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,// L 44
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,// M 45
0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,// N 46
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,// O 47
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,// P 48
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,// Q 49
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,// R 50
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,// S 51
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// T 52
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// U 53
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,// V 54
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,// W 55
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,// X 56
0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// Y 57
0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,// Z 58
0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,// [ 59
0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,// \ 60
0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,// ] 61
0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ^ 62
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,// _ 63
0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ` 64
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,// a 65
0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,// b 66
0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,// c 67
0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,// d 68
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,// e 69
0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// f 70
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,// g 71
0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,// h 72
0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// i 73
0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,// j 74
0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,// k 75
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// l 76
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,// m 77
0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,// n 78
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// o 79
0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,// p 80
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,// q 81
0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,// r 82
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,// s 83
0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,// t 84
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,// u 85
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,// v 86
0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,// w 87
0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,// x 88
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,// y 89
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,// z 90
0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,// { 91
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,// | 92
0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,// } 93
0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ~ 94
};
*/
//6*8的点阵
static const GUA_U8 GUA_F6x8[92][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, 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,// p
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x00, 0x48, 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, 0x4C, 0x44,// z
0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};
//字转数组
static void GUA_LCD_itoa(GUA_U32 uiNum, GUA_U8 *buf, GUA_U8 uiRadix)
{
GUA_U8 c, i;
GUA_U8 *p, rst[32];
p = rst;
for (i = 0; i < 32; i++, p++)
{
/* Isolate a digit */
c = uiNum % uiRadix;
/* Convert to Ascii */
*p = c + ((c < 10) ? '0' : '7');
uiNum /= uiRadix;
if (!uiNum)
break;
}
for (c = 0; c <= i; c++)
{
/* Reverse character order */
*buf++ = *p--;
}
*buf = '\0';
}
//字转数组
static GUA_U8 * GUA_LCD_ltoa(GUA_U32 l, GUA_U8 *buf, GUA_U8 radix)
{
#if defined (__TI_COMPILER_VERSION)
return ( (GUA_U8*)ltoa( l, (GUA_C *)buf ) );
#elif defined( __GNUC__ )
return ( (GUA_C*)ltoa( l, buf, radix ) );
#else
GUA_U8 tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
GUA_U16 num1, num2, num3;
GUA_U8 i;
buf[0] = '\0';
if ( radix == 10 )
{
num1 = l % 10000;
num2 = (l / 10000) % 10000;
num3 = (GUA_U16)(l / 100000000);
if (num3)
GUA_LCD_itoa(num3, tmp3, 10);
if (num2)
GUA_LCD_itoa(num2, tmp2, 10);
if (num1)
GUA_LCD_itoa(num1, tmp1, 10);
if (num3)
{
strcpy((GUA_C*)buf, (GUA_C const*)tmp3);
for (i = 0; i < 4 - strlen((GUA_C const*)tmp2); i++)
strcat((GUA_C*)buf, "0");
}
strcat((GUA_C*)buf, (GUA_C const*)tmp2);
if (num3 || num2)
{
for (i = 0; i < 4 - strlen((GUA_C const*)tmp1); i++)
strcat((GUA_C*)buf, "0");
}
strcat((GUA_C*)buf, (GUA_C const*)tmp1);
if (!num3 && !num2 && !num1)
strcpy((GUA_C*)buf, "0");
}
else if ( radix == 16 )
{
num1 = l & 0x0000FFFF;
num2 = l >> 16;
if (num2)
GUA_LCD_itoa(num2, tmp2, 16);
if (num1)
GUA_LCD_itoa(num1, tmp1, 16);
if (num2)
{
strcpy((GUA_C*)buf,(GUA_C const*)tmp2);
for (i = 0; i < 4 - strlen((GUA_C const*)tmp1); i++)
strcat((GUA_C*)buf, "0");
}
strcat((GUA_C*)buf, (GUA_C const*)tmp1);
if (!num2 && !num1)
strcpy((GUA_C*)buf, "0");
}
else
return NULL;
return buf;
#endif
}
//LCD延时1ms
static void GUA_LCD_DLY_Ms(GUA_U32 ms)
{
GUA_U32 a;
while(ms)
{
a=1800;
while(a--);
ms--;
}
return;
}
//LCD写数据
static void GUA_LCD_WrDat(GUA_U8 dat)
{
GUA_U8 i=8, temp=0;
GUA_LCD_DC_1();
for(i=0;i<8;i++)
{
GUA_LCD_SCL_0();
temp = dat&0x80;
if (temp == 0)
{
GUA_LCD_SDA_0();
}
else
{
GUA_LCD_SDA_1();
}
GUA_LCD_SCL_1();
dat<<=1;
}
}
//LCD写命令
static void GUA_LCD_WrCmd(GUA_U8 cmd)
{
GUA_U8 i=8, temp=0;
GUA_LCD_DC_0();
for(i=0;i<8;i++)
{
GUA_LCD_SCL_0();
temp = cmd&0x80;
if (temp == 0)
{
GUA_LCD_SDA_0();
}
else
{
GUA_LCD_SDA_1();
}
GUA_LCD_SCL_1();
cmd<<=1;;
}
}
//LCD设置坐标
static void GUA_LCD_Set_Pos(GUA_U8 x, GUA_U8 y)
{
GUA_LCD_WrCmd(0xb0+y);
GUA_LCD_WrCmd(((x&0xf0)>>4)|0x10);
GUA_LCD_WrCmd((x&0x0f)|0x01);
}
//LCD全屏
static void GUA_LCD_Fill(GUA_U8 bmp_dat)
{
GUA_U8 y,x;
for(y=0;y<8;y++)
{
GUA_LCD_WrCmd(0xb0+y);
GUA_LCD_WrCmd(0x01);
GUA_LCD_WrCmd(0x10);
for(x=0;x 126)
{
x=0;
y++;
}
GUA_LCD_Set_Pos(x,y);
if(c > 0 && c < 92)
{
for(i=0;i<6;i++)
GUA_LCD_WrDat(GUA_F6x8[c][i]);
}
x+=6;
j++;
}
}
/*
//显示8*16一组标准ASCII字符串,显示的坐标(x,y),y为页范围0~7
static void GUA_LCD_P8x16Str(GUA_U8 x, GUA_U8 y,GUA_U8 ch[])
{
GUA_U8 c=0,i=0,j=0;
while (ch[j]!='\0')
{
c =ch[j]-32;
if(x>120)
{
x=0;
y++;
}
GUA_LCD_Set_Pos(x,y);
for(i=0;i<8;i++)
GUA_LCD_WrDat(GUA_F8X16[c*16+i]);
GUA_LCD_Set_Pos(x,y+1);
for(i=0;i<8;i++)
GUA_LCD_WrDat(GUA_F8X16[c*16+i+8]);
x+=8;
j++;
}
}
//显示16*16点阵 ,显示的坐标(x,y),y为页范围0~7
static void GUA_LCD_P16x16Ch(GUA_U8 x, GUA_U8 y, GUA_U8 N)
{
GUA_U8 wm = 0;
GUA_U32 adder = 32*N;
GUA_LCD_Set_Pos(x , y);
for(wm = 0;wm < 16;wm++)
{
GUA_LCD_WrDat(GUA_F16x16[adder]);
adder += 1;
}
GUA_LCD_Set_Pos(x,y + 1);
for(wm = 0;wm < 16;wm++)
{
GUA_LCD_WrDat(GUA_F16x16[adder]);
adder += 1;
}
}
*/
//**********************************************************************
//name: GUA_LCD_Init
//introduce: 香瓜LCD驱动初始化
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
void GUA_LCD_Init(void)
{
//IO初始化
if(GUA_HlcdPins == NULL)
{
GUA_HlcdPins = PIN_open(&GUA_LcdPins, GUA_LcdPinsCfg);
}
//初始化
GUA_LCD_SCL_1();
GUA_LCD_RST_0();
GUA_LCD_DLY_Ms(250);
GUA_LCD_RST_1();
GUA_LCD_WrCmd(0xae);//--turn off oled panel
GUA_LCD_WrCmd(0x00);//---set low column address
GUA_LCD_WrCmd(0x10);//---set high column address
GUA_LCD_WrCmd(0x40);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F)
GUA_LCD_WrCmd(0x81);//--set contrast control register
GUA_LCD_WrCmd(0xcf);// Set SEG Output Current Brightness
GUA_LCD_WrCmd(0xa1);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常
GUA_LCD_WrCmd(0xc8);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常
GUA_LCD_WrCmd(0xa6);//--set normal display
GUA_LCD_WrCmd(0xa8);//--set multiplex ratio(1 to 64)
GUA_LCD_WrCmd(0x3f);//--1/64 duty
GUA_LCD_WrCmd(0xd3);//-set display offset Shift Mapping RAM Counter (0x00~0x3F)
GUA_LCD_WrCmd(0x00);//-not offset
GUA_LCD_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency
GUA_LCD_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec
GUA_LCD_WrCmd(0xd9);//--set pre-charge period
GUA_LCD_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
GUA_LCD_WrCmd(0xda);//--set com pins hardware configuration
GUA_LCD_WrCmd(0x12);
GUA_LCD_WrCmd(0xdb);//--set vcomh
GUA_LCD_WrCmd(0x40);//Set VCOM Deselect Level
GUA_LCD_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)
GUA_LCD_WrCmd(0x02);//
GUA_LCD_WrCmd(0x8d);//--set Charge Pump enable/disable
GUA_LCD_WrCmd(0x14);//--set(0x10) disable
GUA_LCD_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)
GUA_LCD_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7)
GUA_LCD_WrCmd(0xaf);//--turn on oled panel
GUA_LCD_Fill(0x00); //初始成黑屏
//设置偏移值
GUA_LCD_Set_Pos(0,0);
}
//**********************************************************************
//name: GUA_LCD_WriteValue
//introduce: 香瓜LCD的写数据的函数
//parameter: nGUA_Value:数据
// nGUA_Format:10(10进制)或16(16进制)
// nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
void GUA_LCD_WriteValue(GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line)
{
GUA_U8 naGUA_Buf[GUA_LCD_MAX_BUF];
GUA_LCD_ltoa(nGUA_Value, &naGUA_Buf[0], nGUA_Format);
GUA_LCD_WriteString((GUA_C*)naGUA_Buf, nGUA_Line);
}
//**********************************************************************
//name: GUA_LCD_WriteString
//introduce: 香瓜LCD的写字符串的函数
//parameter: pGUA_Str:字符串
// nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
void GUA_LCD_WriteString(GUA_C *pGUA_Str, GUA_U8 nGUA_Line)
{
GUA_LCD_FillLine(nGUA_Line, 0);
GUA_LCD_P6x8Str(0, nGUA_Line, (GUA_U8 *)pGUA_Str);
}
//**********************************************************************
//name: GUA_LCD_WriteStringValue
//introduce: 香瓜LCD的写字符串带数据的函数
//parameter: pGUA_Str:字符串
// nGUA_Value:数据
// nGUA_Format:10(10进制)或16(16进制)
// nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
void GUA_LCD_WriteStringValue(GUA_C *pGUA_Str, GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line)
{
GUA_U8 nGUA_Len;
GUA_U8 naGUA_Buf[GUA_LCD_MAX_BUF] = {0};
nGUA_Len = (GUA_U8)strlen( (GUA_C*)pGUA_Str);
memcpy(naGUA_Buf, pGUA_Str, nGUA_Len);
naGUA_Buf[nGUA_Len] = ' ';
GUA_LCD_ltoa(nGUA_Value, &naGUA_Buf[nGUA_Len + 1], nGUA_Format);
GUA_LCD_WriteString((GUA_C*)naGUA_Buf, nGUA_Line);
}
//**********************************************************************
//name: GUA_LCD_ClearLine
//introduce: 香瓜LCD的清除行的函数
//parameter: nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
void GUA_LCD_ClearLine(GUA_U8 nGUA_Line)
{
GUA_LCD_FillLine(nGUA_Line, 0);
}
//**********************************************************************
//name: GUA_LCD.h
//introduce: 香瓜的LCD驱动的头文件
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
#ifndef _GUA_LCD_H_
#define _GUA_LCD_H_
/*********************宏定义************************/
//类型宏
#ifndef GUA_C
typedef char GUA_C;
#endif
#ifndef GUA_U8
typedef unsigned char GUA_U8;
#endif
#ifndef GUA_8
typedef signed char GUA_8;
#endif
#ifndef GUA_U16
typedef unsigned short GUA_U16;
#endif
#ifndef GUA_16
typedef signed short GUA_16;
#endif
#ifndef GUA_U32
typedef unsigned long GUA_U32;
#endif
#ifndef GUA_32
typedef signed long GUA_32;
#endif
#ifndef GUA_U64
typedef unsigned long long GUA_U64;
#endif
#ifndef GUA_64
typedef signed long long GUA_64;
#endif
//LCD的可写行
typedef enum
{
GUA_LCD_LINE0 = 0,
GUA_LCD_LINE1,
GUA_LCD_LINE2,
GUA_LCD_LINE3,
GUA_LCD_LINE4,
GUA_LCD_LINE5,
GUA_LCD_LINE6,
GUA_LCD_LINE7,
GUA_LCD_LINE_COUNT
}GUA_LCD_LINE;
/*********************函数声明************************/
extern void GUA_LCD_Init(void);
extern void GUA_LCD_WriteValue(GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line);
extern void GUA_LCD_WriteString(GUA_C *pGUA_Str, GUA_U8 nGUA_Line);
extern void GUA_LCD_WriteStringValue(GUA_C *pGUA_Str, GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line);
extern void GUA_LCD_ClearLine(GUA_U8 nGUA_Line);
#endif
注:拖拽至CCS工程的Application文件夹下
添加文件过程中,选项选择如下
3、应用层调用
1)添加头文件(simple_peripheral.c中)
//GUA
#include "GUA_LCD.h"
//GUA
//GUA
//LCD初始化
GUA_LCD_Init();
//LCD测试
GUA_LCD_WriteString("opengua", GUA_LCD_LINE0); //写字符串
GUA_LCD_WriteString("QQ Group:", GUA_LCD_LINE1); //写字符串
GUA_LCD_WriteValue(557278427, 10, GUA_LCD_LINE2); //写数据
GUA_LCD_WriteStringValue("GUA age:", 27, 10, GUA_LCD_LINE7);//写字符串+数据
GUA_LCD_ClearLine(GUA_LCD_LINE7); //清除该行
//GUA
//GUA
//**********************************************************************
//name: GUA_HandleKeys
//introduce: 应用层按键处理函数
//parameter: GUA_Keys:键值
//return: none
//author: 甜甜的大香瓜
//email: [email protected]
//QQ group: 香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime: 2017.10.28
//**********************************************************************
static void GUA_HandleKeys(uint8 GUA_Keys)
{
//UP按键
if(GUA_Keys & GUA_KEY_UP_VALUE)
{
//LED1亮
GUA_Led_Set(GUA_LED_NO_1, GUA_LED_MODE_ON);
//蜂鸣器响
GUA_Beep_Set(GUA_BEEP_MODE_ON);
//LCD显示
GUA_LCD_WriteString("UP is pressed", GUA_LCD_LINE7);
//启动定时器
Util_startClock(&GUA_periodicClock);
}
//DOWN按键
if(GUA_Keys & GUA_KEY_DOWN_VALUE)
{
//LED2亮
GUA_Led_Set(GUA_LED_NO_2, GUA_LED_MODE_ON);
//蜂鸣器响
GUA_Beep_Set(GUA_BEEP_MODE_ON);
//LCD显示
GUA_LCD_WriteString("DOWN is pressed", GUA_LCD_LINE7);
//启动定时器
Util_startClock(&GUA_periodicClock);
}
//LEFT按键
if(GUA_Keys & GUA_KEY_LEFT_VALUE)
{
//LED3亮
GUA_Led_Set(GUA_LED_NO_3, GUA_LED_MODE_ON);
//蜂鸣器响
GUA_Beep_Set(GUA_BEEP_MODE_ON);
//LCD显示
GUA_LCD_WriteString("LEFT is pressed", GUA_LCD_LINE7);
//启动定时器
Util_startClock(&GUA_periodicClock);
}
//RIGHT按键
if(GUA_Keys & GUA_KEY_RIGHT_VALUE)
{
//LED4亮
GUA_Led_Set(GUA_LED_NO_4, GUA_LED_MODE_ON);
//蜂鸣器响
GUA_Beep_Set(GUA_BEEP_MODE_ON);
//LCD显示
GUA_LCD_WriteString("RIGHT is pressed", GUA_LCD_LINE7);
//启动定时器
Util_startClock(&GUA_periodicClock);
}
//SELECT按键
if(GUA_Keys & GUA_KEY_SELECT_VALUE)
{
//LED全亮
GUA_Led_Set(GUA_LED_NO_ALL, GUA_LED_MODE_ON);
//蜂鸣器响
GUA_Beep_Set(GUA_BEEP_MODE_ON);
//LCD显示
GUA_LCD_WriteString("SELECT is pressed", GUA_LCD_LINE7);
//启动定时器
Util_startClock(&GUA_periodicClock);
}
}
//GUA
每个按键都有对应的LCD显示。
八、注意事项
暂无
九、实验结果
仿真并全速运行,可以看到上电显示如下:
当按下五个不同按键时,会有对应的按键显示。其中“UP”键按键效果如下:
因此,LCD显示成功。