基于-单片机直流电机转速测控系统设计_第1页
基于-单片机直流电机转速测控系统设计_第2页
基于-单片机直流电机转速测控系统设计_第3页
基于-单片机直流电机转速测控系统设计_第4页
基于-单片机直流电机转速测控系统设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z基于51单片机的直流电机转速测控系统设计基于51单片机的多级菜单滚动显示容提要:随着现代科技的不断开展,现在的电子产品越来越多,在早期,电子产品一般是纯硬件电路,没有使用单片机,电路复杂难以设计,也难以检查问题,随着微控制技术的不断完善和开展,集成芯片越来越多,单片机便出来了,换言之,单片机的应用是对传统控制技术的一场革命。具有划时代的意义。在电机控制方面也是靠人的感觉,没有侧速和侧距的概念,以前人机界面一般采用LED数码二极管,随着LCD液晶显示器的出现,人机界面更加人性化、智能化,它能显示数字、汉字和图象,控制LCD液晶显示器也很方便,电路设计也比拟简单;加上单片机,组合实现的功能

2、也比拟强大,还可方便以后电路的升级与扩展。本文结合LCD显示、电机控速、红外侧距、键盘操作等多种技术,实现了基于51单片机的电机转速测量控制系统的设计。本文从第二章方案论证与选择开场,就阐述了该系统的根本工作原理、所采用的相关技术等,进而交代了电机转速测量控制的实现方法。最后重点阐述了LCD液晶显示和案键局部。 该设计经过测试,实现了在LCD上的菜单多级滚动显示,到达预期的设计效果。基于该系统在LCD上实现菜单控制系统在电路图设计比拟方便,主要分为四局部,电源局部、安键局部、LCD显示局部和控制局部;较复杂的是在控制软件局部,软件控制局部分为三局部,一局部是安键判断局部、菜单控制局部和显示局部

3、。关键词:单片机电机液晶显示器按键红外元件Based on 51 DC motor speed monitoring and control of the Design and Implementation Multi-level menu scrolling display based on 51Student :ZhouLiming instructor:: Mr Lei Summary: With the continuous development of modern science and technology, an increasing number of electronic

4、products, in the early days of electronic products in general are pure hardware circuit, to use a microcontroller, the circuit difficult to design ple*, difficult to check the problem, with the micro-control Technology continues to improve and develop, more and more integrated chips, SCM will e out,

5、 in other words, the SCM application of traditional control of a revolution.In motor control are also on the feeling of speed and no side from the side of the concept of human-puter interface before the general use of digital LED diodes.With the emergence of LCD liquid crystal display, human-puter i

6、nterface more humane, intelligent, and it shows that the number of Chinese Characters and plans Like, control LCD liquid crystal display also very convenient, circuit design is also relatively simple addition, SCM, bined to achieve the functions of relatively strong, but also facilitate the circuit

7、after the upgrade and e*pansion. This paper LCD display, the electrical control speed, the red lateral distance, keyboard operation, and other technology, based on the realization of the 51 SCM motor speed measurement and control system design. . This article from the second chapter demonstration an

8、d selection of programmes, elaborated on the systems basic working principle, adopted by the relevant technology, and then e*plain the control of motor speed measurement method. Finally focus on e*pounded the LCD liquid crystal display and the key part. The design has been tested, and in the LCD men

9、u on the multi-rolling, to achieve the desired effect of the design. Based on the system to achieve in the LCD menu control system in circuit design more convenient, are divided into four parts, power part of the key parts, LCD display and control of some parts of the more plicated part is in contro

10、l software, software-controlled part of divided into Three parts, is part of the key judgments of the menu and display some of the control. Key words: MCU Motor LCD button infrared devices目 录 TOC o 1-3 h z u HYPERLINK l _Toc199418444一、引言 PAGEREF _Toc199418444 h 4HYPERLINK l _Toc199418445二、方案论证 PAGER

11、EF _Toc199418445 h 4HYPERLINK l _Toc199418446一基于嵌入式单片机的设计方案 PAGEREF _Toc199418446 h 4HYPERLINK l _Toc199418447二基于EDA为核心的设计方案 PAGEREF _Toc199418447 h 5HYPERLINK l _Toc199418448三方案选择 PAGEREF _Toc199418448 h 5HYPERLINK l _Toc199418449三构造设计 PAGEREF _Toc199418449 h 5HYPERLINK l _Toc199418450一CPU控制模块 PAGE

