基于单片机的可编程作息时间控制器设计说明_第1页
基于单片机的可编程作息时间控制器设计说明_第2页
基于单片机的可编程作息时间控制器设计说明_第3页
基于单片机的可编程作息时间控制器设计说明_第4页
基于单片机的可编程作息时间控制器设计说明_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、word格式.大学能源与动力工程学院题目:可编程作息时间控制器设计课程:单片机原理及应用课程设计专业:电气工程及其自动化word格式.第一部分单片机原理及应用课程设计任务书一课题名称详见单片机课程设计題目(一):主要是软件仿真,利用Proteus软件进行仿真设计并调试; 单片机课程设计題目(二):主要是硬件设计,利用单片机周立功实验箱进行设计并调试。二、课程设计目的课程设计是课程教学中的一项重要容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它 对帮助学生全面牢固地掌握课堂教学容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的 意义。单片机原理及应用是一门理论性、实用性和

2、实践性都很强的课程,课程设计环节应占有更加重要的 地位。单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机 多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与 实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排 错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。为今后能够独立进行某些单片机 应用系统的开发设计工作打下一定的基础。通过单片机硬件和软件设计、调试、整理资料等环节的培训,使 学生初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践

3、的程序和方法。三、课程设计容设计以89C51单片机和外国元器件构成的单片机应用系统,并完成相应的软硬件调试。1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课題的任务 要求和条件 进行总体方案的设计。2. 硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计 算,并画出总体电路图。3. 软件设计:根扌居已设计出的软件系统框图,用汇编语言或C51编制出冬功能模块的子程序和整机软 件系统的主程序。4. 调试:在单片机EDA仿真软件环境Proteus下进行仿真设计并调试;或在单片机周立功实验箱上进 行相关设计并调试。四、课程设计要求设计一个以单

4、片机为核心的可编程作息时间控制器:按照给定的时间模拟控制,实现广播、上下课打铃、 灯光控制(屏幕显示),同时具备日期和时钟显示。word格式.序号天数1布置任务,熟悉课趣要求0.52总体方案确定,硬件电路设计1.53软件编程1.54Proteus仿真,或在周立功实验箱上调试25总结,撰写课程设计报告1.5七、课程设计报告容:总结设计过程,写出设计报告,设计报告具体容要求如下:1 课程设计的目和设计的容。2课程设计的要求。3控制系统总框图及系统工作原理。4控制系统的硬件电路连接图,电路的原理。5软件设计流程图及其说明。6电路设计,软件编程调试中遇到的问趣及分析解决方法。7实骑结果及其分析。8 体

5、会。word格式.word格式.第二部分课程设计报丿筍 1 1 1 7 目 0 11.2课題要求12可编程作息时间控制器方案设计121 纟了卜纟召122系统擊体扌匡图12.3系统工作原理13可编程作息时间控制器硬件电路及芯片介绍23.1 AT89C51 单片机23.2 1602LCD液晶显示器33.3其他重要元件43.4硬件电路设计图54可编程作息时间控制器软件编程设计541 系统初始彳匕54.2系统时间校正643系统时间设定/4. 4作息时间设定74. 5响铃处理94.6逻辑控制104.7 1602LCD 液晶显示115实验与结果分析115.1实验的调试115.2实验的结果125.3实验的问

6、题146小结与体会15word格式.1课题简介1.1课题目的由单片机AT89C51芯片和LCD显示器,辅以必要的的电路,构成一个可编程作息时间控制器。电子钟采 用采用单片机来完成,LCD显示“时”,“分”,LED闪动来做秒计数,定时时间到能发出相应的提示、从而能 够实现作息时间控制。现在是自动化高度发达的时代,特别是电子类产品都是靠部的控制电路来实现对产品 的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。1.2课题要求(1) 在kcil uVision和protcus上编写软件完成设计。(2) 以AT89C51单片机为核心结合字符型LCD显示器的可编程作息时间控

