基于单片机的简易触摸屏手机_第1页
基于单片机的简易触摸屏手机_第2页
基于单片机的简易触摸屏手机_第3页
基于单片机的简易触摸屏手机_第4页
基于单片机的简易触摸屏手机_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、本系统是一个基于单片机的简易触摸屏手机。最近几年,手机的发展日新月异,特别是android操作系统和触摸屏的便捷性,使触摸屏手机迅速普及,触摸屏手机将是未来手机的主流配置,此系统就是研究触摸屏手机的工作原理及实现方法。整个系统主要是由STC12C5A60S单片机,SIM300模块,串口触摸屏及一些外围器件组成的,主要功能的实现方法是:先用触摸屏配套PC组态软件和PS软件提前设置好触摸屏的图标和数字键盘等主要显示界面,然后下载到触摸屏的内部存储器中,供触摸屏内部处理;当按下相应的触摸按键后,把触摸屏的内部处理后的数据通过单片机的串口1发送给单片机,之后单片机进行相应的运算处理和判断,再通过单片机

2、的串口2给SIM300模块发送相应的AT操作指令,驱动SIM300模块发送对应的手机信号。通过以上模块,可以实现:接、打电话,接、发英文短信,有来电提醒功能,以及实时时钟的功能。关键词:手机;SIM300模块;串口触摸屏;实时时钟ABSTRACTThissystemisasimplemicrocontroller-basedtouchscreenphone.Inrecentyears,developmentofmobilephonesisveryfast.Especiallybecausetheandroidoperatingsystemandtouchscreenisveryconvenie

3、nt,touchscreenmobilephoneismoreandmorepopular.Touchscreenmobilephoneswillbethemostmainstreamconfigurationinthefuture.ThewholesystemismainlycomposedbySTC12C5A60S2microcontroller,Sim300module,serialtouchscreen,andsomeperipheraldevices.Therealizationmethodofthemainfunctionis:firstlyuseatouchscreensuppo

4、rtingPCconfigurationsoftwareandPSsoftware,settouchscreeniconandnumerickeypadandotherdisplayinterfaceinadvance.Thendownloadtotheinternalmemoryofthetouchscreen,letinternaltouchscreenprocess;Ifthecorrespondingtouchbuttonispressed,sentthedataofprocessedbythetouchscreentothemicrocontrollerviaaserialmicro

5、controller,Thenthemicrocontrollerexecutesthecorrespondingarithmeticprocessingandjudgment.ThenthecontrollersendtheappropriateATcommandtoSIM300modulethroughtheserial2.AndDrivetheSIM300modulesendingmobilephonesignal.Thesystemalsoaddsa1302clockchip,timecanbedisplayedinrealtime.Throughtheabovemodule,this

6、systemachieves:receive,makeaphonecall;Receive,sendEnglishtextmessages.Thereisanincomingcallreminders,andperpetualcalendar.Alsoitcansetthealarmclock.KeyWords:mobilephone;SIM300module;serialtouchscreen;perpetualcalendar1弓I言11.1 课题研究的背景11.2 课题研究的目的及意义11.3 课题研究设想22系统方案研究32.1 方案论证32.1.1 主控芯片选择32.1.2 GSMf

7、块选择32.1.3 触摸屏模块选择42.1.4 时钟模块选择42.2 方案最终选定及系统原理框图53硬件电路设计63.1 STC12C5A60S在控单片机介绍63.1.1 单片机的主要特性63.1.2 单片机弓|脚说明73.1.3 用行口功能介绍83.1.4 STC12C5A60S印片机最小系统93.2 SIM300模块93.2.1 SIM300功能简介93.2.2 SIM300电路原理103.2.3 SIM300串口调试简介113.3 触摸屏模块143.3.1 用口触摸屏简介143.3.2 触摸屏使用方法153.4 RTC实时时钟163.4.1 时钟功能简介164软件设计184.1 Keil

8、软件介绍184.2 编程总结184.3 迪文触摸屏组态软件介绍204.4 本设计的程序流程图224.5 源程序(见附录2)235系统调试过程245.1 单片机最小系统和时钟模块的调试245.2 时钟模块的调试245.3 SIM300模块的调试245.4 串口触摸屏的调试255.5 系统联调26结论27参考文献29致谢30附录1:整体电路图31附录2:源程序错误!未定义书签。1引言1.1 课题研究的背景自从手机出现之后,就给人们提供了极大的便利,从第一代的大哥大手机,接打电话的功能,到后来的GSMf口CDMA?2G手机,性能和功能都更强大一些,安全性也更高,再到现在非常普及的3G智能手机,它的功

9、能已经相当强大;它的主频比普通的2G手机更高了,而且得意于集成电路工艺的发展,以及人们对新颖的移动终端的不懈追求,促进了3G智能手机的快速发展,现在的智能手机不仅有接打电话等语音功能,还安装了操作系统,并且配备了重力感应,摄像头,语音识别等各种传感器,还有手机支付,手机钱包,手机游戏等,更因为触摸屏的方便操作,使手机的功能空前强大,为人们学习、生活和娱乐各个方面都提供了很多的方便,手机已经成为了人们生活中不可缺少的东西,2G,3G手机的发展迅速,而现在4G手机正在一些地区适用,可以说手机是一个更新换代最快的一个物品了。手机的未来发展肯定会向着速度更快,性能更好的方向发展,手机会成为电子行业的一