12、REF _Toc199418450 h 6HYPERLINK l _Toc199418451二键盘模块 PAGEREF _Toc199418451 h 7HYPERLINK l _Toc199418452三LCD液晶显示模块 PAGEREF _Toc199418452 h 7HYPERLINK l _Toc199418453四电源模块 PAGEREF _Toc199418453 h8HYPERLINK l _Toc199418454五红外侧距模块 PAGEREF _Toc199418454 h 9HYPERLINK l _Toc199418455六PWM电机控制模块 PAGEREF _Toc1

13、99418455 h 9HYPERLINK l _Toc199418456四、各硬件模块设计 PAGEREF _Toc199418456 h 9HYPERLINK l _Toc199418457(一)电源设计 PAGEREF _Toc199418457 h 9HYPERLINK l _Toc199418458二键盘设计 PAGEREF _Toc199418458 h 10HYPERLINK l _Toc199418459三LCD液晶显示设计 PAGEREF _Toc199418459 h 11HYPERLINK l _Toc199418462四CPU硬件设计 PAGEREF _Toc19941

14、8462 h 13HYPERLINK l _Toc199418466五时钟模块 PAGEREF _Toc199418466 h 15HYPERLINK l _Toc199418467六红外测速模块 PAGEREF _Toc199418467 h 15HYPERLINK l _Toc199418468七电机模块 PAGEREF _Toc199418468 h 16HYPERLINK l _Toc199418469五、软件设计 PAGEREF _Toc199418469 h 17HYPERLINK l _Toc199418470(一)初始化和主程序模块 PAGEREF _Toc199418470

15、h 17HYPERLINK l _Toc199418471二按键模块 PAGEREF _Toc199418471 h 19HYPERLINK l _Toc199418472三显示局部 PAGEREF _Toc199418472 h 21HYPERLINK l _Toc199418478四电机程序设计说明 PAGEREF _Toc199418478 h 35HYPERLINK l _Toc199418479六、测试报告 PAGEREF _Toc199418479 h 35HYPERLINK l _Toc199418480七、总结 PAGEREF _Toc199418480 h 38HYPERLI

16、NK l _Toc199418481八、附录 PAGEREF _Toc199418481 h 38HYPERLINK l _Toc199418482参考文献 PAGEREF _Toc199418482 h 59基于PIC单片机的直流电机转速测控系统设计基于51单片机的多级菜单滚动显示一 、引言随着现代科技的不断开展,现在的电子产品越来越多,在早期,电子产品一般是纯硬件电路,没有使用单片机,电路复杂难以设计,也难以检查问题,随着微控制技术的不断完善和开展,集成芯片越来越多,单片机便出来了。在电机控制方面也是靠人的感觉,没有侧速和侧距的概念,所以用单片机控制直流电机由于具有速度控制容易,启、制动性

17、能良好,且在宽围平滑调速等特点而在冶金、机械制造、轻工等工业部门中得到广泛应用。以前人机界面一般采用LED数码二极管,用LED数码二极管只能显示零到九数字和小数点,显示太单纯,容不丰富,难以满足用户的需求,而且显示所占的地方太大,电路设计难,电路图较复杂,随着LCD液晶显示器的出现,人机界面更加人性化、智能化,它能显示数字、汉字和图象,控制LCD液晶显示器也很方便,电路设计也比拟简单;加上单片机,组合实现的功能也比拟强大,还可方便以后电路的升级与扩展。本系统设计并制作一台以51单片机为CPU核心板,用44键盘控制直流电机的转速、LCD液晶显示器的显示、红外线侧距和时钟显示等。本论文的第一局部介

18、绍系统总体方案分析设计;第二局部说明系统各硬件模块的作用;第三局部为系统的软件设计;后面几个局部为系统的实验结果和总结。二、方案论证一基于嵌入式单片机的设计方案方案一:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现根本的LCD液晶显示功能。电机采用继电器控制,可实现低压电平控制高压电平,以防止高压电对CPU的影响,损坏单片机。电 源 键盘单 片 机LCD液晶显示电机控制红外控制图 1基于嵌入式单片机的设计方案二基于EDA为核心的设计方案采用FPGA应用控制,FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EP

19、LD等可编程器件的根底上进一步开展的产物。它是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又克制了原有可编程器件门电路数有限的缺点。 FPGA是由存放在片RAM中的程序来设置其工作状态的,因此,工作时需要对片的RAM进展编程。用户可以根据不同的配置模式,采用不同的编程方式。应用FPGA设计该系统的框图如下:电 源按 键FPGALCD液晶显示电机控制红外控制图 2基于EDA为核心的设计方案三方案选择通过比拟以上两种方案,单片机方案有较大的活动空间,也比拟方便,对控制系统的要求也不是很高,价格也比拟底,电路设计也比拟方便,软件指令简单,不但能实现所要求的功能而且

