12864带字库显示屏按键选择菜单显示_u013024206的博客-程序员宅基地

技术标签: 12864显示屏  

/*****************************************************/
//描述:LCD12864的驱动
//作者:小四叶草
//时间:2015/07/16
//描述:显示与按键
//s2 ---------GPIO52 ;s3-----------GPIO54 ; s4 -------GPIO72 ; s5 ----GPIO71;
//两种写法:1.消抖;2.状态机
//按键消抖的是时间是20ms
/*****************************************************/
#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

#define LCD_DATA		(*((volatile Uint16 *)0x45EF))
#define E				GpioDataRegs.GPBDAT.bit.GPIO61
#define RW				GpioDataRegs.GPADAT.bit.GPIO27
#define RS 				GpioDataRegs.GPBDAT.bit.GPIO60
#define LOW 			0
#define HIGH			1
#define CLEAR_SCREEN	0x01		//清屏指令:清屏且AC值为00H
#define AC_INIT			0x02		//将AC设置为00H。且游标移到原点位置
#define CURSE_ADD		0x06		//设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE		0x30		//工作模式:8位基本指令集
#define DISPLAY_ON		0x0c		//显示开,显示游标,且游标位置反白
#define DISPLAY_OFF		0x08		//显示关
#define CURSE_DIR		0x14		//游标向右移动:AC=AC+1
#define SET_CG_AC		0x40		//设置AC,范围为:00H~3FH
#define SET_DD_AC		0x80 
#define s2 GpioDataRegs.GPBDAT.bit.GPIO54
#define s3 GpioDataRegs.GPBDAT.bit.GPIO55
#define s4 GpioDataRegs.GPBDAT.bit.GPIO56
#define s5 GpioDataRegs.GPBDAT.bit.GPIO57

#define	DELAY_MS(A)		DELAY_US((long double)A * 1000.0L)
#define DELAY_100US(B)	DELAY_US((long double)B * 100.0L)

void InitXintf(void);
void ConfigGpio(void);
void InitLcd(void);
void Read_Busy(void);
void WriteCmd12864(Uint16 cmd);
void WriteData12864(Uint16 dat);
void DisplayDdram(uchar *hz);
void DispBMP(uchar *adress);
void CLR_GDRAM(void);
void Disp(void);
void fanbai(uchar y,uchar x1,uchar x2);
void  key(void);
void xuanze();
void xunhuan(uchar hang);
void jiantou(uchar hang);


uchar tab1[]="设置参数值";
uchar tab2[]="查询参数值";

uchar tab3[]="查询历史故障";
uchar tab4[]="清除历史故障";
uchar tab5[]="第二级菜单显示";

uchar key2 = 0;
uchar key3 = 0;
uchar key4 = 0;
uchar key5 = 0;

uchar keyindex = 0; //初始化的时候是第一行,选择行的索引
uchar keycur = 0; //0,1,2,3 显示屏的当前行