10、个最热门的话题,手机内部所体现出的东西,也是电子行业未来要研究的主要对象,例如物联网技术,手机如此重要,所以我就想研究一下手机到底是如何做出来的,研究一下它的具体工作原理和开发技巧。1.2 课题研究的目的及意义智能触屏手机的发展现在处于一种井喷的状态,随着智能手机的性能提高,各种手机新应用,手机新功能层出不穷,手机支付,远程遥控,远程监控,移动互联网,可以说一部手机,就能实现我们生活中很多的事情,其实说到底,手机的核心功能就是我们电子方面研究的对象,手机里的相关知识将来应该会逐渐渗透到我们生活中的方方面面,以后电子方面的教学也可能会更多地涉及到手机的设计过程,在将来的各类电子竞赛中也会有这方面

11、的应用,在未来的职场上对我自己的发展也会有提高作用,而且,我看到,网上并没有人做过相似的毕业设计,一般都是成品的手机,我就想自己研究,设计一下,做出一个我自制的手机。研究手机的原理,以及设计方法,可以加深我对微电子行业的理解,也能引领大家研究这方面的知识,因为我还没法发现我们学校的哪个学生做过手机的,手机上的一些思想在未来也会渗透到我们生活中的方方面面,手机上的传感器在前几届的比赛上已经开始崭露头角,现在蓝牙模块,和WiFi信号的大量普及,也会促进通过手机进行的联网和信号的传输,手机作为一个每个人都可以随身携带的物品,必将受到越来越多的电子爱好者的研究开发,所以研究它的原理和使用技巧非常有必要

12、。1.3 课题研究设想通过本课题,我想设计出一款跟普通手机基本一样的触摸屏手机,属于功能型手机。可能体积比实际手机大一些,触摸按键通过功能切换键,可以从数字键盘切换为字母键盘或符号键盘,其他功能上可以实现:1 .拨打任意长度的手机号码。2 .接听任意电话,有来电显示功能,也可以选择不接听。3 .发送英文短信,使对方收到的短信内容和我发送的短信要完全一致。4 .接收英文短信,显示来信联系人电话,准备无误的接收ASCII码中的英文字符短信。5 .显示实时时钟,可以在每个界面的特定位置一直显示年,月,日,时,分,秒,以及星期等信息,跟真正的手机差不多。2系统方案研究2.1 方案论证2.1.1 主控芯

13、片选择方案1:采用最常见的51内核的AT89S52单片机,这是一个低功耗,高性能的CMOS的单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM,32个IO口,2个16位可编程定时计数器。且该系列的51单片机可以不用烧写器而直接用串口或并口就可以向单片机中下载程序。这类单片机发展的比较早,技术很成熟,网上的相关学习资料也比较多,但硬件资源比较少,存储空间比较有限,而且运行速度比较慢。方案2:采用STM3冰实现,它是基于ARMft核的一款,现在非常流行的嵌入式控制器,功能非常强大,处理速度也很快,但是它的内部原理比较复杂,编程的难度

14、比较大,需要非常熟练的编程经验才能熟练使用。方案3:采用FPGA即现场可编程门阵列,它是在PALGALCPLD?可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。方案4:采用STC12C5A60S单片机,STC系列单片机是国产单片机,它的资料都是中文的,比较好学习研究,而且这款单片机是一款仃的单片机,速度方面是普通51单片机的12倍,资源比普通51单片机多,内部集成了8路10位的AD2路PWM4个16位定时器等。而且价格和普通51单片机相差很少。它又是一款双串口的单片机,正好满足我的设计要求

15、。本设计中需要2路串口,且对触摸屏处理速度有一定要求,综合以上方案,选择方案4。2.1.2 GSM模块选择方案1:采用TC35模块,TC35是西门子公司研发的一款高度集成的GSMK块,技术比较成熟,体积小,但是它只有电话和短信的功能,功能比较单一。方案2:采用SIM300模块,它是SIMCO檄司的一款比较经典的型号,低功耗,性价比高,而且功能完善,且有接收彩信和GPRSt网的功能。方案3:采用SIM900A模块,它属于新款紧7型产品,性能比SIM300更加优越,而且采用的是SMT寸装形式,体积更小,但缺点是价格过高。参考本设计要实现的功能和综合性价比方面,最终选择使用方案2。2.1.3 触摸屏