20、能在很大的程度上扩展功能,而且还可以方便的对系统进展升级,所以我们采用第一种方案三、构造设计在这里,本系统我们选用了方案一基于嵌入式单片机的设计方案。总体设计框图如下:电 源供5伏电51单 片 机LCD液晶显示12864屏幕电机控制直流电机时钟控制 44键盘图 3 总系统图HYPERLINK l _Toc167637907一CPU控制模块CPU控制模块采用MCS51单片机单片机又称单片微控制器,它不是完成*一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格廉价等。 单片机部也用和电脑功能类似的模块,比方CPU,存,并行总线,还

21、有和硬盘作用一样的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制局部的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的本钱,这也是和离线式计算机的比方家用PC的主要区别。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国

22、50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!它有集成度高,存储量大,性能高,速度快,抗干扰性强,指令丰富等特点。此类型单片机的封装型号很多,我们采用DIP40脚封装,对与该系统已经够用了,MCS51单片机中有 时针模块、中断模块、串口、并口等。存储空间大,寻址围宽,数据存储有64KB地址空间,程序存储有64KB寻址空间。中断有优先级别控制,采用5V供电。外围元件少等优点,下面是51单片机构造图和外围

23、元件图:图 4 CPU核心板HYPERLINK l _Toc167637908二键盘模块图5 44行列键盘键盘是人操作本系统的唯一通道。键盘设计采用44行列键盘,十个数字键,上下左右键4个,还有确定键,取消键。采用单片机的P0到P7端口控制。数字键可设定电机的转速、设定时钟、设定温度等。上下左右键用于菜单的选择控制,让菜单跟随上下左右键上下滚屏翻动,实现菜单滚屏显示。确定键用于菜单中所选工程的启动。如启动电机按照规定速度转动,启动红外侧距功能、启动秒表等。取消键:取消键和确定键的功能相反,即停顿*项功能。HYPERLINK l _Toc167637909三LCD液晶显示模块键盘是人操作本系统的

24、唯一通道,系统收到人对它的操作没,就在HYPERLINK l _Toc167637909LCD液晶显示模块中表达,所以HYPERLINK l _Toc167637909LCD液晶显示模块是人和该系统的直接对话见面。图6 LCD液晶连接图 在以往的人机对话界面中用LED数码灯,LED数码二极管只能显示零到九数字和小数点,显示太单纯,容不丰富,难以满足用户的需求,而且显示所占的地方太大,电路设计难,电路图较复杂,随着液晶显示技术的进步,高质量的液晶显示模块会被日趋广泛地应用于各种嵌入式系统中。在系统的整体设计中,人机交互界面的设计往往占据着很大一局部工作。 HYPERLINK l _Toc1676

25、37910四电源模块图7 电源图一个系统如果没有电就不能工作,如果没有稳定的电源也不能正常工作,所以电源在系统的设计中是站着非常重要的作用。电源模块中为系统输出正5V和正3.3V电源,5V为本系统的主电源,3.3V是为红外模块提供电源。五红外侧距模块现在红外元件的用途很多,例如红外侧温、红外侧距、红外感应等。在这里我们应用了红外感应,感应轮子转动的圈数。便可知道跑了好远的距离距离等于轮子周长乘以轮子的圈数六PWM电机控制模块 系统控制速度逻辑框图如下: 测速单片机控制PWM输出速度实现按键输入图 8 PWM电机控制图电机控制模块中用的是直流电机,可把直流电机换成步进电机,但步进电机太贵价格在1

26、00元左右,主要用单片机控制直流电机的转速,测量电机转动的圈数,这样可以侧距圈数乘以轮子周长就等于所走动的距离PWM信号发生器是通过改变直流电机电枢上脉动直流电的占空比来改变平均电压的大小,从而控制电机的转速。电枢电压的平均值为:Umg= .Vcc=Vcc, = 称为占空比,其值由固定频率调节脉冲宽度的方法来调节。四、各硬件模块设计设计总电路原理图图 9 系统各模块电路原理图 从总体电路图上看,整个系统构造简单,模块清晰,采用双面PCB板,该系统可以分为七局部,它们分别是HYPERLINK l _Toc167637907CPU控制模块、HYPERLINK l _Toc167637908按键模块