void main(void)
{
	InitSysCtrl();
	InitXintf();
	InitXintf16Gpio();
	DINT;
	InitPieCtrl();
	
	IER = 0x0000;
	IFR &
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013024206/article/details/47069083

智能推荐

camera学习入门指南-程序员宅基地

等待补充。1.背景介绍近年来,随着消费电子领域市场的快速增长,如安防、图像等领域,camera市场得到了快速发展。智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货。具体可以看电子行业分析或者券商研报行业分析,比如下面两份。在招聘网站上搜索camera,可以看到,多为手机厂商、智能硬件和汽车安防相关行业,包括tuning、效果、系统、性能功耗、测试等,其中camera tuning的岗位是最多的。绝大多数产品方案系统都是使用Android操作系统方案,所以需要对And

你写过的shell脚本有多少?说一个你认为比较复杂的shell脚本_脚本每月多少条_Linux运维日记的博客-程序员宅基地

从我工作以来,基本上每周都会写几个脚本,这样算下来大概有100多个(大概工作1年),其中一个最复杂的脚本是,给财务写的计算公司业务的各种指标数据的脚本。 因为考虑的情况特别多,所以脚本最终写完大概有1000多行,函数有20多个。..._脚本每月多少条

视频教程-SAP ABAP 开发入门-其他-程序员宅基地

SAP ABAP 开发入门 16年IT行业从业经验,本科学机械工程及自动化专...

Linux Shell编程四剑客-sed-程序员宅基地

功能说明Sed是Strem Editor(流编辑器)缩写,是操作、过滤和转换文本内容的强大工具。常用功能有增删改查,过滤,取行。[root@oldboy~]#sed--version#→sed软件版本GNUsedversion4.2.1语法格式sed [options] [sed-commands] [input-file]sed [选项] [sed...

list集合foreach逻辑操作-程序员宅基地

List<String> list = new ArrayList<>();list.forEach(it -> { logger.info(JSON.parseObject(it, BasicDataParam.class).toString()); basicDataList.add(JSON.parseObject(it, Bas...

js 回退键清空输入数据-程序员宅基地

需求 : 有时间选择输入框,想按一下回退键清除输入框的内容(因为时间格式,如果像常规的回退键会有很多时间格式错误问题)。实例:HTML篇幅问题,时间选择框就不写了。js//清空只读文本框中的时间function forbidBackSpace(e)

随便推点

unity中建立 Socket 简单通信-程序员宅基地

本人是新手,但是找了很久都找不到类似的通讯源码,后来终于在一个网站上看到有关于Socket的通讯事例,所以就抄过来希望能够帮助更多像我一样的初学者!嘻嘻首先创建一个C# 控制台应用程序, 直接服务器端代码丢进去,然后再到Unity 里面建立一个工程,把客户端代码挂到相机上,运行服务端,再运行客户端。 高手勿喷!~!完全源码已经奉上,大家开始研究吧!! 嘎嘎嘎!原文链接:

性能测试Linux服务器cpu过高,内存不足GC overhead limit exceeded-程序员宅基地

问题描述 性能测试时,CPU利用率过高(大于80%),一直居高不下,日志报错:GCoverheadlimitexceeded。 2.问题分析与处理将问题反馈给开发,获取CPU异常之前逐渐升高这段过程中的堆内存使用情况和堆栈日志,供开发分析,开发给出解决方案,修改startServer.sh文件堆配置,当前服务器内存是8G,经过多次测试后,最终确定可行的配置方案是:-Xms2048m-Xmn1024m-Xmx2048m-XX:PermSize=300M,将其放在j..._gc overhead limit

go面向对象_go的面向对象-程序员宅基地

把一类事物的共有的 属性( 字段)和 行为( 方法)提取出来,形成一个 物理模型(结构体)。这种研究问题的方法称为抽象封装(encapsulation)就是把抽象出的字段和对字段的操作封装在一起,数据被保护在内部,程序的其它包只有通过被授权的操作(方法),才能对字段进行操作封装的好处1) 隐藏实现细节2) 可以对数据进行验证,保证安全合理封装的实现步骤1) 将结构体、字段(属性)的首字母小写(不能导出了,其它包不能使用,类似 private)2) 给结构体所在包提供一个工厂模式的函数,首字_go的面向对象

Android SDK更新 Connection to http://dl-ssl.google.com refused 解决方法_更新sdk connection to http://dl.google.com refused-程序员宅基地

问题描述使用SDK Manager更新时出现问题Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connection to https://dl-ssl.google.com refusedFailed to fetch URL http://dl-_更新sdk connection to http://dl.google.com refused

mysql能不能多次join_mysql多次join同一张表的处理-程序员宅基地

在做多表联查的时候有时候会碰到一条sql需要多次查同一张表的情况,比较常见的是主表和码值表的匹配。如主表的多个列都记录了编号信息而非实际内容,需要去码值表去查对应的实际内容,就需要多次join码值表。举个简单的例子,一个班有两个老师,在班的表里记录了两个老师的id,现在要把id换成这两个老师的名字,就需要按照老师的id去查老师表,也就是班级表需要两次join老师表来获取两个老师的名字,如果直接jo..._mysql连续join

笔试题——用java实现股票交易日的判断_java 获取交易日_China_TomCat的博客-程序员宅基地

今天记录一道笔试题1.原题:需求:股票交易或者分析会涉及到交易日的查询,为了分析高效快速,通常会把交易日放到内存中。要求实现下面的接口。interface TradingDayService { //判断是否为交易日 boolean isTradingDay(LocalDate date); //查询下一个交易日 Optional<LocalDate> queryNextTradingDay(LocalDate date); //查询一段时间范围的交易_java 获取交易日

推荐文章

热门文章

相关标签