课程大作业说明书样本.docx
- 文档编号:29082241
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:18
- 大小:158.74KB
课程大作业说明书样本.docx
《课程大作业说明书样本.docx》由会员分享,可在线阅读,更多相关《课程大作业说明书样本.docx(18页珍藏版)》请在冰豆网上搜索。
课程大作业说明书样本
交通与汽车工程学院
课程设计说明书
课程名称:
微机原理及应用课程设计
课程代码:
题目:
xxxx
年级/专业/班:
学生姓名:
学 号:
开始时间:
2012年07月02日
完成时间:
2012年07月06日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总分(100)
指导教师签名:
年月日
摘要…………………………………………………………………………………………1
1引言…………………………………………………………………………………………
1.1问题的提出…………………………………………………………………………………
1.2任务与分析………………………………………………………………………………
2方案设计…………………………………………………………………………………
2.1系统设计方案………………………………………………………………………
2.2系统总体框图………………………………………………………………………
3系统硬件设计…………………………………………………………………………
3.189C51单片机………………………………………………………………………
4系统软件设计………………………………………………………………………
4.1proteus软件环境介绍…………………………………………………………
4.2protel软件环境介绍…………………………………………………………
4.3系统软件分析………………………………………………………………………
4.4程序流程图…………………………………………………………………………
5系统调试过程………………………………………………………………………
结论…………………………………………………………………………………………
致谢…………………………………………………………………………………………
参考文献……………………………………………………………………………………
摘要
本设计是基于89C51单片机为控制核心的煤气监控系统设计。
通过单片机系统设计实现对家用煤气的控制功能,该系统不仅能及时准确的检测出煤气的泄漏,发出声音报警,还能实施应急处理,同时能自动关闭阀门。
本设计说明书对该系统的硬件电路,工作原理进行了详细的介绍。
同时给出了软件设计的流程图和主要源代码。
关键词:
89C51单片机煤气监控声音报警自动关闭阀门
1引言
1.1问题的提出
近年来,随着人民生活水平的提高,管道煤气和罐装煤气已深入到寻常百姓家。
但由于使用不当或设备老化等原因导致的煤气泄漏极大地威胁着人们的生命财产安全。
目前,一般的煤气报警功能单一;而大型的监控系统又价格不菲,需专门的技术人员来管理,不使用于中小企业和家庭。
针对此类煤气管理现状,我们研究设计了一种用单片机控制的智能煤气监控系统,具有结构简单、价格低廉、易于操作等特点。
它利用89C51系列单片机的强大功能和可扩充性为后盾,可以实现对前端煤气监控系统的各种实时、有效、多功能地控制操作。
。
1.2任务与分析
本次设计的系统的控制中心是89C51单片机。
首先,在Protel软件环境中进行硬件电路图的设计。
然后在8051软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。
此.hex文件是硬件电路运行实现的源代码来源。
把.hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中运行硬件电路,时钟的日期就可以正常显示了。
本设计的系统主要由:
AT89C51为中央处理芯片,用于数据处理,初值设定。
时钟芯片DS1302是本例的核心模块,由他提供时钟信息并由LED显示,用汇编语言进行编程。
本系统可以分为以下4大模块:
1、AT89C51模块:
用于数据处理,和外围的时钟芯片通信,并控制时钟传输过程,采集时间信息并予以处理。
2、ADC0809模块:
3、数码管显示模块:
显示模块采用普通的共阳LED数码管,此模块用于实时的显示时间信息。
4、程序:
包括单片机控制时钟芯片的接口程序(实现单片机和时钟芯片之间的数据传输过程)和数码管显示程序。
2系统方案设计
2.1系统设计方案
通过查阅相关资料,设计初期共有3个方案供我选择,分别是:
(1)采用89C2051单片机组成的系统;
(2)采用89C51单片机,8155芯片组成的系统;(3)采用89C51单片机,DS1302实时时钟芯片组成的系统。
(1)采用89C2051单片机组成的系统
此系统的硬件部分主要是由89C2051单片机,74LS48芯片,ULN2003芯片所组成。
该系统硬件结构简单,但是单片机的I/O接口太少,不足以实现多种功能,软件设计部分,程序冗长而复杂,易产生混淆。
(2)采用89C51单片机,8155芯片组成的系统
这个方案采用89C51单片机,8155芯片,LED显示器,4*4键盘来组成系统的硬件。
该系统采用的是单片机内部的定时/计数器进行中断定时,配合软件延时实现时,分,秒的计时。
但这样的话,程序复杂化,时间信息也不容易长期保存。
(3)采用89C51单片,DS1302实时时钟芯片组成的系统
此方案在硬件部分采用了89C51单片机,DS13O2时钟芯片,74LS47芯片,LED显示器,几个按键。
该系统的最大特点是采用了新的芯片即DS1302。
在功能上进行了扩充,并且使得硬件连线显得较为简单,在软件部分,程序显得层次分明。
最后确定设计采用第3方案,即系统是由89C51单片机,74LS164芯片,DS1302时钟芯片,LED显示器组成。
2.2系统总体框图
图1系统总体框图
当程序启动后,程序进入初始化阶段。
单片机将从DS1302时钟芯片中读出年,月,日,时,分,秒,。
并且经过显示缓存后送入LED显示器进行显示。
当需要调整日期和时间时,按下“调日历”键,进入调整年、月、日。
首先“年”的两位数码管闪烁显示,表示在调整“年”状态,按“加一”键调整到期望的年,再按“调日历”键确认“年”,同时进入调整“月”状态。
同理,月和日的调整方法也是一样。
调整时间也是同样的道理。
闹钟的设置则是当按下闹钟键后,时分秒的显示不变,并且小时部分闪烁,按“加一”键调整到期望的闹钟时间后,再按“闹钟”键确认小时,同时进入调整分钟的状态。
调整好后再按下“闹钟”键确认,返回正常显示,当到达设定时间时,蜂鸣器响。
3系统硬件电路设计
3.189C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图289C51单片机引脚图
89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用FlashROM替代了ROM/EPROM而已[3]。
89C51单片机内部结构如图所示。
图389C51单片机内部结构示意图
各引脚的功能如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高[3]。
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口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA:
当/EA保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,则执行内部程序存储器中的程序。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2ADC0809
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片
1.主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
2.内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
3.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
3.3
4系统软件设计
4.1proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。
针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。
如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。
Proteus建立了完备的电子设计开发环境,尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果[2]。
Proteus是目前最好的模拟单片机外围器件的工具。
可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。
其实Proteus与multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。
当然,硬件实践还是必不可少的。
在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。
另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。
Proteus软件主要具有以下几个方面的特点:
1、设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4、它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。
5、在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2Protel软件环境介绍
Protel印制板设计软件包是澳大利亚proteltechnology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。
它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。
布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。
在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。
对于极少数不能布通的定方,protel可以用飞线指示出来,引导用户用手工方法连通。
另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度[1]。
Protel对微机的软硬件配置要求很低:
cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。
也能在Windows9X平台的模拟DOS下运行。
Protel已成为印制板设计加工方面的工业标准。
据初步统计protel在CAD的市场占有率达95%,成为电子产品制造业界的首选CAD软件。
4.3系统软件分析(写出你编写程序前,主要要先考虑的地方)
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。
可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:
(1)日历程序设计过程
因为使用了时钟芯片DS1302,日历程序只需要从DS1302各寄存器中读出年、周、月、日、时、分、秒等数据,再处理即可。
在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,在经过处理后,送给显示缓冲单元。
(2)确定数值存储地址
表3数值存储地址表
60H
从1302中读出的秒存放的地址单元
61H
从1302中读出的分存放的地址单元
62H
从1302中读出的小时存放的地址单元
63H
从1302中读出的日期存放的地址单元
64H
从1302中读出的星期存放的地址单元
65H
从1302中读出的月份存放的地址单元
66H
从1302中读出的年份存放的地址单元
4AH-4BH
年份的显示缓冲单元
48H-49H
月份的显示缓冲单元
46H-47H
日期的显示缓冲单元
44H-45H
小时的显示缓冲单元
42H-43H
分钟的显示缓冲单元
40H-41H
秒的显示缓冲单元
58H
闹钟的小时存放单元
57H
闹钟的分钟存放单元
(3)中断允许寄存器IE
在程序采用了外部中断1的工作方式。
完成闹钟的时间输入的功能。
在程序中使用了中断允许寄存器IE。
下面介绍IE。
IE
D7
D6
D5
D4
D3
D2
D1
D0
IE
EA
ES
ET1
EX1
ET0
EX0
位地址
AFH
ACH
ABH
AAH
A9H
A8H
1、EA:
中断总允许位。
EA=1,CPU开放中断;EA=0,CPU禁止所有的中断请求。
2、ES:
串行中断允许位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
3、ET1:
T1溢出中断允许位。
ET1=1,允许T1中断;ET1=0,禁止T1中断。
4、EX1:
外部中断1允许位。
EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
5、ET0:
T0溢出中断允许位。
ET0=1,允许T0中断;ET0=0,禁止T0中断。
6、EX0:
外部中断0允许位。
EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断[5]。
(4)LED动态扫描显示方式的设计
1、将要显示的数据地址送至P1口,让LED接收信号。
2、通过单片机P2.0-P2.6控制相应的LED位选线,本设计定义的位选线如下表所示:
表4位选线定义表
位选线
LED被选中位所代表的含义
P2.0
年份的高位和小时的十位
P2.1
年份的低位和小时的个位
P2.2
月份的高位和分钟的十位
P2.3
月份的地位和分钟的个位
P2.4
日的高位和秒的十位
P2.5
日的低位和秒的个位
4.4程序流程图
(1)主程序流程图
主程序流程图说明:
因为使用了时钟芯片DS1302,只需要从DS1302各寄存器中读出年、周、月、日、时、分、秒等数据,再处理即可。
程序初期,对地址单元赋初值,并且开启中断。
在首次对DS1302进行操作之前,必须对它进行初始化,然后进行按键的判断,如果按下闹钟键,则转去处理闹钟中断的程序,若没按下闹钟键,则再判断是否按下了调日历和挑时间按键,若按下,则转去处理相应的调整子程序,若没按下,则正常显示当前的日期和时间。
将正常显示的时间与闹钟设置的时间相对比,若相等则使蜂鸣器响,若不相等,则正常显示。
(2)调日历子程序的流程图
图16调日历子程序流程图框图
调日历子程序流程图说明:
在此流程图中,主要说明的是年份的调整方法,之所以没有说明月份和日的调整,是因为它们的调整方法与年份如出一辙,故此省略。
通过流程图可以看出日历的调整,是先通过判断调日历的按键是否按下,以此来确定是否进入调整日历子程序。
日历的调整是由调日历键和+1键来共同实现的,当按下调日历键,调整的相应位闪烁,再按下+1键,调整闪烁位的数值,调好后再按下调日历键,确认刚调整位以及使下一调整位闪烁。
当全部的日历都调整好后,再按下调日历键,返回显示部分。
(3)INT1中断程序流程图
图18中断程序流程图框图
中断程序流程图说明:
当按下闹钟键,则执行外部中断1的程序,跳至中断程序。
将小时的部分闪烁,表示要对此进行调整。
按下+1键,对闪烁位进行调整,输入闹钟的小时时间。
再按下闹钟键,对小时位进行确认,使分钟位闪烁,再按下+1键进行分钟位的调整。
将输入的闹钟的小时,分钟分别放入相应的地址单元保存起来。
再次按下闹钟键,就跳回主程序,正常显示。
5系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。
通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
(1)在Protel99SE中,对硬件电路图进行ERC电气规则检查。
图20protel原理图
图21ERC电气规则检查结果
(2)程序调试
程序经过调试显示“0错误,0警告”。
表示程序调试通过。
图22程序调试通过示意图
(3)protues调试
图23protues仿真图
结论
本次设计在显示时间的基础上加入了年,月,日。
还能够对显示的内容进行调整。
在本次设计首次采用了DS1302时钟芯片,此芯片稳定性好,并且功能强大。
而主要芯片89C51单片机,在系统中的作用,一为对接收到的按键信号进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1302中的时间并控制LED显示年、月、日、时、分、秒、。
本系统采用软件和硬件组合的方法,其最大特点是:
硬件电路简单,安装方便易于实现,软件设计独特、可靠。
本次设计只涉及了一部分的功能,可以将之使用在汽车仪表盘的显示中。
在进一步的研究中还可以考虑加入温度的检测等功能,相信会使之更加完善。
致谢
在赵玲老师的指导下,我完成了本次设计。
本设计从选题到完成,每一步都是在她的指导下完成的,倾注了老师大量的心血。
另外,本设计的完成也离不开其他老师和各位同学给我的建议和帮助,是他们让我明白了团队合作的精神。
在此,我谨向赵玲老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢!
参考文献
1]《Protel99SEEDA技术及应用》徐峥颖编著,北京:
机械工业出版社,2005
[2]《单片机系统的protues设计与仿真》张靖武编著,北京:
电子工业出版社,2007
[3]《单片机原理及接口技术》李朝青编著,北京:
北京航空航天大学出版社,2005
[4]《MCS-51单片机应用开发实用子程序》边春远编著,北京:
人民邮电出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 作业 说明书 样本