27、、HYPERLINK l _Toc167637909LCD液晶显示模块、HYPERLINK l _Toc167637910电源模块、时钟模块、红外模块、PWM电机控制模块。(一)电源设计MCS51单片机采用5V直流稳压电源,直流稳压电源根本组成框图如下: 图 10 直流稳压电源根本组成框图根据这一原理,该系统的电源电路设计如下图 11 电源电路该电源电路采用78L05三端固定式正压稳压器,它有过流、过热和调整管平安工作区保护,以防过载而损坏。78表示78系列,05表示稳压器输出的电压值,L为稳压器最大输出电流为100MA。C19和C25为大容量滤波电流,C20和C26为小容量,C20用于抑制7

28、8L05芯片自激振荡,C26用于压榨芯片的高频带宽,减小高频噪声。LED灯为电源指示灯。SP*1117-3.3为3.3v备用电源电路。二键盘设计键盘由多个按键组成,一般将其排列成阵列形式,如下列图图 12 阵列式键盘示意图从图可看出,当没有键按下时,行线和列线之间是不相连的,假设第N行第M列的键被按下,则第N行与第M列的线就被接通。如果在列线上加上信号,根据行线的状态,便可得知是否有键按下。如果在列线上逐行加上一个扫描信号,就可以判断按键的位置。在H1到H4接四个10K的上拉电阻。三LCD液晶显示设计1 LCD概述及特点液晶显示器LCD,liquid crystal display,具有体积小

29、、质量轻、功耗低等优点,是电子信息产品的重要显示器件之一。LCD作为电子信息产品的主要显示器件,相对与其他类型的显示部件来说,有其自身的特点,概要如下:低电压微功耗LCD的工作电压一般为35V,每平方厘米的液晶显示屏的工作电流为uA级,所以液晶显示器件为电池供电的电子设备的首选显示器件。平板型构造LCD的根本构造是由两片玻璃组成的很薄的盒子。这种构造具有使用方便、生产工艺简单等优点。使用寿命长LCD器件本身几乎没有什么劣化问题,如能注意器件防潮、防压、防止划伤、防止紫外线照射、防静电等,同时注意使用温度,则LCD可以使用很长时间。被动显示对LCD来说,环境光线越强显示容越清晰。人眼所感受的外部

30、信息90以上是外部物体对光的反射,而不是物体本身发光,所以被动显示更适合人的视觉习惯,更不容易引起疲劳。这在信息量大、显示密度高、观看时间长的场合更为重要。显示信息量大且易于彩色化LCD与CRT相比,由于LCD没有荫罩限制,像素可以做得很小,同时液晶易于彩色化,方法也很多。无电磁辐射CRT工作时,不仅会产生*射线,还会产生其他的电磁辐射,影响环境。LCD则不会产生这类问题。点阵字符型LCD的特性我们已经知道,点阵字符型LCD是专门用于显示数字、字母、汉字、图形符号及少量自定义符号的液晶显示器。这类显示器把LCD控制器、点阵驱动器、字符存储器、显示体及少量的阻容元件等集成为一个液晶显示模块。鉴于

31、字符型液晶显示模块目前在国际上已经规划,其电特性和接口特性是统一的。字符型液晶显示模块的控制器大多数为日立公司生产的HD44780及其兼容的控制电路,本系统用HD44780,下面我们介绍HD44780的接口技术。HD44780似的引脚信号HD44780的外部接口信号一般有14条,有的型号显示器使用16条,本系统采用16条接口,与MCU的接口有8条数据线、3条控制线。见下表管脚号 符号 电平 方向 引脚含义说明1 VSS 电源地2 VDD 电源5V3 V0 液晶启动电源05V4 RS H/L 输入 存放器选择:1数据存放器 0指令存放器5 R/W H/L 输入 读写操作选择:1读操作 0写操作6

32、 E H/L 输入 使能信号:R/W=0,E下降沿有效HL R/W=1,E=1有效710 DB0DB3 三态 8位数据总线的低4位1114 DB4DB7 三态 8位数据总线的高4位1516 E1E2 输入 上下两行使能信号,只用于一些特殊型号2 LCD液晶显示器硬件设计在以往的人机对话界面中用LED数码灯,LED数码二极管只能显示零到九数字和小数点,显示太单纯,容不丰富,难以满足用户的需求,而且显示所占的地方太大,电路设计难,电路图较复杂,随着LCD液晶显示器的出现,人机界面更加人性化、智能化,它能显示数字、汉字和图象,控制LCD液晶显示器也很方便,电路设计也比拟简单;近年来,LCD显示器的普