7、制器。(3) 按照给定的时间模拟控制,实现广播、上下课打铃 灯光控制(屏幕显示),同时具备日期和时 钟显示。(4) 上机调试程序。(5) 写出设计报告。2可编程作息时间控制器方案设计2.1系统总体介绍可编程作息时间控制器是由简单的一路闹钟的基础上增加至四路可调闹钟,从而实现依次执行作息时间 的提醒任务。系统主要是由时间程序和闹钟程序所构成,由显示模块、时钟模块以及闹钟模块三大部分组成。 其中时钟运算模块要对时、分、秒的数值进行操作,并且秒算到60时,要自己清零并向分进1 ;分算到60 时,要自己清零并向时进1,时算到24时要清零,这样,才能循环记时。并在不同状态下使得四个按健有 着不同的功能,

8、从而实现系统时间的调整,同时可以在不同状态下可以调整闹钟的时间。当定时到达时LCD 将显示出现在的闹钟是哪一路,响铃一分钟,并可以通过按縫提前结束闹钟,恢复到时间显示状态。2.2系统整体框图LCD显不TT2.3 A统工作原理使用AT89C51单片机结合字符型LCD显示器设计一个简易的可编程作息时间控制器,若LCD选择有背光 显示的模块,在夜晚或黑暗的场合中也可使用。程序轨行后工作指示灯LED闪动,表示程序开始执行,同时word格式.显示系统时间。作息时间控制器是由4路可调闹钟组成,从而实现打铃等功能。当四路闹钟中的任一路到时, 均会点亮灯、打铃。其中操作键K1K4的功能分别为:设置限制的时间/

9、时的调整、显示闹钟设置的时间/ 分的调整、设置闹钟的时间/设置完成、闹钟更换。3可编程作息时间控制器硬件电路及芯片介绍系统主要是由AT89C51单片机、1602LCD液晶显示器以及其他重要元件组成,按键作为系统的控制输入 端,可以进行时间、闹钟等容的设定,并通过液晶显示器显示出时间等容。3.1 AT89C51 单片机本设计的核心硬件就是8051芯片,这里选择了 AT89C51,AT89C51是一种带4K字节闪烁可编程可擦徐只 读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CM0S8 位微 处理器,俗称单

10、片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集 和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中 ATMEL的AT89C51是一种高效189-屮XTAL1XTAL2RSTPO.O/ADO PO 1/AD1 PO 2/AD2 PO 3/AD3 P0.4/AD4 P0.5/AD5 PO 6/AD6 PO 7/AD7 3937363729-4巾PSENALE EAP2.0/A8P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13P2.6/A14P2.7/A15 21 22二 2425 2627 28P1.

11、0 P1 1P1.2P1.3P1.4P1 5P1 6P1.7P3.O/RXD P3 1/TXD P3.2/INT0 P3.3/INTTP3.4/T0P3.5/T1P3.6/WRP3.7fRD 143117ZXT89C51微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案-图3.1 AT89C51引脚图引脚及其功能:P0 口: P0 口为一个8位漏级开路双 向I/O 口,毎脚可吸收8TTL n电流。当P1 口的管脚第一次写1 时,被定义为高阻输入。P0能够用于外部程序数振存储器,它可以被定义为数扌居/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P

12、0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一个部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收输出4TTL II电流。Pl 口管 脚写入1后,被部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘word格式. 故。在FLASH编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输出4个TTL门电流,当P2 口 被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输 出电流。这是由于部上拉的缘故。P2 口当用于外部程序存储器或

13、16位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址1 a寸,它利用部上拉优势,当对外部八位地址毀据存储器进行读写时, P2 口输出其特殊功能寄存器的容。戸2 口在FLASH编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是8个带部上拉电阻的双向I/O 口,可接收输出4个TTL门电流。当P3 口写入“1 后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这 是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下所示:P3 口管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输

