




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计报告题 目: 节日彩灯控制器设计 课 程: 单片机原理及应用课程设计 专 业: 电气工程及其自动化 第 一 部 分任务书?单片机原理及应用?课程设计任务书一、课题名称详见?单片机课程设计题目一?:主要是软件仿真,利用Proteus软件进行仿真设计并调试;?单片机课程设计题目二?:主要是硬件设计,利用单片机周立功实验箱进行设计并调试。二、课程设计目的课程设计是课程教学中的一项重要内容,是到达教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。?单片机原理及应用?是一门理论性、实用性和实践
2、性都很强的课程,课程设计环节应占有更加重要的地位。单片机原理及应用课程设计的目的是让学生在理论学习的根底上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的根底。通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生初步掌握工程设计方法和组织实践的根本技能,逐步熟悉开展科学实践的程序和方法。三
3、、课程设计内容设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进行总体方案的设计。2. 硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。3. 软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。4. 调试:在单片机EDA仿真软件环境Proteus下进行仿真设计并调试;或在单片机周立功实验箱上进行相关设计并调试。四、课程设计要求以单片机为核心,设计一个节日彩灯控制
4、器: P1.0开始,按此键那么灯开始流动由上而下并将第几个灯亮送给液晶显示和LED数码管。P1.4停止,按此键那么灯停止流动,液晶显示和LED数码管停止工作。P1.4停止,按此键那么停止流动,所有灯为暗并清屏。 P1.2上,按此键那么灯由左向右下流动并将第几个灯亮送给液晶显示和LED数码管。 P1.3下,按此键那么灯由右向左流动并将第几个灯亮送给液晶显示和LED数码管五、进度安排序号内容天数1布置任务,熟悉课题要求2总体方案确定,硬件电路设计3软件编程4Proteus仿真,或在周立功实验箱上调试25总结,撰写课程设计报告七、课程设计报告内容:总结设计过程,写出设计报告,设计报告具体内容要求如下
5、:1课程设计的目和设计的内容。2课程设计的要求。3控制系统总框图及系统工作原理。4控制系统的硬件电路连接图,电路的原理。 5软件设计流程图及其说明。6电路设计,软件编程、调试中遇到的问题及分析解决方法。7实验结果及其分析。8体会。第 二 部 分课程设计报告目 录 TOC o 1-3 h z u HYPERLINK l _Toc390046288 1、课题简介 PAGEREF _Toc390046288 h - 8 - HYPERLINK l _Toc390046289 、设计需求分析 PAGEREF _Toc390046289 h - 8 - HYPERLINK l _Toc390046290
6、 2、方案设计 PAGEREF _Toc390046290 h - 9 - HYPERLINK l _Toc390046291 、控制系统总体框图 PAGEREF _Toc390046291 h - 9 - HYPERLINK l _Toc390046292 、工作原理 PAGEREF _Toc390046292 h - 9 - HYPERLINK l _Toc390046293 3、硬件电路设计 PAGEREF _Toc390046293 h - 10 - HYPERLINK l _Toc390046294 、 AT89C51单片机硬件结构 PAGEREF _Toc390046294 h -
7、 10 - HYPERLINK l _Toc390046295 、1602字符型液晶显示 PAGEREF _Toc390046295 h - 13 - HYPERLINK l _Toc390046296 、 AT89C51最小系统 PAGEREF _Toc390046296 h - 16 - HYPERLINK l _Toc390046297 3. 3、电路设计 PAGEREF _Toc390046297 h - 16 - HYPERLINK l _Toc390046298 4、软件设计原理 PAGEREF _Toc390046298 h - 17 - HYPERLINK l _Toc3900
8、46299 3.1 程序设计 PAGEREF _Toc390046299 h - 17 - HYPERLINK l _Toc390046300 3.2 主程序设计 PAGEREF _Toc390046300 h - 18 - HYPERLINK l _Toc390046301 、系统程序: PAGEREF _Toc390046301 h - 20 - HYPERLINK l _Toc390046302 5、电路仿真 PAGEREF _Toc390046302 h - 26 - HYPERLINK l _Toc390046303 、仿真结果 PAGEREF _Toc390046303 h - 2
9、6 - HYPERLINK l _Toc390046304 、仿真结果分析 PAGEREF _Toc390046304 h - 29 - HYPERLINK l _Toc390046305 6、小结 PAGEREF _Toc390046305 h - 30 - HYPERLINK l _Toc390046306 参 考 文 献 PAGEREF _Toc390046306 h - 31 - HYPERLINK l _Toc390046307 附录 PAGEREF _Toc390046307 h - 32 -1、课题简介、设计需求分析节日彩灯使生活中常常用到的装饰物品。它集中地运用了单片机、LED
10、、,自动控制等技术,是典型的基于单片机的电子产品。本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。通过按键能方便使用者选择不同样的亮法 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,应用范围也得到了极大的扩展。在海洋开发、宇宙探测、工农业生产、军事、社会效劳、娱乐等各个领域。在娱乐方面,场地的装饰
11、离不开彩灯。在建筑方面也采用彩灯来装饰高楼大厦。彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。是彩灯的应用才使得城市的夜景非常迷人。 在国内外,微控制系统主要采用单片机作为控制核心。因此,单片机的开展将有助于简单实用电子产品的开发。在本设计中,采用比拟先进的AT89C51单片机为控制核心,它的功耗很低。单片机技术开展至今,掌握最先进技术的仍然是国外的几大公司。如Intel公司开展的MCS-51系列的新一代产品,如8C152、80C51FA/FB、80C51GA/GB、8C451、8C452,还包括了Philips、Siemens、ADM、Fujutsu、OKI、Ha
12、rria-Metra、ATMEL等公司以80C51为核心推出的大量各具特色与80C51兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,可连接一些外部接口功能单元如A/D、PWM、PCA(可编程计数器阵列)WDT(监视定时器)高速I/O口、计数器的捕获/比拟逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。Philips公司还为这一代单片机80C51系列8C592单片机引入了具有较强功能的设备间网络系统总线CAN(Controller Area Net
13、work BUS)。2、方案设计、控制系统总体框图8个LED灯AT89C51晶体显示8位LED数码管P0P2P3晶震器及复位发生器控制按键P1、工作原理如流程图示,P1口读控制按键的状态,AT89C51根据P1口的信号的不同给P3口不同的信号使8个LED工作,在这同时给P0、P2口发送相应的信号以显示8个LED中哪个灯正在亮。 晶震器及复位发生器是用以给AT89C51提供时钟信号;复位发生器是当系统异常工作时用以复位初始化。3、硬件电路设计一个单片机应用系统的硬件电路设计包含有两局部内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量不能满足应用系统的要
14、求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器打印机A/DD/A转换器等,又要设计适宜的接口电路。本系统采用AT89C51单片机作为中央处理器。其主要任务收集按键的信息,判断按键时否按下来执行相应彩灯的点亮方式在本系统中,AT89C51单片机的P1口用于接按键,方便使用者选择方式。P0口接的时LED彩灯。3.1、 AT89C51单片机硬件结构AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器FPEROMFlash Programmable and Erasab
15、le Read Only Memory,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC51兼容。片内置通用8位中央处理器CPU和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域11。3 、主要特性(1)与MCS-51产品指令系统兼容 (2)4K字节可编程闪烁存储器 (3)寿命:1000写/擦循环(4)数据保存时间:10年(5)全静态工作:0Hz-24Hz(6)三级程序存储器锁定(7)128*8位内部RAM(8)32可编程I
16、/O线(9)两个16位定时器/计数器(10)6个中断源 (11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路 另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。在空闲方式中,CPU停止工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结,使一切功能都暂停,只保存片内RAM中的内容,直到下次硬件复位为止。3、 管脚说明VCC40:供电电压,其工作电压为5V。GND20:接地。P0端口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外
17、部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1端口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2端口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2
18、口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3端口:P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流ILL。 P3口也可作为AT89C51的一些特殊功能口,如所示。表2.1 P3端口引
19、脚兼用功能表P3口同时为闪烁编程和编程校验接收一些控制信号。复位RST(9):复位输入。在振荡器运行时,有两个机器周期24个振荡周期以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能存放器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。ALE/(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振
20、荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。EA/VPP(31):当保持低电平时,那么在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RE
21、SET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2(18):来自反向振荡器的输出。其引脚图如图3.1所示。图2.2 AT89C51引脚图3、 振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。3.1.4、 芯片擦除整个PEROM阵
22、列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2、1602字符型液晶显示液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为
23、两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单易控制且本钱低。目前市面上的字符型液晶绝大多数是基于HD44780液晶芯片的,所以控制原理是完全相同的,为HD44780写的控制程序可以很方便地应用于市面上大局部的字符型液晶。字符型LCD通常有14条引脚线(市面上也有很多16条引脚线的LCD,多出来的2条线是电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样),定义如下表所示: 字符型LCD的引脚定义 引脚号 引脚名 电平 输入/输出 作用 1 Vss 电源地 2 V
24、cc 电源(+5V) 3 Vee 比照调整电压 4 RS 0/1 输入 0=输入指令 1=输入数据 5 R/W 0/1 输入 0=向LCD写入指令或数据 1=从LCD读取信息 6 E 1,10 输入 使能信号,1时读取信息, 10(下降沿)执行指令 7 DB0 0/1 输入/输出 数据总线line0(最低位) 8 DB1 0/1 输入/输出 数据总线line1 9 DB2 0/1 输入/输出 数据总线line2 10 DB3 0/1 输入/输出 数据总线line3 11 DB4 0/1 输入/输出 数据总线line4 12 DB5 0/1 输入/输出 数据总线line5 13 DB6 0/1
25、输入/输出 数据总线line6 14 DB7 0/1 输入/输出 数据总线line7(最高位) HD44780内置了192个常用字符,存于字符产生器CGROM(Character Generator ROM)中,另外还有几个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。下列图说明了CGROM和CGRAM与字符的对应关系(由于本书中未用到自定义特殊字符的功能,所以本节不对CGRAM作详细介绍。以下如未特别说明,那么字符码指CGROM的字符号,地址指DDRAM的地址)。 字符码0 x000 x0F为用户自定义的字符图形RAM(对于5X8点阵的字符
26、,可以存放8组,5X10点阵的字符,存放4组),0 x200 x7F为标准的ASCII码,0 xA00 xFF为日文字符和希腊文字符,其余字符码(0 x100 x1F及0 x800 x9F)没有定义。3.3、 AT89C51最小系统 AT89C51最小系统接线如下图,在XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。 图2.3 AT89C51最小系统3. 3、电路设计 将MUC、LED和按键进行PROTEUS设计。翻开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所
27、需要的元器件,放置元器件、放置电源和地、连线得到如图3.7所示的电气原理图,再点菜单栏工具下拉的电气规那么检查,当规那么检查出现:“NETLIST GENERATED OK NO ERC ERRORD FOUND,表示通过检查。电路设计完成。图2.4 系统电气原理图4、软件设计原理3.1 程序设计程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件也占有重要的地位。在单片机控制系统中,大
28、体上可分为数据处理、过程控制两个根本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,通常把整个过程分成假设干个局部,每一局部叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法14。模块程序设计法的主要优点是:(1)单个模块比起一个完整的程序易编写、调试及修改。(2)程序的易读性好。(3)程序的
29、修改可局部化。(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序方式一,方式二,方式三,方式四和延时等子程序构成。3.2 主程序设计在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应程序决定。当收到按键一按下使P1.0的电平有高电平变成低电平时,主程序就跳到方式一的子函数执行,这样就实现了方式一的点亮。当收到按键二按下使P1.1的电平有高电平变成低电平时,主程序就跳到方式二的子函数执行,这样就实现了方式二的点亮。当收到按键三按下使
30、P1.2的电平有高电平变成低电平时,主程序就跳到方式三的子函数执行,这样就实现了方式三的点亮。当收到按键四按下使P1.3的电平有高电平变成低电平时,主程序就跳到方式四的子函数执行,这样就实现了方式四的点亮。当收到按键四按下使P1.4的电平有高电平变成低电平时,主程序就跳到方式四的子函数执行,这样就实现了方式五的点亮软件设计原理流程图开 始P1.0=?P1.1=0?P1.2=0?P1.3=0?P1.4=0?方式0亮灯方式二亮灯方式一亮灯长跳转到Start方式三亮灯方式四亮灯初始化液晶显示4.1、系统程序:预命令#include #include 定义端口sbit rs= P20;sbit rw
31、= P21;sbit ep = P22;sbit p10=0 x90;sbit p11=0 x91;sbit p12=0 x92;sbit p13=0 x93;sbit p24=0 xA4;sbit p14=0 x94;sbit p25=0 xA5;sbit p26=0 xA6;sbit p27=0 xA7;定义三个数组用以赋值液晶显示unsigned char code dis18 = 12345678;unsigned char code dis28 = 18273645;unsigned char code dis38 = 87654321;延时子程序void delay(unsigne
32、d char ms)unsigned char i;while(ms-)for(i = 0; i 250; i+)_nop_();_nop_();_nop_();_nop_();判断LCD是否忙碌,忙碌那么返回“1;否那么为“0bit lcd_bz()bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0 x80);ep = 0;return result;给液晶显示写控制命令void lcd_wcmd(unsigned char cmd) /写指令while(lcd_bz();
33、/判断LCD是否忙碌rs = 0;rw = 0; /re=0,rw=1;e为正脉冲ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(unsigned char pos) /显示位置转换程序lcd_wcmd(pos | 0 x80); /显示第一行的地址是0 x08,第二行的是0 xc0。给液晶显示数据显示内容void lcd_wdat(unsigned char dat) /写数据while(lcd_
34、bz();/判断LCD是否忙碌rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;初始化液晶显示void lcd_init() /初始化lcdlcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x0c);delay(1);lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x01); /清屏delay(1);主程序void main(void)unsigned char i;lcd_init(
35、);/ 初始化LCDdelay(10);i=0; p27=0;p26=0;p25=0;p24=0;开始按键按下时,执行下程序if(p10=0)while(1) if(p12=1&p13=1) switch(i)case(0):P3=0 x01;p27=0;p26=0;p25=0;p24=1; break;case(1):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(2):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(3):P3=0 x08;p27=0;p26=1;p25=0;p24=0;break;case(4
36、):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;case(5):P3=0 x20;p27=0;p26=1;p25=1;p24=0;break;case(6):P3=0 x40;p27=0;p26=1;p25=1;p24=1;break;case(7):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;lcd_pos(0 x01);lcd_wdat(dis1i);i+;开始赋值P3口和数码管数组1给液晶显示I+开始按键按下YN当显只有示1按键按下时,执行下程序if (p12=0&p13=1) switch(i)case(0):P3=0
37、 x01;p27=0;p26=0;p25=0;p24=1;break;case(1):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;case(2):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(3):P3=0 x40;p27=0;p26=1;p25=1;p24=1;break;case(4):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(5):P3=0 x20;p27=0;p26=1;p25=1;p24=0;break;case(6):P3=0 x08;p27=0;p26=1;p
38、25=0;p24=0;break;case(7):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;lcd_pos(0 x01);lcd_wdat(dis2i);i+;赋值P3口和数码管数组2给液晶显示I+当显只有示1按键按下YNN当只有显示2按键按下时,执行下程序if (p12=1&p13=0) switch(i)case(0):P3=0 x80;p27=1;p26=0;p25=0;p24=0;break;case(1):P3=0 x40;p27=0;p26=0;p25=1;p24=1;break;case(2):P3=0 x20;p27=0;p26=1;p25=
39、1;p24=0;break;case(3):P3=0 x10;p27=0;p26=1;p25=0;p24=1;break;case(4):P3=0 x08;p27=0;p26=1;p25=0;p24=0;break;case(5):P3=0 x04;p27=0;p26=0;p25=1;p24=1;break;case(6):P3=0 x02;p27=0;p26=0;p25=1;p24=0;break;case(7):P3=0 x01;p27=0;p26=0;p25=0;p24=1;break;lcd_pos(0 x01);lcd_wdat(dis3i);i+;赋值P3口和数码管数组3给液晶显示
40、I+只有显示2按键按下YYNdelay(150);当暂停按键按下时,不做任何处理while(p11=0);/暂停语句暂停按键按下NNY当停止按键按下时while(p14=0)P3=0 x00; p27=0;p26=0;p25=0;p24=0;lcd_wcmd(0 x01); /清屏delay(1);if(i=8)i=0;赋0值P3口和数码管清屏液晶显示延时停止按键按下YYN5、电路仿真5.1、仿真结果PROTEUS软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是:1.新建源文件:点菜单SourceAdd/Remove source Files在出现的对话框中,选择ASEM51编辑器,新建
41、NOMAME1.asm 源文件。2.程序设计:点菜单SourceNAMAME1.asm翻开源文件编辑器,将将附录程序输入到文本中。 3.源程序编译:点菜单SourceBuild ALL编译汇编源程序,生成目标代码文件PMD.HEX,假设编译失败,可对程序进行修改调试直至编译成功。4.目标代码加载:在PROTEUS编辑环境双击AT89C51,弹出如图4.6所示的对话框,在PROGRAM FILE一栏中单击翻开按钮,选中NOMAME1.HEX文件。在CLOCK FREQUENCY栏中设置系统工作频率为12MHZ,单击OK完成目标代码加载。图3.8 程序代码加载1.最后,点击运行按钮,启动系统仿真.
42、2.仿真结果如下图。当按开始键时3.当按停止键按下时仿真结果如下图。4.当显示1键按下时仿真结果如图5.当显示2键按下时仿真结果如图6.当暂停键按下时仿真结果如图3.2、仿真结果分析通过对上述模块的仿真,可以看出基于单片机控制的节日彩灯在PROTEUS软件上可以很好的实现各种变换把戏的仿真。 当仿真开始运行时,各个模块处于初始状态。当有按键触发后,主程序跳到相应的彩灯闪亮方式循环闪亮。因此,从仿真结果可以看出,本设计可以得到预期的仿真效果。6、小结通过这次单片机课程设计,我了解到自己在单片机方面还有很多缺乏,特别是单片机指令系统及AT89C51各引脚的第二功能等等知识不够了解.因此我在设计中遇
43、到不懂的东西就马上查资料或请教同学.这不仅加深了我对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的根底上进行改良,使之功能不断完善,成为真己的东西。 这个设计过程中,我们要实现彩灯的多功能化,老师平时指导我们将程序模块化,首先实现一个功能,接着逐个地添加功能,最后到达多功能化.有了明确的方向后,我们开始认真的搞我们的课程设计.这个过程中,我们花费了大量的时间和精力,同时还懂得合作精神的重要性,学会了与他人合作,不懂的不明白的就要和同学们交流,这样学习才更有乐趣。在课程设计过程中,不断调试程序和修改程序,提
44、高了对单片机的应用能力,分析问题和解决问题的能力。在和同学们交流的同时也明白了做任何事情都要有团结合作的精神,只有这样才能更快更好的掌握好要学习的知识。参 考 文 献列出你所利用的参考文献。格式参见下。1 张毅刚主编,单片机原理及应用,北京:高等教育出版社,20042 陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,20213 周润景主编,PROTEUS入门实用教程,北京:机械工业出版社,20074 皮大能主编,单片机课程设计指导书,北京:北京理工大学出版社,20215 楼然苗主编, 单片机实验与课程设计Proteus仿真版,浙江:浙江大学出版社, 2021 7 控制、电子技术类杂
45、志、报刊附录#include #include sbit rs= P20;sbit rw = P21;sbit ep = P22;sbit p10=0 x90;sbit p11=0 x91;sbit p12=0 x92;sbit p13=0 x93;sbit p24=0 xA4;sbit p14=0 x94;sbit p25=0 xA5;sbit p26=0 xA6;sbit p27=0 xA7;unsigned char code dis18 = 12345678;unsigned char code dis28 = 18273645;unsigned char code dis38 = 8
46、7654321;void delay(unsigned char ms)unsigned char i;while(ms-)for(i = 0; i 250; i+)_nop_();_nop_();_nop_();_nop_();bit lcd_bz()bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0 x80);ep = 0;return result;void lcd_wcmd(unsigned char cmd) /写指令while(lcd_bz();/判断LCD是否忙
47、碌rs = 0; rw = 0; /re=0,rw=1;e为正脉冲ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1; _nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(unsigned char pos) /显示位置转换程序lcd_wcmd(pos | 0 x80); /显示第一行的地址是0 x08,第二行的是0 xc0。void lcd_wdat(unsigned char dat) /写数据while(lcd_bz();/判断LCD是否忙碌rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_init() /初始化lcdlcd_wcmd(0 x38);delay(1);lcd_wcmd(0 x0c);delay(1);lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急危重症患者评估与护理试题
- 防震减灾宣传-知识竞赛
- 二手房交易居间合同示例
- 2025授权物业管理服务合同样本
- 品牌代理合同
- 电子产品维修服务合同协议书范本
- 2025租房合同协议范本3
- 2025服装加工定制合同范本
- 2025监理工程师《合同管理》知识点抵押
- 《天泽项目营销总纲》课件
- GB/T 5121.1-2008铜及铜合金化学分析方法第1部分:铜含量的测定
- GB/T 25820-2018包装用钢带
- 深基坑安全管理(安全培训)课件
- 病原微生物实验室生物安全检查表格
- 鲜肉切片机设计说明书
- 厂房及配套设施工程建设项目施工组织设计方案
- 校园管制刀具排查记录表
- 3 春夜喜雨课件(共16张PPT)
- DB32∕T 3921-2020 居住建筑浮筑楼板保温隔声工程技术规程
- 基桩低应变检测2
- 中长期人才队伍建设战略规划
评论
0/150
提交评论