33、及和微处理器向大容量的开展使嵌入式系统的人机交互功能得到了显著的提高。在下列图中,有八个上拉电阻,电阻R25可调节LCD屏幕的亮度的。图 13 LCD原理图四CPU硬件设计 在这里,我们采用了MCS51单片机,下面对它作一些介绍:1 51单片机的部构造 它的部构造如下列图所示。按功能划分,它由微处理器CPU、存储器、I/O端口、定时器/计数器和中断系统等5局部组成。其中微处理器是单片机部的核心部件,它决定单片机的主要功能特性,微处理器由运算器、控制器和专用存放器图 14单片机的部构造图图1-2 51单片机的部功能模块2 51单片机存储器在物理上,MCS51有4个存储器空间:片程序存储器和片外程

34、序存储器,以及片数据存储器和片外数据存储器。程序存储器用来存放原程序和表格常数,程序存储器是以程序计数器PC作地址指针的。MCS51单片机的程序计数器PC为16位,因此可以寻址到的地址空间为64KB,CPU片和片外程序存储器可以由EA引脚所接的电平来决定,EA引脚接高电平时,程序开场从片程序存储器开场执行,即片程序存储器,当PC直超出片ROM的容量时,会自动转向片外程序存储器空间执行程序。EA为底电平时,将迫使单片机只能执行片外程序存储器中的程序。图 15单片机存储器图图1-3 51单片机存储器映像图3 CPU硬件原理图 在此系统中CPU硬件原理图设计如下:图16 单片机模块工作原理图在CPU

35、核心板中较重要是时钟,时钟是单片机能协调工作的时间基准。时钟电路有两种形式,一种是部方式时钟电路,另一种是外部方式时钟电路。在这里采用部方式时钟电路。部方式时钟电路由部振荡器产生的震荡信号接至部时钟电路,由由部时钟电产生的二分频信号构成了单片机的时钟,并向CPU提供P1和P2两相时钟信号。部振荡器由部反向放大器通过引脚*TAL1和*TAL2与外接的晶体以及电容C1和C2构成并联谐振电路,产生出晶体振荡信号,此晶振信号接至部的时钟电路。晶振频率可在212MKZ之间,外接晶体时,电容C1和C2通常选30PF。对外接电容值没有严格要求,但电容的大小会影响振荡频率、震荡器的稳定性和起振的速度。振荡器的

36、这些特性对单片机的应用影响很大,因此在设计印刷电路板时,应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。五时钟模块我选用的时钟芯片是DS1302,它价格比拟底,使用方面,下面对DS1302作一定的介绍:图 17 时钟模块图DS1302 是DALLAS 公司推出的涓流充电时钟芯片含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进展通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进展通信仅需用到三个口线1 RES 复位2 I/O

37、数据线3 SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302 是由DS1202 改良而来增加了以下的特性双电源管脚用于主电源和备份电源供给Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于 便携式仪器以及电池供电的仪器仪表等产品领域下面将主要的性能指标作一综合实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力31 8 位暂存数据存储RAM串行I/O 口方式使得管脚数量最少宽围工作电压2.0 5.5V工作电流2.0V 时,小于300nA读/写时钟或R

38、AM 数据时有两种传送方式单字节传送和多字节传送字符组方式 8 脚DIP 封装或可选的8 脚SOIC 封装根据外表装配简单3 线接口与TTL 兼容Vcc=5V可选工业级温度围-40 +85与DS1202 兼容在DS1202 根底上增加的特性对Vcc1 有可选的涓流充电能力、双电源管用于主电源和备份电源供给、备份电源管脚可由电池或大容量电容输入、附加的7 字节暂存存储器六红外测速模块图18 红外测速模块原理图测速电路用的是光耦测量转动圆盘引起的脉冲宽度,从而可得单片机的实时速度,精度很高,可达千分之一。用的是外部中断的,在电机带动转盘的时候,转盘上有一个狭缝,只有当转盘到达狭缝的时候,红外线传感

39、器是导通的,平常的时候传感器都处于断开的状态,利用这一特点,我采用外部中断的方式,每次断开的时候采集一个信号,发生中断,每发生一次中断,就让计数器计数一次,以这样的方式来测量电机的转速。具体电路图下:七电机模块图 19电机模块从上图可知,该模块采取的是单片机高电模块驱动,由于单片机的高电平输出的电信号的驱动能力很底,采用了电流放大电路三极管都是电流信号放大元件,如果在输出的地方接一负载电阻就可以变为电压放大,就可以实现由弱电平驱动直流电机。上面的四个二极管是对放大三极管起保护作用,对直流电机也有过压保护作用五、软件设计该程序在总体思想是lcd液晶显示器按照键位的信息显示容,控制电机和红外模块的