16、模块选择方案1:采用传统的并行触摸屏,价格比较便宜,它是通过时序或指令来控制触摸操作和显示功能的,需要自己写底层驱动程序,和繁杂的图标显示程序,相对比较麻烦一点,编程的工作量会非常大。方案2:采用迪文用口触摸屏,这是一款在近几年工业上用的很广泛的触摸屏,它的原理是基于利用直接变量,并驱动显示,先是通过触摸屏配套的PC组态软件来设计好触控文件和配置文件,然后下载到触摸屏内部处理器中,我只需要设计如何使触摸屏跟单片机之间进行串口通信即可,这种方式可以减少编程的工作量,大大提高本设计的拓展空间。开发原理概述:使用迪文DGUS配置软件将变量和需要实现的功能关联起来,然后通过控制端给该设置的变量赋值来实

17、现对应的功能,或读取变量值来查看屏当前相关功能的状态;变量地址:是针对屏来进行定义的,类似组态软件的地址定义,又不相同,主要区别在于组态软件的地址是有特定含义的(即和屏内部的某个功能已绑定),而采用DGUS屏的变量地址可以与任意功能来进行关联(不出现变量地址交叉的情况即可)。根据编程的任务量,以及本设计的整体安排,综合以上两种方案,选择方案2。2.1.4 时钟模块选择方案1:采用单片机的内部定时器计时,这种方式看似比较简单,节约了成本,但是要用单片机的定时器进行设置,单片机内部的定时器资源本来就不多,而且要用到两个串口,设置用波特率时也要占用系统的定时器,就会造成定时器资源的紧张,若用了定时器

18、,势必会增加中断的处理程序,给编程的复杂性上又增加了难度。方案2:采用DS12C887精度比较高,内部自带锂电池,掉电后时间信息不会丢失,但是价格非常昂贵。方案3:采用串口触摸屏内部自带的RTC模块,通过调用屏上内部的寄存器,就3。能方便的显示时间。综合以上三种方案,考虑方便性及有效性,最终选择方案2.2 方案最终选定及系统原理框图经过反复论证,我们最终确定了如下方案:采用STC12C5A60S单片机作为主控制器。(2)GSM模块采用SIM300模块进行手机通信。(3)触摸显示模块采用的是迪文用口触摸屏模块时钟模块采用屏载RTC真块。系统整体框图如图2-1所示。SIM300模块STC12C5A

19、60S2单片机触摸显示屏图2-1系统原理框图整个系统的原理图,见附录1。3硬件电路设计3.1 STC12C5A60S注控单片机介绍STC系列单片机是一种国产单片机,因为超高的性价比,和方便查询的中文资料而迅速占领了国内很多市场,STC12C5A60S是STC公司生产的一款单时钟机器周期(1T)的单片机,它属于一款高速单片机,可以说是STC公司的一款明星产品,因为它具有低功耗、超强抗干扰的性能,而且指令完全兼容51单片机,只要是有一定编程基础的人,都能快速上手。3.1.1 单片机的主要特性1. 1T机器周期,是一款超高速的单片机,有两种模式,既可以工作在高速模式,又可以工作在普通51单片机的速度

20、模式,可以通过内部寄存器进行设置。2. 工作电压为3.5V-5.5V,可以使用5V或4.5V(三节干电池)供电,但是不能使用3.3V或6V的电源供电。3. 60KB的flash存储器,对于一般的应用程序来说,绝对够用了,所以这款单片机特别好用,不用担心程序太大,放不下的问题,也不会考虑要外扩存储器。4.I0比普通51的单片机多了三种模式,这样更加方便。5 .内部含有MAX81霞位电路,可以方便的为单片机提供复位信号。6 .时钟源:既可以使用外部的高精度时钟,又可以使用内部的RC振荡器作为时钟信号。7 .芯片内部集成了8路高速的AD转换通道,转换精度可达10位,基本能满足一般的使用要求。8 .含

21、有双串口,一般一个串口用来跟模块连接,另一个用口可以用来看调试结果,这个功能对于我的设计来说是太适用了,因为我的两个主要模块都是用串口通信的,这样刚好用上,很方便。9 .外部中断口有7路,除了传统8051外部中断口外,其他外部中断口可以通过设置第二功能进行使能。10 .PWMW2路。11 .8路AD转换接口,10位精度,转换速度可达每秒钟25万次。12 .双用口,可以方便的连结两个串口设置。13 .工业级的芯片,工作时的温度范围是:-4085C。14 .普通51单片机的IO口是只有一种默认的模式,而这款单片机却有四种模式可以定义。15 .还增加了两个定时器,两路PWM还有SPI接口,这些功能大

22、大拓展了系统资源。3.1.2 单片机引脚说明单片机的引脚如图3-1所示。CLKOUT2/ADCO/PLO匚ADC1/P1.1=RxD2/ECLADC2/PL2IZZTxD2/CPP0/ADC3/PL3=SS/CPP1/ADC-VPL4IZZMOSI/ADC5/PL5LZM【S0ADC&PL6匚二SCLK/ADC7/P1.7IZZ_P4,7/RSTCLlNT/RxD/P3.0CLTE/P3.1匚二M:O/P3J2|InT1/P33匚二CLKOL'Tt)/INT/rTO/P34匚CLKOUTl/iNTJJ/PS匚ZWR/P3.6HZRD/P3.7匚二XTAL2CZXTAL1CZGt

