单片机系统液晶菜单设计.pdf
《单片机系统液晶菜单设计.pdf》由会员分享,可在线阅读,更多相关《单片机系统液晶菜单设计.pdf(3页珍藏版)》请在冰点文库上搜索。
工担控鲻键葬瓤2007车20卷第4期单片机系统液晶菜单设计De8gn0fLCDDlspIayMenusinMCUSysem文浩(武汉理工犬学自动化学院;湖北武汉430070)摘要啦MGLS一9264液晶显母器为蛳,舟站芎在叱D液晶上实现岁艇菜单和多层屏幕薛建丘。
提出了一j幸截罔鼗据结构,设计0液晶菜单通用方法。
该方法通用性较强。
关键谶:
液晶显示,菜单,草片机,数据站掬Abstr:
c章As宣靠ex毫H竹0leofLaBmod“le瓣。
已S一1尊2融,囊ep8pef;nfr。
dus如0w姆est罨bhshmu陋e娓Imensa抖c|m“tiIa,erscfeerlsAccordingtoda昱c。
n蚰uc珏on;themethocused协ces_gnLc0m黜嘴sp螂enfedThes码nfh。
ught密。
fso舡w直rese什ectI、reandunivofsaIK白ywords:
LCD,menusinglochipmlcrOpr0CessOr,dataconstruction在单片税系统设汗中,LC0A机交互界瞬的设十往往占据着很大一都分工作。
本文介绍一种用e语言赛瓒的0菜单的软件设计南1法,其确q醒好的可移檎性,可大大提高开发效率。
本文使用北京棒电蓬远公司MGLS一9264液晶模块为例介绍逮种圈定的LcD蔡革镶程模式。
1液晶蠡示横块MG-S一19284薷赍菠箕基本驱动蓬数11M8LS一19284簿舟MGLS19264点阵式整形液晶模块点阵数为192碰x64行,出块行璃饕器H0喝12。
3相3软剜驱动嚣H061202及卦匿电路缛成,H06202片内有丝示RAM,用户无需井接显示目AM。
售引脚功能如下:
1、2一CSA、CS3两菏选端供CPU接日选用。
CS盎、CS8为时,造迸0612021),为01对,选逶H06馑02
(2),为10时,选通HDi612。
2(3);3一GND系统接地;4VCe+5V电源;5一VO液晶驱动控涮电压,用于LCD对比度调整;6一DI数据指令选掸,01=1,数据操作,。
k0,霹指争或读状态;7一R删读写选撵倍号RW=1,搂选逸,R州,写选避;8一袁读写使能信号,在下降襁,数据被锁存(簧)入H08202,在高电平期间,数据教读出;916为DB0一DB7数据总线。
,2基率冁勘函数编写首先使用C语言程头文件率对MGLs一02铀控锻线进行定义,然嚣编写Lc0鹾动噬数,这些疆数包撼麓块初媲佬、写搓令代码、霉显示数据、读显示数据、写菜单臻、潜辟、溥美等函数。
2LCD盎乐菜单设计2,1菜单弊面设计车系统旋滕子无功孙偿控制器,要求显示电随兰相电压、电流值,无功功率、有功功率、光功阻数,20次豹电缓谐波古量,冤功补偿控制方式自动手动选样,参数设置等。
针对显示要求把整个系境设计戒多级辫幕(窗阱),又设;十成多级奎菜单,类越的功能放在一个主菜单第单项下构成子菜单日录。
如果菜单g录项过多,多屏鼎示此菜单目录。
通过分域,使操作人员能很直观快速找裂鑫己娄蘸需要的荽孽顼,渡鼎屏菜单界面设置如蛰1所示。
22建表字符或数字在点肆渡龋巾的显示是通过篝相或的内码f1点亮,0灭)实现的,于是先做好码表,把用到的缏字对应的内码僳存在一个襄为Hz_TAB的表中,每个16x18点鲜的字符需要豳圜隔离i!
I二飞nrr了敷壤单第三拯慕掣匪1电圈无功续撼制嚣的舟级菜单32个嘶拇袁承;把簧朔到的数字Og积字母对照的68点阵内码保存瘫一个名NUho淞B的表中,每个箍要16个by国表示;把阿片保存在PIC_AB袭中,需要byte数根据太小而定。
6x18点簿汉字藕18x8点阵数字、字母稠任意丈小漂白豳片字模数据摩可由甜hzb,E软件提取字模建立。
2S数据结构率系统采耀6个按钮来接受尉户输入,6个按钮为丘、下、左、右、耐车、邋回。
为方便数据的显示和处理,需要首先建立一个菜单寤踺缱梅体并定义一个结梅变量WnSlruct,该结构中共有9个绪构元素,势澍是8个字符型藕个撞针变量,指针变量指向蒜执行函数。
Typedefslmc“ucharMe礼ufn畦e:
当前絮单索号uoharBacln豳骥:
当蘸窗甜的上一塞日索菩l母ucharKe艟0nnde:
下一十豢单索引号按下“上下”键畦当酋募单项上F移动ucharNe埘UpI州ex:
或可罄改参数数值向上下循环变化uchar卜8mI删e;下一个蘩尊索萼l号,按7F“壹,右”肆对当赫菜单礓整毒移动uch甜NefRlndex:
或在可修改参数位置e左右移珊ucharK钟臼st甜e:
按下”四车”键对用户选择确认城参数赣确定uch甜轴yB貅kS掘e:
授下“退回”键时甩户遂出当前窗口+返西土一窗口void(Currentoperate)();当前状态廊诙执行的功能操作nnSlcl:
菜革囔在LcD上显靖,遥过建立蘩单硬雏构俸。
定卫一个帮构堂鸶踟n鸥n脯,懿下:
Typede蚶uctucharM昂nuIndex;当前菜单索引号ucharNextWnd积:
下窗口索引号hafcufs0008:
蕖单硬起始夏位置(下转第77篙)万方数据工盈控镪计算视27年20卷第4期2由波特率误差引越的错码现象分析如聚PC枧与单片枧的通信速攀约定为9600bs,系统雌锌为8黼Hz对,蠹了按约定静速率逶信,PC税褒8250舅多邋信接口中的3F8H和3F9H寄存器中设定波特率因子分别为OCH和OOH;而单片机中定时器1初值THl=TLl=FDH。
此时,PC机发送数据与单片机接收数据的愤提如下:
PC撬发送数舞荤背撬接浚数据10H1FH30H3FH20H2FH40H4FH30H3FH70H7FH40H4FH80H8FH50瓣5FH30疆8FH以上数据表明了接收数据中出现的错码情况。
通过对上述错码进行剖析可以看到:
当因波特率误差引起接收端采样偏移时,魏聚这个镶移使愆接收数据健瓣采样在滚位串熹戆半篷翔隔时,将会对该位采样两次,所以形成了上面的错码情况。
下两公式表明错码或漏码发生的位数N:
波特率相对误差第N位O5,即NO5波特率相对误差。
姿率蟹买步逶售瓣稹格式为位薅:
N11,表示一帧数据中有某彼被采样错,飘采样出错在第N位;N11,表示一帧数据中没有数掇位发生采样镤。
本筑孛,波特率误差菇8。
5蠢羔覆对公式褥懑8。
51扛O935O5,说明在这个波特率瀑差下将出现采榉错,且出错位为:
=D5侣5=59m6(含起始位)即张数据帧包括起始位的第6位发生错码,农第6位采样了嚣次,瓣羲褥弱上溪镑羁媾嚣。
O0O10OOO0起始位错位:
OO1100OO则10H_30HO101O0OO01011OOOO艇fl50H+BOH相反,当PC机的传输波特率大予单片机的传输波特率时,则会在第N位出现漏礤错误。
这里不再赘述。
毒上嚣熬公式还霹拨箍颤鑫,当波特率穗瑟浚蒺夺于45时,这种采样的偏移将不影响正常数据的接收。
但为了保证传的可靠性,通常波特率的误差不大于2,5,而尽量选择最小的传输误差零。
3S酗O转链对滚转鼙豹彰藕在波特率的设置中,还有一个问题值得注意,那就是SMOD位的选择也影响着波特率的准确率,如下例:
设波特率为2400bs,fosc=6MHz时,SM00可以任意选择为0城蠢。
毽是交予对S麓0D不嗣懿选择,瓣产生了不麓的波特举误差:
2400。
:
j9“”61学3212(256一、当SMOD=0时。
一249=F9H;当S醚00=霾雩,x=2霹3=醋H。
实际的波特率误麓及误差如下:
SMOD=0时,波特率一223214bs,误差=7SMOD=1时,波特率。
24。
385bs,误差=O16上蘧瓣分辑说明了S00豹餐藏然是胃缓程意选择戆,餐是在某些情况下,它誊接影响着波特率误差范围,因而在波特率设置时,对SMOD的选取也要做适当的考虑。
4结束添以上鼹串行逶信掰必须渗及戆波特率设耋润爨终了一些分析。
在界种机的串行通信中,波特率的设置是非常重要的问题,它直接关系着串行通信的成功与失败,因此在串符通信中要对波特率的设置给予足够的认识。
参考文献1胡汉才单片机原理及矮接口技术M】dE京:
清华大举出版社,19962何立民。
单片机应用磊绫设计【嘲北京:
北京航空航天大学出版社,9993求实科技单片机通信技术与工程实践【M】北京:
人民邮电出版社,2005由此可以类推出错误的接收数掇。
收稿日期:
2006927,”卟“一It“_,1。
P”州。
一2”。
弧一1。
一+l|一一r。
州豫一“”l+q瓣。
“豫h_强np毡l,“4,f,”(上接第75页)UCharCUrSOLCOuchartype:
168点阵等蛙char。
惑ata:
uehardataNum:
ucharbIack:
ucharmod:
ucharwhchbIt醚en驻Sfoe:
24软件设计菜单项起始行位置菜单琐显示的数据类型,1616或豢羯鼗添数据区需要最承的数据个数是否反照菜单项数据魑否需要修改需要修改的数攮是第几位数掇系统上电,初始化点阵液晶显承模块及其他后进入主窗口显示,当前菜单项反色撼示(反色怒在一块区域中,线条上是空自,该嚣竣中英余部靛都被壤充黑色)。
反色显示麓逶过怼瑟瑟显示内容的字符串数据取反,然后传给液晶显示。
在液晶显示程序淌中,“上、下、左、右”按键中断后,下一个菜单索引号变为当前状态索引号,对应的结构元索(是否反显)发生毅变,纛囊瞳渡曩显示鬓纛瘳撬行,爱姿夔菜擎瑗反惫显示。
“阐车”按键衙执行当前菜单索引号所对应的执行功能操作,通过建立菜单索引号的条件分支语句可实现。
如菜单索引号对应数据远程通信程序,则控制器执行远程通信传输程序;如对应是进入下一子菜单秘录程序,剜利新屏幕,显示下一窗口索引号对应的窗口,当前浆单索引号也变为子菜单目添的首菜单项索引号。
“退回”按键后则刷新屏幕,显示结构元素(BackWlnlncex)对应戆上一寮曩。
窗翻驻示通过不闯窗口索引号包含不同的菜单项实现。
建立二维数组WinW川ndeX】,以窗口索引号寻找到对应的包含菜单项,然后刷新屏幕鼹示对应的菜单项。
建立图片数据库,增粕菜单矮驻示戆点簿数爨类型,裁霹灏J弩菜单塞疆爨示。
3结菜语本文介绍的方法可以很方便修改菜单和增加子菜单,在此菜单编程方法基础上进行改进,还可增加滚屏,融动翻页等功麓。
越方法龟霹撵透波翅子A跫7与0SP其毽微控裁器LC0液晶入机界面上。
参考文献】j衷猿邀蓬运显示毅零嘉袋公司;内藏瓣0612程控翻器霞影菠鑫显示模块的应用【M】jE窳:
北京清华蓬递科贸公司,202林志坚液晶显示模块猩流量计中的实现【J电子器件,2006(6)收稿对期:
2006928万方数据单片机系统液晶菜单设计单片机系统液晶菜单设计作者:
文浩作者单位:
武汉理工大学自动化学院,湖北,武汉,430070刊名:
工业控制计算机英文刊名:
INDUSTRIALCONTROLCOMPUTER年,卷(期):
2007,20(4)被引用次数:
1次参考文献(2条)参考文献(2条)1.林志坚液晶显示模块在流量计中的实现期刊论文-电子器件2006(06)2.北京精电蓬远显示技术有限公司内藏HD61202控制器图形液晶显示模块的应用2000引证文献(1条)引证文献(1条)1.徐进.李晓林.张剑勇基于UML的人机接口设计期刊论文-工业控制计算机2010(6)本文链接:
http:
/