40、运行,程序总体设计图如下YES开场系统初始化按键处理有键按下.刷新显示数据通讯NO刷新时间系统初始化设定定时器工作方式设定I/O、键盘和显示接口的工作方式参数及变量初始化返回LCD液晶初始化图20 主程序的流程图 图21 初始化子程序流程图该51单片机在LCD上实现菜单控制系统的软件设计分为以下几个模块:(一)初始化和主程序模块初始化是整个软件开场运行的地方,为软件运行做好铺垫,一开场就需要做一些准备工作,在初始化模块中,需要完成对各接口芯片的初始化、定时器初始化、LCD的初始化,全屏幕清屏、按键查找等工作。在函数Lcminit(8)中实现入下列图两个画面的显示,主程序中还有可扩展的两局部,一

41、局部是对时钟芯片DS1302的初始化,另一局部是采用的温度芯片AD590并对其初始化。程序在下:图22 开机显示图int main(void)/time_init();/定时器初始化 /port_init();/端口初始化 000000000 col=0;row=0;Delay(40);/*延时大约40Ms,等待外设准备好*/Lcminit(8);/*液晶模块初始化,包括全屏幕清屏*/ init_show();/*初始显示*/Init_Ds1302();/wd_main_data( );/温度调用和数据存储函数 jianwei();void init_show(void)col=0;row=2

42、;for(i=0;i4;i+)rowwi=i;Putstr(STR20,10);col=0;row=4; Putstr(STR21,8);/*师大学学院*/Delay(1000);Delay(1000);Delay(1000);col=0;row=2;Lcmcls(row);col=0;row=2; Putstr(STR23,7); /*中国移动*/col=0;row=4;Lcmcls(row);二按键模块延时按键识别数字处理数据转换和处理功能键处理开场有键按下数字键完毕YEYENONO图23 键盘处理子程序流程图按键模块是本程序较重要的局部,采用了键盘扫描程序,即如果在列线上逐行加上一个扫描

43、信号,就可以判断按键的位置,该程序是个常用而较经典,在其中采用了nop空指令和延时函数Delay(1),都是去按键抖动,因为在硬件原理图上没考虑抖动问题,所以对软件设计要求较高。/*/ /* 键扫描函数 */ /*键扫描子程序*/ Uchar keyscan(void) Uchar temp,key1; while(P1=0*f0) ;Delay(1);if(P1!=0*f0) P1=0*0F; /低四位输入 temp=P1; /读P1口 key1=(temp)&0*0F;_nop_(); P1=0*F0; /高四位输入 temp=P1; /读P1口 key1=key1+(temp&0*f0)

44、|0*0f);_nop_(); return(key1); 在按键模块中,还有一个较重要的程序,就是对按键功能的控制,使我们在不同菜单级别按不同的键位得到我们想要的结果,该程序就是把按键的信息存储到KEY中,不0到9数字键的键位信息通过一键位翻译函数翻译为有用的十进制数,kcount=trad(key);并把结果存储在kcount里。menu是菜单级别存储单元,存储的是菜单的级别数,caret1,caret2,caret3是每一菜单级别中菜单的选项数,CARET1是一级菜单的选项数,CARET2是二级菜单的选项数,CARET3是三级菜单的选项数。如图: 图24 menu1=1、caret1=3

45、、caret2=0、caret3=0的显示图由于现在在一级菜单,menu1等于一,我们现在选择的是3:本,所以caret1=3,caret2=0,caret3=0;如果我们进入本菜单中入图:此时menu1等于二,caret1=3,caret2=1,caret3=0。所以menu1,caret1,caret2,caret3四个存储单元就相当于本系统的数据心脏。图25 menu1=2、caret1=3、caret2=1、caret3=0的显示图在void jianwei()函数中的总体构架是采用switch语句编写,这样方便易懂。三显示局部 在此系统的显示局部,要现菜单滚动显示,下面我们对菜单滚动

46、显示窗口的设计方案作以下介绍:为了便于操作,嵌入式系统的人机交互界面需要实现中文窗口界面。用于交互的窗口分为2类:对话框和菜单。对话框的功能是显示参数的输入、输出,菜单的功能是响应操作者的选择,并根据选择运行相应的程序。设计人机交互界面时,首先要根据系统的要求来确定一级及二级菜单项的数量,然后决定每个菜单所对应的窗口,并确定各级菜单之间的联系,从而组成一个树形菜单构造。菜单中的汉字大小为1616点阵,数字和符号的大小为168的点阵。这里模仿DOS操作系统的界面设计,在屏幕的上方显示一级菜单,一级菜单下又包含二级菜单。操作者可以通过方向键以及确认键来选择菜单并确认指令。其中左右方向键用于选择一级