23、id匚二1234567891012345678900987654321098765431143333333333222222222二|Vix二IPO.O1P0.1二ZIP0.2=P03二IPOIPO5IPO61P0.71EXLVD/P4.6/RST2二|A国P4.5=NAT4.4二ZIP2.7/A15二IP2&/J4二IP2.5/A13ZUP2HAi2ZZP2J/A1JZZlPZ2/A】0IP2.1/A9nP2.O/A8图3-1STC12C5A60S2单片机引脚图1. P0.0P0.7P0口既可以作为输入输出口,也可以作为地址数据复用总线使用。当P0作为输入输出口时,P0是一个8位准双

24、向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址数据复用总线使用时,是低8位地址线A0A7数据线D0D72. P1.0ADC0CLKOUT2标准IO口、ADC输入通道0、独立波特率发生器的时钟输出3. P1.1ADC1ADC输入通道0o4. P1.2ADC2ECIRxD2标准IO口、ADCt入通道2、PCA计数器的外部脉冲输入脚,第二串口数据接收端。5. P1.3ADC3CCP0TxD2标准IO口、ADC俞入通道3、外部信号捕获,高速脉冲输出及脉宽调制输出、第二串口数据发送端。6. P1.4ADC4CCP1SSjE标准IO口、ADC俞入通道4、SPI同步串行接口的从机选择信号。7. P

25、1.5ADC5MOSI标准IO口、ADCt入通道5、SPI同步串行接口。8. P1.7ADC7SCLK标准IO口、ADCt入通道7。9. P2.0P2.78位准双向口,也可作为高8位地址总线使用。10. P3.1INT0外部中断0,下降沿中断或低电平中断。11. P3.3INT1外部中断0,下降沿中断或低电平中断。3.1.3 用行口功能介绍需要特别介绍一下这款单片机的串口功能,为什么选择这个单片机,最大一个原因就是它的双串口功能。STC12C5A60S含有两个串口,串口1的功能和用法跟普通51单片机的功能和用法差不多,唯一的不同是,因为这款单片机内部含有独立波特率发生器,所以它的波特率设置既可

26、以使用定时器1设置波特率,也可以使用独立波特率发生器来设置;而串口2的工作方式和串口1差不多,唯一不同是波特率的设置只能使用独立波特率发生器来设置,不能使用定时器1来设置。因为P1.2和P1.3在默认状态下是普通IO口,必须设置相关的寄存器后,才能把这两个口设置为串口的工作方式。STC12C5A60S常片机的串口从传统的一个扩展到了两个,而且还增加了一个独立波特率发生器,把定时器1解放了出来,真的不是一般的方便,而且能用仃模式,速度大大滴提高了。因为我主要用到了这款单片机的双串口功能,所以重点介绍一下此单片机的用行口结构。STC12C5A60S隧款单片机有两个串行接口,都是全双工通信,分别叫做

27、用口1,和串口2。它串口1的发送数据缓冲器和接收数据缓冲器公用的是一个地址码,是99H,而用彳T口2的两个数据缓冲区是把9BH作为地址码,用行口1的两个缓冲器统称为我们常见的SBUF而用行口2的两个缓冲区统称为S2BUF.软件想关闭还是硬件。硬件就是在软件串口调试精灵中,点关闭用口。要是软件,你直接关闭串口使能。两个串口都有四种工作方式,可以通过编程来进行设置,有两种是波特率时可变的,两种的波特率是固定的,使用起来非常方便。3.1.4 STC12C5A60S2单片机最小系统STC12C5A60S2单片机的最小系统图如图3-2所示。图3-2STC12C5A60S2最小系统图STC12C5A60S

28、单片机的最小系统跟普通51单片机的最小系统基本没什么区别,也是必须含有复位电路还晶振电路,只是下载方式不同而已,这款单片机的程序下载是通过串口下载,这样更方便。3.2SIM300模块3.2.1 SIM300功能简介SIM300模块四SIMCO檄司的一款非常经典的GSMK块,只要是从事手机开发,或无线传输的编程人员,对这款模块都不陌生,当他投入市场后,因为超高的性价比而备受开发人员的青睐。它的功能比TC35等型号要强大的多,内部嵌入了TCPIP协议,不仅可以实现接打电话,收发短信等普通的语音数据功能,还能实现上网和发送彩信的功能,手机加入了上网的功能,极大的方便了跟外界更多事物的联系,就是上网功

29、能,激发了大家对SIM300模块的研究激情。而且SIM300部分指令兼容TC35的AT指令,这更方便上手,连接互联网的编程方法也很简单,只有是含有外网IP的电脑,跟服务器连接上之后,就能给服务器发信息了。3.2.2 SIM300电路原理1、电源设计:因为GPRSE者GSM发射时需要的电流很大,所以能提供的最大的电流应达到1.2A,在设计中我们是采用外部输入5V的电压,然后经过两个二个1N4007进行钳位降压,使得VDDft3.8v-4.5v之间,或者可以更换为PN结电压较低的二极管SIM300电路图如图3-3所示SIMVDDlOknf4vTJVVRTC15TVDD-LXI17GNDvetVPP

