单片机课程设计报告旗舰版
单片机课程设计 报告

《单片机应用设计报告》系别电子信息与电气工程系专业自动化班级 09 级 (1) 班姓名王杰王典老师储忠完成时间 2012年5月18日单片机原理及接口技术课程设计报告摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
MCS-51单片机是使用极为广泛的一款8位单片机,在此次实训中所用的单片机是美国Atmel公司生产的以8031为内核的AT89S52单片机。
实训分别以构建单片机最小系统版、74HC138流水灯、8255交通灯、8253方波、6N137光耦控制继电器等几个实验关键词:AT89S52 74HC138 8255A 8253 6N137 交通灯目录单片机原理及接口技术课程设计报告 (1)实验一构建单片机最小系统和实验环境熟悉 (3)1.1单片机的工作原理 (3)1.1.1单片机最小系统图 (3)1.1.2运算器简介 (4)1.1.3控制器简介 (5)1.1.4实验解析与总结 (7)实验二跑马灯实验及74HC138译码器 (7)2.1实验内容 (7)2.1.1实验原理 (8)2.1.2实验原理图 (8)2.1.3实验程序流程图 (9)2.1.4实验程序代码 (9)2.1.5完成后的效果图 (10)2.2实验总结 (10)实验三8255控制交通灯实验 (11)3.1实验内容 (11)3.1.3实验原理 (11)3.1.2实验原理电路图 (12)3.1.3程序流程图 (13)3.1.4实验程序代码 (13)3.1.5系统实现图 (15)3.2 8255A寻址原理 (15)3.3实验总结 (16)实验四8253方波实验 (17)4.1实验内容 (17)4.1.1实验原理图 (17)4.1.2实验原理电路图 (17)4.1.3程序流程图 (18)4.1.4程序流程代码 (19)4.1.4系统仿真 (20)4.2实验总结 (21)实训总结 (21)附录 (22)1 实验源程序 (22)2仿真系统电路原理图 (27)3硬件实物照片 (27)实验一构建单片机最小系统和实验环境熟悉1.1单片机的工作原理1.1.1单片机最小系统图单片机最小系统主要有外部晶振电路,系统复位电路以及供电电源组成。
单片机课程设计报告

单片机课程设计报告一、设计目的本课程设计旨在通过对单片机的学习和实践,培养学生的嵌入式系统设计能力。
通过设计报告的撰写,学生需要整理和总结自己在课程设计中的工作,提高自己的表达和沟通能力。
二、设计背景随着科技的迅猛发展,嵌入式系统在各个领域得到广泛应用。
单片机作为嵌入式系统设计的重要组成部分,具有体积小、功耗低、可靠性高等优势,被广泛应用于家电、智能家居、汽车电子等领域。
因此,掌握单片机的基础原理和应用技巧对于工程师来说至关重要。
三、设计内容本次课程设计的主要内容为设计并实现一个简单的单片机应用系统。
具体要求如下:1. 选取一个合适的单片机型号,并给出详细的理由;2. 设计一个实际应用场景,如温度监测、电子琴等,要求具备一定的实际意义;3. 硬件方面,设计电路及相关外围电路,如传感器、显示器等;4. 软件方面,设计控制程序,实现所选应用场景的功能;5. 进行系统集成和调试,确保系统正常工作;6. 撰写设计报告,对设计过程和结果进行详细说明。
四、设计方案1. 单片机的选择在选择单片机时,需要考虑应用需求和成本因素。
根据本次设计的要求,我们选择了XX单片机,这款单片机具有性能稳定、易于编程和丰富的外围接口等特点,非常适合本次设计的需求。
2. 应用场景的设计本次设计的应用场景为温度监测系统。
随着人们对室内温度的要求越来越高,设计一个简单且准确的温度监测系统对于提高生活质量至关重要。
我们将使用温度传感器和数码显示器来实现温度的监测和显示功能。
3. 硬件设计在硬件设计方面,我们将按照以下步骤进行:a) 选择合适的温度传感器,将传感器与单片机进行连接;b) 设计电源电路和信号采集电路,确保传感器与单片机之间的正常通信;c) 设计数字显示电路,将单片机采集到的温度数值进行显示。
4. 软件设计软件设计主要包括编写单片机控制程序。
我们将按照以下步骤进行:a) 初始化单片机和相关外围设备,确保其正常工作;b) 采集传感器的温度数值,并进行数据处理;c) 控制数码显示器,将温度数值显示在屏幕上。
单片机课程设计报告

