一、LED 12864屏幕代码规范化

学习目标:

学习LCD12864屏幕的使用

学习概要:

1、熟悉例程

2、修改、优化函数

3、编写自己所要用到的函数


学习内容:

 1、熟悉例程和汉字软件的使用

        1.1  屏幕选型:

                屏幕型号:深圳市川航电子科技有限公司CH12864-2

                驱动芯片:UC1701X

                资料下载:https://www.aliyundrive.com/s/ncHqXz7oMM6  (阿里网盘)

        1.2  端口识别:外形机构图和引脚定义图

        1.3  命名规范化:

                1.3.1  自定义函数函数名首字母大写(库函数里的函数名都是以小写字母定义,为了区分库函数和自定义函数,避免冲突)

                1.3.2  宏定义里面的变量全大写

                1.3.3  没有用到的函数和底层函数,可以使用statics,不在头文件中申明

                1.3.4  每个模块应在函数名前面加上已识别的前缀,如:LED_Init();

                1.3.5  每个函数前面说明功能

/*****************************************************
Function: Display data RAM page and column address
******************************************************/
void GotoXY(uchar page_addr, uchar clm_addr)
{
   Set_Page_Address(page_addr);
   Set_Column_Address(clm_addr);
}
/*****************************************************
Function: Write Datas to a page and colunm
******************************************************/
void Write_Data(uint com,uchar page_addr,uchar clm_addr)
{
  GotoXY(page_addr,clm_addr);
  Send_Data(com);
}

                1.3.6  头文件的编写程序顺序

// 1、文件头的注释
// 2、防止重复引用头文件的设置
// 3、#include部分
// 4、enum常量声明
// 5、类型声明和定义,包括:struct、union、typedef等
// 6、全局变量声明
// 7、文件级变量声明
// 8、全局或文件级函数声明
// 9、函数实现(按函数声明的顺序排列)
//10、文件尾的注释

        1.4   具体函数的熟悉,头文件文件格式:

#ifndef __UC1701_H /* 文件名前名加两个下划线“__”,后面加 “_H”,一般为大写*/
#define __UC1701_H

#include "hc32f460_utility.h"

//设置控制的引脚
#define GPIO_PORT      (PortA)
#define SCLK_PIN1      (Pin04)  //时钟线
#define SDA_PIN2       (Pin05)	//数据线
#define A0_PIN3        (Pin06)	//数据、指令切换
#define RES_PIN5       (Pin07)	//复位
#define CS_PIN4        (Pin08)	//芯片使能

#define uchar		unsigned char
#define uint		unsigned int
#define ulong		unsigned long

void Set_Page_Address(uchar page_addr);
void Set_Column_Address(uchar clm_addr);
void GotoXY(uchar Paddr, uchar Caddr);
void Write_Data(uint com,uchar page,uchar clum);
void LCD_Clear(void);
void Disp_Graphics(const uchar  *gph);
void LED_Square_Frame(void);
void Disp_Ascii1608(const uchar *ptrAscii, uchar startP, uchar startC);
void Disp_Ascii0508(const uchar *ptrAscii, uchar startP, uchar startC);
void Display_Hanzi(const uchar *p,uchar startP, uchar startC);
void Display_Hanzi_Fan(const uchar *p,uchar startP, uchar startC);
void Display_Photo(const uchar *p,uchar startP,uchar startC);
void Lcm_Init(void);

#endif

2、调用函数初始化及原始应用

         2.1  连线及编写初级代码

static const unsigned char bitssss[][32]=
{
/*--  文字:  我  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,

/*--  文字:  爱  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,
0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00,

/*--  文字:  你  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,

/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00,

/*--  文字:  国  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00,

/*--  文字:  !  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

int32_t main(void)
{
	Lcm_Init();
	LCD_Clear();
	Display_Hanzi(bitssss[0],0,16);   		
	Display_Hanzi(bitssss[1],0,32);   
	Display_Hanzi(bitssss[2],0,48); 
	Display_Hanzi(bitssss[3],0,64);   		
	Display_Hanzi(bitssss[4],0,80);
	Display_Hanzi(bitssss[5],0,96);   		
}
	

        2.2  运行结果

        2.3   结果达到预期。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值