30、RST1/0CLKSIMLARDTei""O.lfiF22f1X3占INLVDU帛LMDAT八1ISIM_CLK33SIMRST25KHR1上HR2KBR3KHR4DBG-TXDV1IIF'VIIClNVBATVBATVHATVBATVBATVBATVBATVBATGNDGNDRNDGNDGNDGNDVRTC'STMPRESENCEVDDEXTP1SPDATASIMYD口DISPCLKS1MT1ATAISPCSS1M_CLKS1MRSTniSP_DCDTSPRSTKBCODCDKBCINFHJGjrrKBC2GP100K3CJPWKEYKBC4BUZZERK

31、BRODTKKBRLRXDKBR2TXDKBR3RTSKBR4CTSEiGRXDRIDBGTXbAGNDAGNDA0(.0MiCIPSPK1PM1CINSPKINMEC2PSPK2PMIC2NoSPK2N111339414345SIM30Qo_4VJ81418DISFDATA20DISE'XLK之4UIXP£JL26D1SF段;丁羽PCDJUJS上fUOHT32GPIOO34(iPHSLPWki:¥北BU££ER铺一债4Q5LM300_RX口43SIM3间XD4&CTS48RI行545PKI_P找SPK1NSPK2P6d$FK工N4V75

32、口39D4IN414K4.7kn47kii图3-3SIM300电路图2、LED指示:用于指示功能,看GSM1块是否工作正常。3、TXD?DRXDg分别连接到SIM300的串口上,CTS1及RTS1这两个端是用于GPRS上网时使用的,可以接,也可以不接。4、TXD1和RXD馁分别连接到SIM300的串口上,CTS1及RTS1端是可以在使用GPRSk网时作为选用,也可以不选用。5、为了节省使用MIC和喇叭,一般把GSM勺音频输入引脚和输出引脚需要通过接到WM971芯片,以便在WM9713t内混合使用3.2.3 SIM300串口调试简介SIM300调试助手包含了几个选项:1 .生产厂商:用于显示设备

33、生产厂商。2 .设备类型:显示设备的类型。3 .SIM卡状态:检查是否接入SIM卡。若接入SIM设备,会显示:+CPINREADY4 .如果SIM卡没有接入则设备显示:+CPINERROR5 .信号质量:显示所接入SIM卡的信号质量,一般显示范围为1-30,显示99则说明没有接入天线或者信号不好。6 .网络信息:显示SIM卡所属的服务商信息。7 .拨号测试:输入指定的号码可以进行拨号测试,8 .接听电话:当串口显示RING字符时,表示有电话接入,按下接听电话键就可以接听电话了。SIM300的串口调试助手的界面如图3-4所示。wstm定遇区匕白劭辎1手动也送11.十小的i继跄送更件而拓零通也出H

34、两!田莉雨口A;3EH乐赛宣强父胖日丽盘推文件中STATUS;com0p«m4变00Von«61Rx;OTr0生产I高仓缶皿避小序W谭善初的牝4蚱制|0号/景网箱僭.测试拨打电话J”同壮星母沮IfFt播事面活值.1?*一在为去内容后的,祖树试E,如以10叫事判是我皂蒿店接转加田坛揍NJM行开口酢女医翔艳自荐地址m地址纣jMWL”*口皿图3-4SIM300专用测试软件9 .GPR阳能区:用测试GPRS3络连接的连通性、可以发送数据。下面再简单举一个例子:如何用用口调试助手拨打电话一、拨打号码:10086例:如图3-5所示,首先在申口输入区输入“ATI”,然后加回车,点发送,要

35、是在用口接收区接到如下图所示的信息,说明测试成功,可以进行下一步的操作。如图3-6所示,在指令区输入ATD10086;(不能少分号)后再接回车键,点”发送”,指令功能:给10086拨打电话,若收到+COLP:10086”,129表示呼叫号码成功,若返回的不是这些字样,则说明示呼叫失败,需重新呼叫,若返回了NOCARRIER则表示呼叫失败或对方已挂断。图3-5SIM300模块好坏测试图3-6SIM300打电话测试3.3 触摸屏模块3.3.1 用口触摸屏简介本设计采用的触摸屏是迪文串口触摸屏,也称为DGU解,因其极高的性价比,使迪文屏在业内享有很好的口碑,这款产品是主动智能屏,与市面上大多数底层驱

36、动式的串口屏不同。模式实物如图3-7,3-8所示。图3-7迪文触摸屏正面图SD芯口HC接口RTC电池(参数配置、字库和图片下载框接地选择I1R电阻一扬声器接口(128段语音播放)一用户接口(串口、供电)K600+内棱触摸屏TFT液晶屏鸣器(DGUS运行硬件平台图3-8迪文触摸屏反面图传统的LCM一般都是通过时序来控制显示的,而迪文屏采用直接变量驱动显示方式,只要预先把变量配置文件配置好,直接下载到触摸屏内部处理器里,就可以实现所有的显示和操作了。使用DGU郁,各种看似复杂的开发,不论是全图形的界面,或触摸屏各种输入法,艺术字或者是调节拖动滑块,或者是多菜单操作,显示曲线、信息等等都可以用DGU

37、S1来解决,这样,就能节省出程序员大量的时间来进行界面或特殊屏幕功能的创新设计。它内置脚本,用来执行控制内核,所有UI由预先的脚本来描述,并采取独立运行加上互动式人机交互,根本不需要主机的参与,还有一个突出特点是速度非常快。它采用TMLW本文件来描述UI,UI数据是与客户主控程序进行分离的,这样的话,可以快速实现复杂的UI,并且支持多国语言字库,甚至在现场都能进行快速修改。与主机通信非常简单,用三条控制命令就能搞定:取变量值、设置变量、远程命令调用。3.3.2 触摸屏使用方法总的来说,迪文触摸屏的工作原理是基于文件配置来做的,就是使用PC配套的软件先把各种图形,图标,变量,数据分配好,分配到不

38、同的配置文件中,然后下载到存储器里,直接进行调用。基本开发主要有以下几个流程:1 .变量规划一般是使用Excel表格来存储自己设置的变量,并进行相应的记录注释,这样方便查阅,不容易混乱。2 .界面设计就是设计自己所要用到的图标,图标,滚动条,一般是使用PhotoShop软件,进行美化设计,在设计时,有一个地方需要注意,因为这款触摸屏的颜色是65K色的,所以需要把PS软件的调色板设为65K色,这样才能成功显示。3 .界面配置这一步很重要,主要是通过迪文自己研发的专业的工具软件,把上一步的图形配置到固定的文件里,生成触摸配置文件,这个文件主要处理检测触摸按键是否被按下了,和变量的配置文件,这个文件

39、主要用于处理一些数据变量的输入及显示功能,触摸屏的整个操作就是通过这两个文件来处理的。4 .测试修改把上一步的两个配置文件,以及第2步里做出的图片,设计的图标库,以及自制的字库文件都通过SD卡下载到迪文屏上,迪文屏就是通过SD卡的数据进行操作的,按照固定的顺序进行界面测试,有问题的话,重新修改前面的几步,再把自己的主控芯片用串口跟迪文屏连到一起,进行数据联调,看跟自己的要求是否相符,若有问题,再调试主控芯片的程序以及触摸屏的配置文件。3.4 RTC实时时钟3.4.1 时钟功能简介本款迪文触摸屏自带RTC模块,内部已经集成到主控器内,通过用配套的迪文开发组态软件,配置相应的界面和按钮,就能很方便

40、地显示出时间,最多可以显示年,月,日,时,分,秒,星期等信息,而且这七个信息可以任意组合设置,只显示其中的几个信息也是可以的,这样我在每个界面都能显示出时间,因为它是基于变量地址的,并不会局限于只在某一页显示,正好符合我制作简易手机的要求,还有一个好处,只要一次设置了RTC时钟,即使系统掉电,时间信息也不会消失,因为屏上还带了一个备用电池,时间信息可以保存两年,且按照内部的计数一直正常计时。当再次上电后,跟真正的时间也是一致的4软件设计4.1 Keil软件介绍Keil软件是AR泌司旗下的一款比较通用的编程软件,Keil软件因为其良好的界面,方便的操作,而且它适用于我们很多常用的单片机,所以它的

41、普及率比较高。Keil软件有两种版本,一种是用于C51编程的,一种是用于ARM®程的。Keil软件的使用也是很方便的,如何新建一个工程的步骤很经典,一般都是新建工程,然后选择芯片,接着新建文件,并把新文件添加到工程中,并把工程和文件保存一下,就行了。Keil软件还有软件仿真的功能,当程序出现问题时,又没有硬件来调试的时候,就可以使用软件仿真的功能,进行调试。通过选中debug按钮,就切换到软件仿真功能,仿真里主要有运行,暂停,停止,单步运行,过程单步等几个操作,还能调出寄存器窗口,在单步运行时查看每一步操作后各个寄存器值的变化。这样可以很方便的发现程序出问题的地方。4.2 编程总结1

42、 .定义1位的变量时,例如各种标志位flag,养成习惯,用sbit定义,不要用uchar。2.52单片机是有三个定时器的,一定要有心。3 .除法运算(即取模运算)既适用于整数,又适用于小数,而取余运算只能用于整数。4 .全局变量是一个很重要的概念,它可以起到函数间联系的桥梁作用。所以设计人员习惯把全局变量的第一个字母大写,这样可以与函数中的局部变量和形参区分开,就像华哥那样。5 .SPI:高速同步用行口。34线接口,收发独立、可同步进行。6 .#defineWRST_H,这个语句的作用是起注释说明的作用。7 .c语言中定义变量时,若未赋初值,系统自动赋初值0(对数值型变量)或空字符(对字符变量

43、)8 .用sprintf函数输出两位整数的方法是sprintf(tab2,"%3.0f",(float)temp);还可以用sprintf(tab2,"%d",(int或uint)temp),关键是temp的类型必须是整型,而是uchar就不行。9 .格式化输出的技巧:7.2f表示输出格式为一共7歹即7位,小数点后是2位。10 .原来数据是先传高位还是先传低位,直接在芯片手册里就能看到,在最左边的就是第一个要传的数据。11 .精益求精,持之以恒。12 .程序最好写流程图。13 .调试出现错误时,先查硬件!再查软件。14 .各种时序图,例如18b20的初始

44、化,就好像是密码,只有输入密码正确,你才能操作它。15 .注意P2口的接口顺序跟另外三个有所不同。在汇编语言里,单片机中逻辑非是CPL指令,微机里是not指令。16 .atmel单片机跟stc单片机的区别:1)P0口是否要接上拉电阻2)前者是用用口下载,后者是用SPI下载。17 .在程序中位定义跟字节定义是不一样的,例如SCONJ存器中位定义跟字节定义的差别就很大,因为顺序会有问题。18 .即使是定义了初值的数组,它里面的值也是可以改变的。19 .想要打印东西的空数组可以这样定义:uchartab32。20 .函数尽量都定义为有返回值的,这样便于模块化编程。21 .其实软件仿真很重要,比如12