14、出口)P3.2 /INTO (外部中斷0)P3.3 /INT1 (外部中斷1)P3.4 T0 (记时器0外部输入)P3.5 T1 (记时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST :复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期 间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的

15、脉冲或用于定时目的。然而要注意的是:毎当用作外部数据存储器时,将 跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,HOVC指令 是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN :外部程序存储器的选通信号。在由外部程序存储器取指期间,毎个机器周期两次/PSEN有效。但 在访问外部数扌居存储器时,这两次有效的/PSEN信号将不出现。EA/VPP :当/EA保持低电平时,则在此期间外部程序存储器(OOOOH-FF吓H),不管是否有部程序存储 器。注意加密方式1时,/EA将部锁定为RESET :当/

16、EA端保持高电平时,此间部程序存储器。在FLASH编程 期间,此引脚也用于施加12V编程电源(VPP)oXTAL1 :反向振荡放大器的输入及部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。P1.0 口接 K1 按縫,Pl. 1 口接 K2 按健,P1.2 口接 K3 按犍,P1.3 口接 K4 按键,P2. 0 口接 RS 口,P2.1 口接RW 口,P2.2 口接E 口,P2.3 口接发光二极管D2阳极,P2. 4 口接发光二极管D1阳极,P2. 5 口接电阻 R3,P3 口的8个口依次和LCD的数据口 D0-D7.3.2 1602LCD液晶显示器LM016L液晶模块采用HD447

17、80控制器。HD44780具有简单而功能较强的指令集,可以实现字符移动、 闪烁等功能oLM016L与单片机MCU (Microcontrollcr Unit)通讯可采用8位或者4位并行传输两种方式。 HD44780控制器由两个8位寄存器、指令寄存器(IR)和数据寄存器(DR)也标志(BF)、显示数振RAI(DDRAM)、 字符发生器ROM (CGROM)字符发生器RAM (CGRAM)地址计数器(AC)。IR用于寄存指令码,只能.写入不 能读出;DR用于寄存数据,数据由部操作自动写入DDRAM和CGRMI,或者暂存从DDRAM和CGRAM读出的数 据。BF为1时,液晶模块处于部处理模式,不响应

18、外部操作指令和接受数据。DDRAM用来存储显示的字符, 能存储80个字符码。CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种,8位字符编word格式.码和字符的对应关系,可以査看参考文献3中的表4 - CGRAM是为用户编写特殊字符留用的,它的容董仅64字节。可以自定义8个5*7点阵字符或者4个5*10点阵字符。AC可以存储DDRAM和CGRAM的地 址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或者CGRAM单元。LM016L液UCD1LIV1O1 6L vTEXTaI j4496|二J 口 JS 3.2 LCD1602 引脚图晶模块的引

19、脚功能见表:第I脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数扌思寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时 可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时 可以写入数損。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8

20、位双向数振线。将respack-8的I 口接电源,28 口顺序和P3 口相连接,并和LCD的数据口 D1-D7相接,VSS接地,VDD 接电源,VEE接滑动变阻器,RS 口接P2.0 口,RW 口接P2. I 口,E 口接P2.2 口。3.3其他重要元件(I)独立式诫盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这word格式.时,可将每个按键接在一根I/O接口线上,这种方式的连接称为独立式键盘。毎个独立式按键单独占有一根 I/O接口线,每根I/O接口线的工作状态不 会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件 结构简单,但每个按健必须占用一根I/O接口

21、线 I/O接口线浪费较大。故只在按键数董不多时采用这种按 縫电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电 平。当I/O接口部有上拉电阻时*外电路可以不配置上拉电阻。(2) 蜂呜器:将蜂鸣器的一端电源,另一端接至晶闸管集电极,当需要闹钟响时,P2.5将发出有规律 的电平使得晶闸管导通,从而使得蜂鸣器发出声响。(3) respack-8:上拉电阻键K1-K4分别与单片机的P1.0-P1.3 口相接。3.4夜件电路设计图D2H.C.r CHHR忡I冲忡啊斓郦ina.irrw rjj&Tncfna PE ra/iTFaa.w a vaoi,2.8ar/

22、AorClI I 一E vvTT-W图3.4系统整体电路图将respack-8的I 口接电源,2-8 口顺序和P3 口相连接,并和LCD的数据口 D1-D7相接。发光二极管D1和P2.4 口相连接用以显示秒计时,发光二极管和P2.3 口相连接用以显示闹钟时的广播,按键K1-K4分别 与单片机的P1OP13 口相接 以实现按键的多功能使用。4可编程作息时间控制器软件编程设计可编程作息时间控制器软件编程主要包括系统初始化、系统时间校正、系统时间设定、作息时间设定、 响铃处理、逻辑控制以及1602LCD液晶显示,整个程序中响铃的合理处理以及显示部分是核心部分,只有处 理好闹钟的及时响应才会使得整个可

23、编程作息时间控制器按照预定的设计进行工作,同时各个模块逻辑上合 理分配又将是整个功能实现的基础-4.1系统初始化sbit rs二P20;sbit rw二P2l;sbit lcdcn二P2 2;sbit LED2二P23;sbit K1=P1O;sbit K2=PK1;sbit K3=P12;sbit K4=PK3;word格式.sbit 1cd二P24;THO=(65536-50000)/256;sbit becp=P25;TL0=(65536-50000)%256;此段程序主要是是定义电路的外部接口,包括K1-K4按健,LCD的rs 口、rw 口、广播控制端LED2、发 光二极管控制端led

24、以及蜂鸣器控制端beep。将定时器0的工作模式选择为工作方式1,同时给定时器装初 值 并且开始计数。4.2系统时间校正miao=0;fen 卄;if(fen=60)fen=0;shi+;if(shi=24)shi=0;lwrite.sfm(9 shi);图4.1系统时间校正流程图 程序:TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;if(aa=20)(aa=0;miao+;if(iniao=60)word格式.write.sfm(12, fen);首先初始化时定时器开始工作,当计时时间到时进入中斷服务,由于方式1没有自动装初值的功能,因 此需再

25、次装入初值*每一次所定的时间为50ms,通过软件计数的方法,当计数达到20次时刚好I秒钟,如 果计数不到20次,则再次给定时器装入初值,直到计数达到20次,把计数初值淸零,并再次向计数器装初 值*重复执行之前操作,同时分加一 *并显示1如果分为60时则不显示,先清零然后将时加一,再显示分, 如果时不是24时,则直接通过LCD显示出来,如果时刚好为24时,则现需要淸零,然后在用LCD显示出来。 4.3系统时间设定图4.2改变小时流程图 程序:if(Kl=0) while(!Kl) TR0=0;if(Kl=0) shi+;if(shi=24) shi=0;if(K2=0)图4.3改变分钟流程图wh

26、ile(!K2); fen+;if(fen=60) fen=0;if(K3=0)TRO二1;当KI被按下时,则修改系统的的时间,同时定时器停止工作。开始时,光标停留在分钟上,当再次按 下K1时,光标将会跳到小时并且小时位的时间将会加一,如果时位的数等于24时,则自动清零,从零开始再往上加,如果按下K2键按下则分钟自动加一,如果分钟达到60时则自动清零,从零开始往上加,并通 过LCD显示出此时的状态。当按下K3键时,则退出系统时间的更改 并启动定时器工作,开始通过LCD在 第二行显示出修改后的时间。此程序主要的作用就是通过人为的方法来设定系统的时间,使得系统时间满足实际需要。4.4作息时间设定w

27、ord格式.图4.4改变闹钟定时小时流程图图4.5改变闹钟定时分钟流程图 程序:if(K3=0)while(!K3);write.sfm(12, fcnl );write.sfm(9, shi1):if(K2=0)write_sfin(12, fcnl);write.s伽(9, shi1):while(!K2);write-Sfm(12, fen);write.sfm(9, shi);if(Kl=O)while(!Kl);shil+;if(shi2=24) shil=O: write.sfm(9 sh订); if(K2=0) while(!K2);fcnl+; if(fenl=60) fenl

28、=O;write-sfm(12fcnl); if(K3=0) write.sfm(12 fen); write.sfm(9, shi);由于可编程时间控制器是由四路闹钟构成的,所以只要通过逻辑上的先后顺序便可以实现,并且这四路 闹钟设定上都是相同的,因此在这里将四路闹钟选择其中的第一路做介绍。当通过K4縫进入闹钟设定电路word格式. 后,如果处于广播的闹钟时间设定时,此时如果没有按下任何开关键 LCD将显示此时的闹钟标志“GB”并 且再其后面显示现在的系统时间,在没有按下K3键之前,如果按下K2键,则LCD将显示此处闹钟时间,并 且在其前面有此路标志,如GBm,松开按健K2时,LCD将显示之

29、前的状态;如果按下首次按下K3键,则开 始修改闹钟的时间,此时光标在分钟上闪烁,此时按下K2键则修改闹钟的分钟,如果分等于60时,则自动 清零,否则继续往上加;如果按下K1键则修改闹钟的小时,如果小时数等于24,则自动清零,否则继续往 上加。当第二次按下K3键,则完成次闹钟的设定,并显示之前的状态,如果继续按K4键则切换到下一路闹 钟,也可以进行上述的操作,或者返回系统时间界面。4.5响铃处理图4.6响铃处理流程图程序:if(fcn=fcnl)&(shi=shil)|I(fcn=fcn2)&(shi=shi2)11(fcn=fcn3)&(shi=shi3)11(fen=fen4)&(shi=s

30、hi4)&(f1ag2=1)if(fen=fen1)&(sh i=sh i1)&(f1ag2=1)if(fcn=fcn1)&(shi =shi1)&(f1ag2=0)11(fen-1= fen1)&(shi =shi1)&(f1ag4=0)if(fen=fen2)&(sh i=shi 2)&(f1ag2=1)if(fcn=fen2)&(shi=shi2)&(flag2=0)11(fcn-1=fcn2)&(shi =shi2)&(f1ag4=0) if(fen=fcn3)&(sh i=shi 3)&(f1ag2=1)if(fen=fen3)&(shi=shi3)&(flag2=0)|(fen-l

31、=fen3)&(shi=shi3)&(flag4=0) if(fen=fen4)&(shi=shi 4)&(f1ag2=1)if(fen=fen4)&(shi=shi4)&(f1ag2=0)11(fen-l=fen4)&(shi=shi4)&(f1ag4=0)if(K4=0&flag3=0)当四个定时闹钟任意一路到达时,在没有按下响铃终止键K4时,flag2都等于1,此时闹钟响起,同时 使得flag3等于0。在闹钟响闹完一个周期后将继续向下执行,并且根振以后程序的判定是哪一路闹钟在响 闹,执行这一路所要求的容,但是不论哪一路时间到都会响铃并且灯闪,不同的是根振判斷选择出时间到的 那一路并通过L

32、CD显示出来闹钟时间及某路闹钟;此时若按下K4键,则使得flag2等于0,当进行是否闹钟 响闹时将会不在响应,也就是闹钟被手动关闭,从而不需要一定要响铃一分钟后在关闭闹钟,实现丰动关斷 闹钟的功能。当闹钟关斷过后将及时跳出,并且使得LCD显示当前的时间。使得可编程时间控制器能够在响word格式.铃时能够显示当前的闹铃及时间,同时可以手动关斷闹铃,并且当闹铃关断过后可以跳出当前显示返回到系 统时间。4.6逻辑控制图4.7逻辑控制流程图 K4num+;if(K4num=5)程序: while(l)|if(K4=0)&(flag3=D)word格式.if(K4nuni=0) timeO;flag4=

33、0;|if(K4nuni=l) (guangboO;flag4=l;if(K4num=2)flag4=l; if(K4num=3) xiakeO;flag4=l; if(K4num=4) dcngkongO;flag4=l; clockO; shangke();只有当没有一路闹钟响闹时才会执行此程序,因为在闹钟响闹时K4縫将会作为闹钟的 停止的功能键使用,所以只有在没有闹钟响闹时K4键才会早为闹钟的更换,同时变t K4num 将作为K4键所处的闹钟或者系统时间区别出来,以实现逻辑上的合理。系统刚启动时,按 键K4处于系统时间状态,在此状态下可以利用之前所介绍的功能进行所需要的修改,当第 一次按

34、下K4键时,就会进入广播定时的控制口,此时可以根据需要修改所要定的时间,并 可以显示自己所定的闹钟时间,再次按下K4键时,将会进入上课定时的闹钟,和之前的闹 钟一样,可以进行相同的操作,当再次按下K4键时将进入下课闹铃状态,然后将要进入的 的是灯光控制定时,此时Knuiii4为4,当再次按下K4键时,将经过判断淸零,重新开始, 以此来实现按縫K4可以更换闹钟的功能,同时更改闹钟时间的功能。4.7 1602LCD液晶显示VSS引脚接地,VDD提供电源,VEE接滑动变阻器来控制液晶屏的对比度。RS为寄存器 选择,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W为读写信号线,高电平时 进行读操

35、作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地 址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入 数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。程序:void write.(uchar ) rs=0;rw二 0;lcdcn=0;P3=;lcdcn=l;lcdcn二0; 液晶写命令函数void write_datc(uchar date) rs=l;rw=0;lcdcn=0;P3=date;lcden=l;lcden=0; 液晶写数据函数当需要将容显示到LCD显示器上之前,首先要向液晶显示器输入写命令函数,有

36、上硬件 分析可以得到LCD液晶显示上一排地址从80H-8FH,一共16位,下面一排地址从C0H-CFH, 同样是16位,所以在进行液晶显示之前首先确定要将结果在哪一位上显示,然后在调用液 晶写数損函数,只有两者结合使用才会得到想要的结果。5实验与结果分析5.1实验的调试设计要求:一个以单片机为核心的可编程作息时间控制器,能够按照给定的时间模拟控 制,实现广播、上下课打铃、灯光控制(屏幕显示),同时具备日期和时钟显示。word格式.首先运用Keil软件编辑程序,按上图要生成目标代码文件,不斷地调试程序。 離元件 佝亠元件参考im|山隐藏 r隐厳r确定(Q)元件值叨:何89W(H)PCB Pack

37、age:lDIL40二!| Hide All jrJ数据叨ProgrcmFile:PFi04hex(Hide AlljJ隐藏的引脚(E)Clock Frequency:11 05矽 Hz|HideAII二JAdvanced Propeities:取消Enabfe Mae logging二| NoI Hi拒 All |Other Propsrlies:联调:加载目标代码文件 打开元器件单片机属性窗口,在“Program FileM栏中添加 上面编译好的目标代码文件keil-17. hex;在“Clock FrequencyM栏中输入晶振频率为 11.0592MHz。每一小块程序编写过后都进行联调

38、,这样可以及时观察到自己所编的程序是否 符合自己的目的,当出现问题时及时处理,可以避免当有大量问题后无法找出错误的地方, 可以提高编程的效率,也有利于最终将程序编写出来。5.2实验的结果图5. 3广播定时响闹时word格式.D2D2wU1U1wVI&VI&-匸XI 一r刖-CH XIT那3CTAWT3CTAWTraoDroa*?!* roa*seMwrraoMDraa*2!*roa*seMwrtx-tM我做買I%底dflftwnfta9XtrraME2.1 IAP22A1D*23X11rsv.r 2UM2rs.u 21Mk3wnj,3jin*T3TDrjT我做買I%底dflftwnfta9Xt

39、rra ME*J.ITX k2JTD ,3jin*T 93MV0tx-tm/frr图5. 4上课定时响闹H.I.T CHIHfl肿;10R1aLC01 LMMCl TOrn令5LJLill*T*ZP*14*nIVATXXTX1iJL-C3-上AZknnwtru5-0-jr- O空PRJC FC.V.U1 PEM7 R3Xn Ml4 V PSK ewrtrmvjsm.9x1 f2ux2rscAi.nzSHKSSB LflBQflHrioriFj.rnj,J20TDMmraXKh1VflP3?.wr2Lword格式.图5. 5下课定时响闹X02n-KTAMXTADrcamn rc.mn p”ii

40、fCJfnQrci. rCCTAMOSTI2OA2 f2tlA 2JAOrj*n*teCK*?A*2.1 (AV“aravr?ZZTTTxmw07:M5F3JT1ria,wIX IMulH.I.T CHENALIGHTINGHS eSu gsgS5as討fl2ALS1 -ill/图5.6灯控定时响闹LCD1C1U1口灯9图5.3实验的问题实验中出现问题最多的就是LCDword格式.QOa0 ro.ii*.i roa/.x: rosxia O4Uk rosv.w rosxK ro?iAMMOTAS F2.VA&aati rtixc rzjiwa r邸仏 户乙你uP3AR: mma naTm ra

41、ATTTTP3E。3口3Armra/fTFH.I.TCHINASKOS072082ZSS2S2&uots. :B?EV “aEUM DXM qshi之VVILSIraaRP1c?JL5.7上课定时设定显示,又是显示出乱码,又是是不斷闪烁的输入标题,有的则是光标的来来回回闪烁而不是因定在某一位,这些问趣基本上都是由于LCD刷新的问 题上,有时候由于逻辑上的先后顺序没有做好,有的完全是由于缺少必要的逻辑区分,使得 显示在程序执行的过程中LCD不单单剧新了我所需要的容,也将我此时不需要的容也刷新出 来,所以屏幕上的容是闪烁的,因此我加了 4个基本变童进行控制,以此来实现所需要的刷 新。同时整个延时又

42、是非常重要的,在进行按縫设定时这个问題就出现了,有时侯按一下会 会进行几个需要的操作,使得结果不符合我的要求,所以应用刚开始编写程序时不斷适当增 加延时使得程序渐渐符合要求。6小结与体会通过此次的单片机课程设计让我学到了许多新的知识,让我受益匪浅,其中对1602LCD 液晶显示器有了非常深刻的认识。刚开始分到课题时,我便开始研究这个课趣,由于我们的课题是在题目4的基础上改过 来的,因此我先研究了一下趣目4的要求以及原理,再结合我们的课趣让我对这个课题有了 一些了解,下午时我们和大多数同学一样先将电路图画了出来,但是当我做完这个课题过后, 我很同意老师的意见,不应当立即画电路图,因为我们对整个课

43、题还不是很了解,对于 Proteus软件也不慣,结果就是我们用了一下午只画了一图,而且对于整个课程设计课题的 理解毫无帮助。由于我们对课趣的理解有困难,不能够将课题所要求的容完全弄明白,因此 我们向老师寻求帮助,帮我们把我们的课题分析了一下,听过之后我们基本已经理解了这个 课趣,但是对于具体实施还是没有头路,当我在实骑室纠结1602LCD液晶显示器到底是如何 工作时,夏老师告诉我Proteus软件中就有相关的例子,于是我便通过自己所找到的资料以 及这个例子自学了 LCD显示器,由于例子是用c语言写的,所以最终我也选择使用c语言来 编写程序,但是在以后我所遇到的困难远远不止这些。首先我要自学相关

44、的c语言,同时我 在网上找到了一些相关的资料学习了一下,并结合老师对课题的分析,让我对这个课题有了 自己的思路。首先,我就把我的思路认真的整理下来然后规划好每一块所要完成的任务 然后再用Keil软件编写出来,在进行联调,每一小步的调试都必须做到没有问趣,只有这 样在总的联调时不会因为问题太多而做不出来。在以后的几天里我都在学习和使用c语言,让我对LCD显示器有了更多的认识,但是在 整个程序编写过程中问趣基本都处在LCD显示上,一遍遍的尝试后总会出现一些问題,曾经 我也因为最后的一点点问题想向老师请教,最后自己没有解决的时候甚至想放弃,但是最终 我还是坚持下来,并最终完成了程序的基本要求,并且通

45、过了老师的第一次检査,并对老师 提出的一些不满足的地方进行了修改,但是这些修改在进过之前所设计中遇到的问题来说也 挺难得,但是我很快就解决掉了,因为我对自己的程序以及LCD显示器有了好好地认识,从 而最后实现了比较好的结果,当老师验收过后感到非常的高兴,在此我非常感老师对我设计 过程中提供的帮助,以及最后对我设计成果的认可。虽然在这一周半的课程设计中毎时毎刻都让我在思考我的课趣,同时由于相关网络资源 的不足曾经使我在用汇编语言还是应用c语言徘徊过 佢是当我选择其中一个时我就坚持了 下来,并通过不断地努力在不斷地更改程序,可以说整个课程设计是非常的痛苦的,因为我 曾经想放弃过,但是我最终还是坚持

46、了下来,并通过自己坚持不懈的努力完成此次课题任务。 虽然整个课程设计的过程有点痛苦,但是当我看到自己的最终成果时还是很开心,因为我这 几天的努力没有白白浪费,培养了我独立思考的能力,提高我的自学以及应用能力,这将是 我以后学习生活的非常宝说的经历。在编写程序的过程中毎一块的认真编写才为以后整个程 序的完成奠定基础,正如我们在平时的生活中一样,只有不断地积累,才会为以后更大的收word格式. 获打下坚实的基础,而此次的课程设计就可以当做我的一次小小的积累,可以说这是我大学 以来最让我纠结的一次课程设计,也是第一个让我有放弃的念头的课程设计,当我最终调出 程序的那一刻让我明白,有时候在那自躱自弃还

47、不如喝尽自己的权力去解决这个问題,在这 过程中的确会有许多麻烦,有时会把本来没有的问题弄出来,有时经过一次次的调试还是达 不到自己的要求,但是只要我们坚持住,不放弃还是会解决的。回首这一周多的单片机课程设计,发现自己的程序按模块划分还不是很难,和当初刚刚 奪到趣目时的冬种不明白、乞种不怪发现自己真的收获了很多,并且在看看相关类似的课趣 时能够基本找出基本的设计思路,对于用到602LCD液晶显示器相关的容能够做出相关 的反 应,这个显示器曾经让我绞尽脑汁依旧不慣,曾经让我的程序漏洞百出,但是最终我征服了 它,这是我的一大收获。同时在老师和夏老师的替促下能够按时到达实验室,从而合理的分 配和合理使

48、用了课程设计的时间。最后,我要非常感老师和夏老师在课程设计中提供的帮助,以及老师最后对我课程设计 结果的肯定。word格式.参考文献1 毅刚主编,单片机原理及应用,:高等教育,20042 涛编箸,单片机应用及C51程序设计 机械工业,20083 周润景主编,PROTEUS入门实用教程,:机械工业,20074 皮大能主编,单片机课程设计指导书 理工大学,20105 楼然苗主编,单片机实验与课程设计(Proteus仿真版),:大学,2010word格式.附录设计程序uchar uchar uchar uchar uchar uchar uchar uchar uchar ucharcode code code code code code code code code codeGBDS SKDS XKDS DKDS =GB =SK =n XK =n DKLIGHTING#include#define uint unsigned int#define uchar un

温馨提示

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

评论

0/150

提交评论