47、菜单,上下方向键用于选择二级菜单,确认键表示选中,取消键表示取消选择。VK55的点阵数240320,其中横向可以最多同时显示5个一级菜单项,纵向可以最多同时显示14个二级菜单项,每个菜单项最多可包含4个汉字。当一级菜单项多于5个时,需使用滚屏功能。窗口使用224320的点阵区域,用于显示数据以及曲线。根据显示的需要,分别选择液晶显示器的显示方式为覆盖显示方式或者重叠显示方式。为了方便数据的安排,系统规定了参数、菜单、窗口及LCD缓冲区的数据构造。1 菜单滚动显示的数据构造为了方便参数的显示和处理,参数的输入输出格式用别离BCD码来表示,即一个字节表示一个数字,数据构造如图5所示。数据长度表示数

48、据区的字节数。正负标志:1表示负数,0表示正数,负数在输入前要在数据前面加上负号-。数据区的每一字节对应于参数的每一位数。数字用别离BCD码表示,小数点用ASCII码表示。数据长度域占1个字节,用来表示整个构造占用的字节数。由于VK55液晶显示器的驱动模块带汉字字库,所以菜单设计不需要考虑字符点阵,只需要将要显示的菜单项的字符的码存在菜单数据构造中。系统的一级菜单及二级菜单的数据构造根本一样,图6所示为二级菜单的数据构造。菜单项依着菜单序号顺次存放,各菜单项依次存放相应的汉字码。菜单的位置存储在另一个菜单位置数据构造中,用于将菜单显示在显示器的相应坐标位置,并控制当前选中菜单项显示状态。由于每

49、个菜单的大小是固定的,所以当操作者按方向键选择不同的菜单项时,在当前菜单项中显示与菜单所占区域大小一样的矩形,同时菜单以其他颜色显示,以表示选中状态。菜单位置数据构造如图7所示。2 人机交互设计人机交互设计的重点在于窗口界面的显示、滚屏、光标的管理以及参数的显示、修改和保存。这里介绍窗口的滚屏和参数的输入输出显示。仅当窗口的一级菜单数大于5的时候,才用到滚屏操作。为提高系统响应的速度,窗口在滚屏时只将新的菜单数据发送到LCD驱动模块,其余4个菜单数据保持不变。每一步相邻的操作,只要将1个即将显示的菜单数据发送给显示模块,即将显示的菜单项点阵数据写入LCD点阵存储区。例如当向右滚屏时,从菜单位置

50、数据构造中找到当前一级菜单序号,根据序号从一级菜单数据构造中检索到该菜单的码,然后将其发送到菜单1的坐标位置处。当向左滚屏时,操作是类似的,不同的是要将新的菜单数据发送到菜单5的坐标位置处。参数的输入输出显示是人机交互界面中的重要环节。显示的参数来自键盘输入或系统部,数据的流向如图8所示。参数依据图5对应的数据格式存放到参数地址所指的存中,然后启动窗口更新即可。假设该参数需要保存,则存入对应的FLASH E2PROM地址中5。本文主要从数据构造的角度出发,结合器件的特点,提出了图形LCD在嵌入式系统中的应用,实现中文窗口菜单,解决参数的输入、显示、修改和保存等问题。文中的方法具有较好的灵活性和

51、可维护性,程序员可以在需要的时候方便地修改原有菜单或者参加新的菜单,而不会影响系统软件的原有构造。3 HD44780简介要对LCD芯片进展编程就必须要了解HD44780的编程构造,从编程角度看,HD44780部主要由指令存放器IR、数据存放器DR、忙标志BF、地址计数器AC、显示数据存放器DD RAM、字符发生器ROMCG ROM、字符发生器RAMCG RAM及时序发生电路构成。指令存放器IR IR用于MCU向HD44780写入指令码,IR只能写入,不能读出。当RS=0、R/W反=0时,数据线DB7DB0上的数据写入指令存放器IR。数据存放器DR DR用于存放数据,当RS=1、R/W反=0时,

52、数据线DB7DB0上的数据写入数据存放器DR,同时DR的数据由部操作自动写入DD RAM或CG RAM。当RS=1、R/W反=1时,部操作将DD RAM或CG RAM送到DR中,通过DR送到数据总线DB7DB0上。忙标志BF 令RS=0、R/W反=1,在E信号高电的作用下,BF输出到总线的DB7上,MCDU可以读出判别。BF=1,表示组件正在进展部操作,不能承受外部指令或数据。地址计数器ACAC作为DD RAM或CG RAM的地址指针。如果地址码随指针写入IR,则IR的地址码局部自动装入地址计数器AC之中,同时选择了相应的DD RAM或CG RAM单元。 AC具有自动加1和自动减1功能。当数据