45、864的读写时序,即各种其它外围器件的初始化都应该先用keil软件仿真一下,因为在不同的晶振频率下,各条指令的执行时间久不一样了。22 .单片机一共有16根地址线,所以最大能扩展64K的ROMRAM23 .网上不会有那么多现成的资料,需要靠自己用脑子去思考,通过零碎的资料来逐步推理出自己想得到的东西。24 .单片机内部资源的熟悉程度,读芯片手册的能力,网上收集并归纳整理资料的能力,编程的逻辑能力,画流程图的能力,编程的条理不乱能力。25 .写程序需要非常严谨的思维,所以平时也要养成严谨的习惯。26 .其实位数多的单片机跟8位单片机也没多大区别,操作时还是以8位为基准进行移位操作的。27 .以后

46、写东西,养成从0开始的习惯,例如0127,不要从1开始。28 .单片机的电源和地之间也应该加滤波电容,华哥他们公司,实际工业上做东西,必须滤波电容。29 .写程序前,最好先写流程图,写程序时应随时加上注释,就像GSMK频里的哥们,这样的好处是不会乱。30 .任意单片机的都可以用串口通信的,只要电平特性一样,例如都是TTL电平,再者需要波特率一致。31 .调军哥的毕设时,进行串行通信时,我自己刻的电路板插上12的单片机,就不好使,但插上普通的stc52或55的单片机,就好使,说明我的电路板做的不适合12的串口传输。4.3迪文触摸屏组态软件介绍1 .本软件是基于迪文DGUS屏开发的配套软件,可以帮

