课程设计(论文)任务书信息工程学院信息工程专业(2)班一、课程设计(论文)题目嵌入式课程设计二、课程设计(论文)工作自 2014 年 6 月 9 日起至2014年 6月15日止。
三、课程设计(论文) 地点: 5-402 单片机实验室四、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生掌握单片机各功能模块的基本工作原理;(2)培养学生单片机应用系统的设计能力;(3)使学生能够较熟练地使用proteus工具完成单片机系统仿真。
(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求1)基本要求:(1)分析所设计系统中各功能模块的工作原理;(2)选用合适的器件(芯片);(3)提出系统的设计方案(要有系统电路原理图);(4)对所设计系统进行调试。
2)创新要求:在基本要求达到后,可进行创新设计,如改善单片机应用系统的性能。
3)课程设计论文编写要求(1)要按照书稿的规格打印撰写论文。
(2)论文包括目录(自动生成)、摘要、正文、小结、参考文献、附录等。
(3)论文装订按学校的统一要求完成。
4)答辩与评分标准:(1)完成原理分析:20分;(2)完成设计过程:30分;(3)完成调试:20分;(4)回答问题:20分;(5)格式规范性(10分)。
5)参考文献:(1)张齐.《单片机原理与嵌入式系统设计》电子工业出版社(2)周润景.《PROTUES入门实用教程》机械工业出版社(3)任向民.《微机接口技术实用教程》清华大学出版社(4)/view/a5a9ceebf8c75fbfc77db2be.html6)课程设计进度安排内容天数地点构思及收集资料1图书馆系统设计与调试 4 实验室撰写论文2图书馆、实验室学生签名:2014 年6 月9日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(30分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)格式规范性(10分):优()、良()、中()、一般()、差();评阅人:职称:2014 年6 月15 日目录摘要 (4)第1章设计要求 (5)1.1设计要求 (5)1.2设计内容 (5)1.3设计基本环境 (5)第2章设计方案和论证 (6)2.1总设计原理框图 (6)2.2设计方案选择 (7)第3章硬件电路 (8)3.1单片机的选择 (8)3.1.1 单片机内部原理分析 (8)3.1.2单片机的引脚及封装 (9)3.1.3单片机最小系统 (11)3.2 数码管显示工作原理 (11)3.3 8255A模块 (12)3.4时间调节模块 (13)3.4.1 时间设置 (13)3.4.2整点报时 (13)第4章软件调试 (14)4.1时间调节程序流程图 (14)4.2主程序流程图 (18)第5章仿真调试 (22)第6章总结与体会 (23)第7章参考文献 (23)摘要单片计算机即单片微型计算机。
由RAM ,ROM,CPU构成,集定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
通过本子课程设计掌握单片机的基本原理,加深对课堂知识的理解,从而达到学习、设计、开发单片机软硬的能力。
本课程设计由AT89C51,BUTTON,六段数码管等构成,结合单片机最小系统晶振电路作为驱动电路,复位电路作为系统复位使用;结合proteus和keil软件进行设计此系统,通过四个按键调整走时时间和定时时间,由定时器定时并在数码管上显示相应的时间,通过中断和按键扫描实现对时间的停止、启动和设置调整。
程序利用C语言进行编写,结合单片机的引脚的以及相关知识完成程序的编写,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
运行仿真时,可以显示时钟走时时间,通过按键可以修改时间,以及可以进行手动设置闹钟闹铃时间,同时通过蜂鸣器进行闹铃的效果,通过仿真调试效果真实、准确,节省了硬件资源。
关键字:单片机;LED数码管;定时;子时钟;键盘控制第1章1.1 设计要求1、准确计时,以数字形式显示时、分、秒的时间。
2、小时以24小时计时形式,分秒计时为60进位。
3、校正时间功能,即能随意设定走时时间。
4、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。
5、设计5V直流电源,系统时钟电路、复位电路。
6、能指示秒节奏,即秒提示。
7、可采用交直流供电电源,且能自动切换。
1.2 设计内容以单片机为控制器,采用定时器中断的方法,设计一个一天24小时进制的实时时钟,并用8个发光二极管分别显示时、分、秒的记时以及过度符号“-”,通过按键调定时钟的具体时间,达到修改时间,设定闹钟,整点报时,倒计时秒表的效果。
1.3设计基本环境条件环境条件:电脑、软件(keil)、硬件(proteus)组合设计系统Keil:它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
Proteus:它是目前最好的仿真单片机及外围器件的工具。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。
第2章 设计方案和论证本次设计时钟电路,使用了89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C 语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED 显示即可满足设计要求。
2.1 总设计原理框图如下图所示:2.2 设计方案的选择1.计时方案方案1:采用现成实时时钟芯片使用一些实时时钟集成电路,如DS1287、DS12887、DS1302等。
这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时等功能,计时数据的更新每秒自动进行一次,不需要程序干预。
因此,在工业实时测控系统中多采用这类专用芯片来实现实时时钟功能。
方案2:使用单片机内部的可编程定时器。
利用单片机内部的定时计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案优点是节省硬件成本,可以利用程序代替。
缺点是程序设计相对较为复杂,精确度不高,同时还可能会和延时冲突,导致显示效果不佳。
2.显示方案对于实时时钟而言,显示显然是另一个重要的环节。
通常LED显示有两种方式:动态显示和静态显示。
静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。
但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。
需要几个LED就必须占有几个并行口,比较适用于LED 数量较少的场合。
当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。
LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。
本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。
第3章硬件电路3.1单片机的选择3.1.1单片机内部原理分析通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。
51单片机中其主要资源有:8位CPU、片内带震荡器及时钟电路、128B片内数据存储器、4K片内程序存储器(8031无)、21B特殊功能寄存器、4个8位的IO口、一个全双工串行接口、两个16位定时器、中断系统有5个中断源、111条指令。
其内部结构如图3-1所示。
图3-13.1.2单片机单片机的封装及引脚89C51单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM 和128bytes的RAM,2个16位定时计数器[5]。
89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。
这些部件通过内部总线联接起来,构成一个完整的微型计算机。
其管脚图如图所示。
89C51单片机管脚结构图VCC:电源。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在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口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。