53、从DR送到DD RAM或CG RAM,AC自动加1,当数据DD RAM或CG RAM送到DR,AC自动减1。当RS=0、R/W反=1时,在E信号高电平的作用下,AC的容送到DB7DB0。 显示数据存放器DD RAMDD RAM用于存储显示数据,共有80个字符码,对于不同的显示行数及每行字符个数,所使用的地址有所不同。字符发生器ROMCG ROMCG ROM由8位字符码生成57点阵字符160种和510点阵字符32种。字符发生器RAMCG RAMCG RAM是为提供给用户自造特殊字符用的,它的容量仅为64字节,编址为003FH。作为字符字模使用的仅是一个字节中的低5位,每个字节的高3位留给用户作用

54、数据存储器使用。如果用户自定义字符由57点阵构成,可定义8个字节。4 HD44780的指令集清屏Clear DisplayRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 0 1 清屏指令使DD RAM的容全部被去除,屏幕光标回原位,地址计数器AC=0。运行时间250KHZ:1.64Ms。归位Return HomeRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 1 归位指令使光标和光标所在位的字符回原点屏幕的左上角。但DD RAM单元容不变。地址计数器AC=0。运行时间250K

55、HZ:1.64ms。输入方式设置Entry Mode SetRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 1 1/D s该指令设置光标、画面的移动方式。I/D=1;数据读写操作后,AC自动加1;I/D=0:数据读写操作后,AC自动减1;S=1:当数据写入DD RAM,显示将全部左移I/D=1或全部右移I/D=0,此时光标看上去没动,仅仅是显示容移动,但从DD RAM中读取数据时,显示不移动;S=0:显示不移动,光标左移I/D=1或右移I/D=0。显示开关控制Display ON/OFF ControlRS R/W DB7 DB6 DB5

56、 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 1 D C B 该指令设置显示、光标及闪烁开、关。D:显示控制,D=1,开显示Display ON,D=0,关显示Display OFF;C:光标控制,C=1,开光标显示,C=0,关光标显示;B:闪烁控制,B=1,光标所指的字符同光标一起以0.4s交变闪烁,B=0,不闪烁。运行时间250KHZ:40us。光标或画面万移位RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L * *该指令使光标或画面在没有对DD RAM进展读写操作时被左移或右移,不影响DD RAM。S/C

57、=0、R/L=0,光标左移一个字符位,AC自动减一,S/C=0、R/L=1,光标右移一个字符位,AC自动加一;S/C=1、R/L=0,光标和画面一起左移一个字符位:S/C=1、R/L=1,光标和画面一起右移一个字符位。运行时间250KHZ:40us。功能设置Function SetRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 DL N F * *该指令为工作方式设置命令初始化命令。对HD44780初始化时,需要设置数据接口位数4位或8位、显示行数、点阵模式57或510。DL:设置数据接口位数,DL=1,8位数据总线DB7DB0, DL=0,4位

58、数据总线DB7DB4,而DB3DB0不用,在此方式下数据操作需两次完成;N:设置显示行数,N=1,2行显示,N=0,1行显示。F:设置点阵模式,F=1,57点阵,F=0,510点阵。运行时间250KHZ:40us。CG RAM地址设置CG RAM Address SetRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 1 A5 A4 A3 A2 A1 A0该指令设置CG RAM地址指针。A5A0=00 000011 1111。地址码A5A0被送入AC中,在此后,就可以将用户自定义的显示字符数据写入CG RAM或CG RAM中读出。运行时间250KHZ:40

59、us。DD RAM地址设置DD RAM Address SetRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 A6 A5 A4 A3 A2 A1 A0该指令设置DD RAM地址指针。假设上午一行显示,地址码A6A0=004FH有效,假设是二行显示,首行址码A6A0=0027H有效,此行址码A6A0=4067H有效,在此后,就可以将显示字符码写入DD RAM中读出,运行时间250KHZ:40us。读忙标志BF和AC值Rrad Busy Flag Address CountRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 B

60、F AC6 AC5 AC4 AC3 AC2 AC1 AC0该指令读取BF及AC。BF为部操作忙标志,BF=1,忙,BF=0,不忙。AC6AC0为地址计数器AC的值。当BF=0时,送到DB6DB0的数据AC6AC0有效。写数据到DD RAM或CG RAMWrite Data to DD RAM or CG RAMRS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0 数据该指令根据最近设置的地址性质,将数据写入DD RAM 或CG RAM 中。实际上,数据被直接写入DR,再由部操作写入地址指针所指的DD RAM 或CG RAM 。运行时间250KHZ:40us。读DD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论