单片机课程设计报告设计名称:单片机电子时钟的设计班级:电信06级1班学号:200610320126姓名:王虎指导教师:杨加国一课程设计的目的单片计算机即单片微型计算机。
(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。
他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
而51单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
二、课程设计的具体要求:该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY (自己计算)。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理三.MCS-51单片机系统简介40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
⒈电源:⑴VCC - 芯片电源,接+5V;⑵VSS - 接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。
但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
单片机课程设计报告 (2)

单片机课程设计报告1. 引言本文为单片机课程设计报告,主要介绍了课程设计的背景、目的、设计方案、实施过程以及结果分析和总结。
2. 背景单片机是嵌入式系统的核心部件,广泛应用于各个领域。
作为计算机科学与技术专业的学生,掌握单片机的基本原理和应用是必不可少的。
因此,本次课程设计旨在通过实践,加深对单片机的理解和应用能力。
3. 目的本次课程设计的目的是设计一个基于单片机的智能温度监控系统。
该系统能够实时监测环境温度,并通过显示屏展示当前温度值,并在温度超过设定阈值时发出警报。
4. 设计方案4.1 硬件设计本设计使用STC89C52单片机作为控制核心,配合温度传感器和液晶显示屏,实现温度监测和显示的功能。
温度传感器负责采集环境温度,将采集到的数据发送给单片机进行处理;液晶显示屏用于显示当前温度值和警报信息。
4.2 软件设计软件设计分为两个模块:温度采集和温度监控。
温度采集模块通过单片机的ADC接口获取温度传感器的模拟信号,将其转化为数字信号,并保存在单片机的内存中。
温度监控模块不断读取内存中的温度值,并与设定的阈值进行比较,如果温度超过阈值,则发出警报信号,同时在液晶显示屏上显示警报信息。
5. 实施过程5.1 硬件实施首先,根据设计方案的要求,将STC89C52单片机、温度传感器和液晶显示屏组装在一起,搭建出硬件平台。
接下来,使用面包板和杜邦线等连接元件,将各个模块按照设计方案进行连线。
最后,使用电源适配器给整个系统供电。
5.2 软件实施软件实施主要分为两个步骤:编写硬件控制程序和编写温度监控程序。
硬件控制程序主要负责初始化硬件设备和处理硬件输入输出;温度监控程序则负责实现温度采集和温度监控逻辑。
在编写硬件控制程序时,需要使用STC89C52的GPIO接口对传感器和显示屏进行控制。
在编写温度监控程序时,需要使用STC89C52的ADC接口进行温度采集,以及使用GPIO接口对警报信号和显示屏进行控制。
6. 结果分析和总结经过实施过程的努力,我们成功地完成了基于单片机的智能温度监控系统。
单片机课程设计报告模板

单片机技术及应用综合训练(设计报告)题目:姓名:学院:专业:班级:学号:指导教师:2014年5 月一、选题要求临床求助呼叫监护是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。
呼叫系统的优劣直接关系到病员的安危,要求及时、准确、可靠、简便可行。
本呼叫系统基于Ateml89C52单片机,振荡电路的晶振采用12MHz,由控制核心AT89C52单片机、电源电路、振荡电路、复位电路、数码管解码芯片、病房选择和七段数码管等部分组成,系统框图如下:二、硬件电路设计工作原理为:电源电路为单片机以及其他模块提供5V电源。
晶振模块为单片机提供时钟标准,使系统各部分能协调工作。
复位电路模块为单片机系统提供复位功能。
单片机作为主控制器,根据输入信号对系统进行相应的控制。
病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。
所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。
另外,当有病房呼叫时蜂鸣器响直至复位。
此次设计的电路图如下:三、软件设计1、功能介绍:启动系统后,数码管显示0。
当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有多个病人同时呼叫时,数码管显示优先级高的病房号,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则数码管显示后呼叫的病房号,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。
2、程序流程图:3、程序源代码:#include <reg51.h>#define uchar unsigned char sbit key4=P3^0;//定义按键位置sbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;sbit reset=P3^4;//复位sbit BEEP=P1^7;//定义蜂鸣器端口uchar flag,i;void choice();void clean();void delay();void de();void ring();void main(){while(1){P3=0xff;reset=0;BEEP=0;flag=0;choice();delay();clean();}}void choice()//确定病人{ while(reset!=1&&flag==0) {if(key1==0){de();if(key1==0){P0=0X86;flag=1;}}else if(key2==0){de();if(key2==0&&key1!=0){P0=0Xdb;flag=1;}}else if(key3==0){de();if(key3==0&&key1!=0&&key2!=0){P0=0Xcf; flag=1;}}else if(key4==0){de();if(key4==0&&key1!=0&&key2!=0&&key3!=0){P0=0Xe6; flag=1;}}}}void clean() //RESET 为高的时候复位{if(reset==1){BEEP=0;P0=0x3f;}}void delay() //RESET为低的时候延时{while(!reset){ring();}}void ring(){for(i=0;reset==0;i++)//喇叭发声的时间循环{de();BEEP=!BEEP;if(key1==0||key2==0||key3==0)//第二次呼叫{if( P0==0X86)P0=0X86;else if(P0==0Xdb&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==0)P0=0X86;else if(P0==0Xe6&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==1&&key2==1&&key3==0)P0=0Xcf;}}}void de(){for(i=300;i>0;i--);}四、软硬件调试结果1、未通电:2、通电时:3、低优先级病房先呼叫:(蜂鸣器响)高优先级病房后呼叫:(蜂鸣器响)4、高优先级病房先呼叫:(蜂鸣器响)低优先级病房后呼叫:(蜂鸣器响)呼叫有效呼叫无效5、当有三个病房同时呼叫时:1号2号4号病房同时呼叫显示1五、总结本次实验程序参考网上,但下载时程序有误,经细心验证检查得已改正,这有助于我进一步对C语言的学习和掌握。
单片机课程设计报告模板

单片机课程设计报告模板单片机课程设计报告一、设计目的本次单片机课程设计旨在培养我们对单片机的基本认知和应用能力,通过对STC89C52单片机的学习和实践,提升我们的编程能力和创新思维,同时让我们深入了解单片机的工作原理和应用场景,为未来工作和学习打下坚实基础。
二、设计内容本次课程设计主要涵盖了单片机的基本原理、C语言编程以及电路设计。
我们以智能家居为例,设计了一个可以通过Wi-Fi连接到手机APP控制家电的智能开关系统。
1.单片机的选择我们选择STC89C52作为单片机的核心控制器,这是一款8位高性能单片机,拥有大容量闪存和SRAM存储器、多种定时器和计数器、16位定时器等重要功能,非常适合用于物联网控制和智能家居领域。
2.开发环境的搭建我们采用KEIL软件和PROTEUS电路仿真软件作为开发工具,为了让我们更加熟练地使用这两款软件,我们在课堂上进行了详细的讲解和实践操作,学习了单片机的汇编、C语言编程、调试和调试工具的使用。
3.电路设计为了实现智能家居的控制,我们需要搭建一个能够与单片机相互协作的电路。
我们选择了常见的继电器来控制家电设备的开和关。
具体的电路设计方案如下:①按键电路:在电路中加入按键触发模块,实现单片机中断、感应等功能。
②Wi-Fi WiFi模块:为了实现远程控制,我们使用了ESP8266模块和手机APP进行通讯。
③继电器模块:该模块内置独立的继电器驱动IC,设计电容保护电路和DIP开关控制当前继电器输出端口,保障免受电磁干扰和防止继电器共振。
4.软件设计本次课程设计的重点是编写单片机程序。
我们通过不断的实践和调试,成功编写了相应的程序,实现了以下功能:①通过Wi-Fi模块连接到手机APP,实现APP和单片机的通讯。
②实现对接ESP8266模块,并正确设置ESP8266模块的IP地址和端口号。
③通过单片机控制继电器模块,实现对家电的远程控制。
5.上位机程序设计上位机程序我们选择了Visual Studio C++作为开发工具,通过Socket编程实现了与单片机的通讯。
单片机课程设计报告

单片机课程设计报告单片机课程设计报告一、设计目的本次设计旨在通过对单片机的学习和实践,锻炼学生的综合能力和创新思维,提高学生对单片机工作原理的理解和应用能力。
二、设计内容本次设计以控制LED灯的闪烁为主题,在实现基本闪烁功能的基础上,加入了渐变效果和呼吸灯效果等功能。
三、设计过程1. 硬件设计:(1)准备材料:单片机主板、蓝色LED灯、电阻、杜邦线等;(2)连线:按照电路图将单片机与蓝色LED灯连接起来;(3)测试:使用万用表对电路进行测试,确保电路连接正常。
2. 软件设计:(1)编写主程序:在Keil C中编写主程序,设置LED灯闪烁的时间间隔;(2)编写闪烁函数:编写一个函数使LED灯在设定的时间间隔内闪烁;(3)编写渐变函数:利用PWM(脉冲宽度调制)技术,使LED灯的亮度逐渐增加或减小;(4)编写呼吸灯函数:利用PWM技术,使LED灯呼吸般变亮变暗;(5)调试程序:将程序下载到单片机主板上,通过调试工具进行调试,确保LED灯能按照设计要求正常闪烁、渐变和呼吸。
四、设计结果经过反复调试和修改,最终实现了LED灯的闪烁、渐变和呼吸灯等效果。
LED灯的闪烁时间可以通过修改程序中的参数进行调整,渐变和呼吸灯效果可以根据需求进行改动。
五、心得体会通过本次设计,我对单片机的原理和应用有了更深入的了解。
在实践中,我遇到了许多问题,比如电路连接错误、程序调试失败等,但通过钻研、查找资料和与同学、老师讨论,我逐渐解决了这些问题。
这个过程让我学会了不断尝试和学习,培养了我的耐心和解决问题的能力。
六、改进意见在进行本次设计时,由于时间和条件的限制,我只实现了LED灯的基本闪烁、渐变和呼吸灯效果,但这些功能在实际应用中已经比较常见。
如果有更多的时间和资源,我可以进一步完善程序,增加更多创新的功能,或是将LED灯与其他传感器结合,实现更复杂的控制。
总结:通过本次单片机课程设计,我不仅对单片机有了更深入的认识,也锻炼了实践能力和创新思维。
单片机原理及应用课程设计报告

课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及系统课程设计评语:考勤(10)守纪(10)过程(40)设计报告(30)答辩(10)总成绩(100)专业:电气工程及其自动化班级:电气1001班姓名:周兴学号: 201009018指导教师:李红兰州交通大学自动化与电气工程学院2013 年 3 月 7 日基于单片机的LED流水灯系统设计摘要本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O 引脚。
系统以采用MCS-51系列单片机89C51为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。
关键词:单片机;LED流水灯;MCS-51AbstractThis design mainly to analyze calculator software and in the process of developing the steps, and from the practical experience of the calculator design has made the detailed analysis and research. This system is to make full use of the 8051 chip I/O pins. System to the MCS - 51 series microconteroller as the center Intel8C51 device to design LED running lights system, realize the eight LED neon light left and right cyclic display, and realize the circulation speed adjustable.Keywords: single chip microcomputer, LED running lights,MCS-511引言本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向左点亮循环,按下第二个,彩灯向右循环点亮,按下第三个,彩灯全亮,按下第四个,彩灯全灭。
彩灯用8个发光二极管代替。
电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为0.5秒。
2 设计方案及原理2.1 设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
2.2设计要求1.彩灯用8个发光二极管代替。
2.电路具有控制彩灯点亮右移左移全亮及全灭等功能(用按键切换彩灯状态)。
3.彩灯两点移动时间间隔为0.5秒。
2.3设计方法本课题使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
同样的道理,可以让8个灯左移点亮,全亮、全灭。
系统框图及线路连接原理图如图1所示。
开关AT89C51单片机LED流水灯显示图1 LED流水灯设计系统框图本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
其具体线路连接如图2所示。
XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D17LED-BIRY D18LED-BIRY D19LED-BIRY D20LED-BIRY D21LED-BIRY D22LED-BIRY D23LED-BIRY D24LED-BIRYR17220R18220R19220R20220R21220R22220R23220R24220C11nFC21nFX1CRYSTALC31nFR2510kR110kR210kR310kR410k图2 LED 流水灯设计接线图3 硬件设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
本设计选用以A T89S51单片机为主控单元。
显示部分:8个LED 灯循环亮灭。
3.1单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用1MHz的石英晶体。
时钟电路如图3所示。
C11nFC2 1nF X1 CRYSTAL图3 时钟电路3.2复位电路电阻的作用是用于上电复位的,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。
自动复位如图4所示。
C31nFR2510k图4 复位电路3.3控制电路控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如图5所示。
R1 10k R210kR310kR410k图5 控制电路3.4工作电路工作电路就是根据总的电路的指令,来反应工作情况。
本电路的流水灯电路具体的如图6所示。
D17LED-BIRY D18LED-BIRYD19LED-BIRYD20LED-BIRYD21LED-BIRYD22LED-BIRYD23LED-BIRYD24LED-BIRYR17 220R18220R19220R20220R21220R22220R23220R24220图6 工作电路4软件设计按照单片饥系统扩建和系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
AT89C51单片机是美国ATMEI公司生产的低电、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量阴级中断结构、全双工的串行通信、具有4.25~5.50V的电压工作范同和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
其软件流程图如图7所示。
开始K1是否闭合灯左移点亮灯右移点亮灯全亮灯全灭K2是否闭合K3是否闭合K4是否闭合程序结束Y Y Y Y N N N N图7 LED流水灯设计程序流程图5 系统仿真及其调试5.1系统调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在汇编语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。
在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。
此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右移、左移、全亮及全灭等功。
5.2 测试结果对于本系统而言,重点在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
通过利用8051芯片的I/O 引脚。
系统以采用MCS-51系列单片机AT89C51为中心器件来设计LED流水灯系统,实现了8个LED霓虹灯的左、右循环以及全亮全灭的功能,达到了预期的目的。
5.3 测试分析在此,我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
6总结经过两周时间的努力,我顺利的完成了这次单片机课程设计。
从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。
通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。
其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络使资源得到最好的利用。
与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。
课设是一个通过思考、发问、自己解惑并动手、提高的过程。
我会在以后的学习中不断学习,积累经验,完善自己。
参考文献[1]王思明.单片机原理及应用系统分析[M].北京:科学出版社,2012:25-57.[2]杨恢先,黄辉先.单片机原理与应用[M].北京:人民邮电出版,2009:132-142.[3]朱定华.单片机原理与接口技术[M].北京:电子工业出版社,2001:121-127.[4]王威.HCS12微控制器原理及应用[M].北京:航空航天大学出版社,2007:44-50.[5]龚运新.单片机C语言开发技术[M].北京:清华大学出版社,2006:23-35.附录1系统程序ORG 0000HAJMP START ;跳转到主程序存放地指出ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为60H MOV DPTR,#TABSTART1: JNB P0.0,LOOP1 ;判断P0.0处开关是否闭合JNB P0.1,LOOP2 ;判断P0.1处开关是否闭合JNB P0.2,LOOP3 ;判断P0.2处开关是否闭合JNB P0.3,LOOP4 ;判断P0.3处开关是否闭合AJMP START1 ;如果没有开关闭合重新检测LOOP1: CLR A ;累加器清零MOVC A,@A+DPTR ;取数值表中的数CJNE A,#11111111B,SHOW1 ;检查左移结束标志AJMP START ;左移结束重新检测开关状态SHOW1: MOV P1,A ;将数据送到P1口ACALL DELAY ;调用延时子程序INC DPTR ;取数据表指针指向下一数据AJMP LOOP1 ;继续查表取数据LOOP2: MOV A,#09H ;设定累加器的初始值MOVC A,@A+DPTR ;取数值表中的数CJNE A,#00000000B,SHOW2 ;检查右移结束标志AJMP START ;右移结束重新检查开关状态SHOW2: MOV P1,A ;将数据送到P1口ACALL DELAYINC DPTR ;取数据表指针指向下一数据AJMP LOOP2 ;继续查表取数据LOOP3: MOV A,#08H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,AAJMP START ;全灭结束重新检测开关状态LOOP4: MOV A,#11H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,A ;将数据送到P1口AJMP START ;全灭结束重新检测开关状态DELAY: MOV R0,#10 ;延时一段时间D0: MOV R1,#200D1: MOV R2,#123NOPD2: DJNZ R2,D2DJNZ R1,D1DJNZ R0,D0RET ;子程序返回TAB: ; TAB表DB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 11111111BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 00000000BEND。