47、助用户快捷方便的进行用户界面及功能设计。DGUS软件采用工程文件的管理方式,对每一个应用进行分别管理,用户可以很方便的添加新的应用以及对以前的应用进行修改维护,满足客户应用的升级和调整的需要。2 .把GUI设置分解成控件并按页面来配置,控件显示直接由变量配置按钮控制;在通过软件配置好,生成控件文件(14.BIN)下载到DGUS屏后,用户仅仅需要通过串口改写变量值即可实现控件显示的相应改变。比如,要在某个页面显示两位小数(25.00)的温度值,分两步开发完成:Step1配置:借助迪文提供的PC组态开发软件,在相应页面位置添加一个数据变量控件,设置好显示格式(字体大小、显示颜色、单位、小数点长度、

48、数据源、数据类别),预览OK后通过SD卡把生成的控件文件(14.BIN)下载到DGUS屏。Step2运行:用户软件只需要定时(或者参数变化时)把温度值通过用口刷新到对应的数据源地址,当显示切换到对应页面时,屏幕就自动按照预先设定显示格式显示出来。触摸屏或键盘录入控制,通过软件在页面定义上相应位置上添加触控配置按钮,生成触控文件(13.BIN)来控制。比如,要在某个页面用触摸屏录入显示两位小数(25.00)的设定温度值,分两步开发完成:Stepl配置:借助迪文提供的PC组态开发软件,在相应页面位置添加一个变量数据录入控件,设置好录入格式(字体大小、光标模式、显示颜色、小数点长度、数据源、数据类别

49、),预览OK后通过SD卡把生成的控件文件(13.BIN)下载到DGUS屏。Step2运行:当切换到对应页面,并按压触摸屏触发相应控件,DGU必自动完成录入过程。用户软件只需要定时(或者配置为录入完成自动用口下发给用户)查询录入值即可。另存为功能,能自动转换图片格式和大小,是不同格式的图片文件转换为符合DGU并使用的BM昭式文件,并支持图片偏转90°保存。另存后的DWIN_SET目录中包括工程中所需的所有文件,可以直接通过SD卡下载到DGUS屏中使用;配置按钮的预览功能,能方便用户对所设的配置按钮进行预览,检测设置的效果。另存为功能,能自动转换图片格式和大小,是不同格式的图片文件转换为

50、符合DGUS屏使用的BM昭式文件,并支持图片偏转90°保存。另存后的DWIN_SET目录中包括工程中所需的所有文件,可以直接通过SD卡下载到DGUS屏中使用;配置按钮的预览功能,能方便用户对所设的配置按钮进行预览,检测设置的效果。变量查看及按钮命名功能,可使用户进行应用设计时一目了然,点击地址时可进行排序,方便用户检测地址设置是否符合设计要求;能把以前的13触控、14变量配置文件直接导入到工程中,提高用户应用的延续性。分辨率变化时,页面上设置的按钮可按比率自动缩放大小,这样可使一套应用方案可直接应用于不同大小(分辨率)的屏。其软件界面如图4-1所示。图4-1迪文组态软件配置界面4.4

51、本设计的程序流程图程序流程图,如图4-2所示图4-2程序流程图4.5源程序(见附录2)5系统调试过程5.1 单片机最小系统和时钟模块的调试最小系统是做的板,最开始我对原理图做了详细的考虑后才确定最终导入pcb中,用热转印机转印时可能是因为温度不够高的原因,转印完后发现,部分线没有印上,后来又重新转印了一次,之后进行腐蚀,腐蚀的效果还可以,最终就有几根线有隐隐约约的断线,被我发现后,我就把这些线又连上,之后就下载了原来做过的一些简单的控制流水灯的程序,还可以,都能实现功能,说明最小系统,这一部分是没有问题的。5.2 时钟模块的调试因为我原来看过郭天祥前辈的视频讲解,做过一个时钟,所以就想先把这个

52、时钟调出来,等其他模块好了之后,再加入闹铃的功能。但是下载了好几遍程序,总是没有一点反应,我想应该不会是程序的问题,因为这些都是原来总结好的程序,那就是硬件的问题了,说明我刻的板的这一部分有点问题,经过我的反复检测,原来是因为我在画DXP图时,添加网络标号时,把5脚,6脚的网络标号给弄错了,之后把PCB板连错的线,弄断之后,又把线给改过来,再下载了一遍程序,就能正常工作了,那个兴奋呀,这种解决问题后的喜悦感,只有真正喜欢电子的人才会体会到。5.3 SIM300模块的调试SIM300模块是从网上买的一个模块,店家给了一些例程,我拿回来,弄到自己的普中单片机开发板上,试验了几个程序,都是好使的,说

53、明模块没有问题,之后我就开始学习SIM300的AT指令,先在电脑上用用口调试助手熟悉接打电话,收发短信的具体操作流程,接打电话比较简单,但是收发短信的过程比较复杂,稍有不慎,就会失败。等这些熟练后,我就开始用STC12C5A60S进行编程,编程还是比较简单的,跟发AT指令差不多,就是通过用把STC12C5A60S2SIM300模块连接起来,然后调试时我发现有时买的SIM300模块并不稳定,经过多次经历,和分析后,我才找出问题,好像是因为两根串口线跟SIM300模块挨得太近的话,就可能出现发不出信号的问题。后来解决掉这个问题后,一切都正常了。5.4 串口触摸屏的调试触摸屏的调试应该说是最难的部分

54、,最开始我是先用矩阵键盘进行简单的调试,矩阵键盘的程序做好了,移植到触摸屏上,也好用,我用矩阵键盘实现了可以拨打任意号码的电话,而且可以发送英文短信,因为我的矩阵键盘的键盘通过功能键的设置,可以设置为不同的键值,就好像真正的手机一样,当按下#键后,就可能从数字键盘切换到字母键盘。后来听别人说用口触摸屏比较好操作,我就果断放弃了使用普通驱动式触摸屏的想法,买了一块串口的触摸屏,这种触摸屏只需要在电脑上进行相应的图标设置,和变量设置,下载到触摸屏板子上后,直接就能使用,我按照说明书的步骤操作了之后,下载后一试验,真的实现了触摸屏的功能,让我有点喜出望外,触摸屏很挺灵敏,基本能按照我的设置,按下某个触摸键后,就能执行相应的操作。触摸屏设置的主界面如图5-1所示。图5-1触摸屏显示主界面5.5 系统联调上面的分模块调试好之后,我就开始想着把所有模块进行联调,先是实现在触摸屏上显示实时时钟的功能,经过设置位置,我把时钟设置在了最上面,即使刷屏时也不会改变,这个功能基本实现了。之后就是把SIM300模块跟触摸屏的程序结合起来,难点就是我没按下一个触摸键后要及时把这个键值对应的编码储存起来,不管是打电话,或是发短信,等所有按键按下后(例如电话号码),就开始发送串口指令,执行相应的操作。再有就是来电显示的功能,这也是一个难点,这是需要设置专门的

温馨提示

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

评论

0/150

提交评论