ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:4.43MB ,
资源ID:3726628      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3726628.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(小区自动售水机课计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

小区自动售水机课计报告.docx

1、小区自动售水机课计报告 课程设计报告 题 目 小区自动售水机设计 课 程 名 称 单片机原理及应用 院 部 名 称 智能科学与控制工程 专 业 自动化 班 级 1 班 学 生 姓 名 学 号 课程设计地点 课程设计学时 指 导 教 师 金陵科技学院教务处制一 设计目的与要求1.1设计的内容和要求1. 通过课程设计,主要达到以下目的:(1)使学生增进对单片机的感性认识,加深对单片机理论方面的理解;(2)使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A、串行口通讯等;(3) 使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和

2、实现单片机应用系统打下良好基础。1.2.设计题目和要求题目:小区自动售水机设计 要求:1.按键控制单元设定按键S7为出水控制按键,当S7按下后,售水机持续出水(继电器接通,指示灯L10点亮)。设定按键S6为停水控制按键,当S6按下后,停止出水(继电器断开,指示灯L10熄灭)。2.数码管显示单元通过4位数码管DS1显示费率,单位为元/升,保留2位有效数字;通过4位数码管DS2显示当前出水量(出水时,单位为升)和总价(停止时,单位为元):按下出水键S7后,清除数码管DS2显示数据,数码管DS2实时显示出水量,保留2位有效数字),在出水状态下,再次按下S7,不会影响出水状态,直到按下停止键S6为止;

3、按下停止出水键S6后,数码管DS2显示总价(保留2位有效数字)。例:当S7按下后,数码管示意图如图2所示:当S6按下后,数码管示意图如图3所示:1.3.AD转换单元 通过光敏电阻RD1和AD转换芯片PCF8591组成的亮度检测电路(亮度值转换为PCF8591通道1的电压)检测环境亮度;当PCF8591通道1输入的电压小于1.25V时,L1灯点亮,大于1.25V时L1熄灭。二 总体设计方案 本系统在实验平台CT107D基础上进行设计,设定按键S7为出水控制按键,当S7按下后,售水机持续出水(继电器接通,指示灯L10点亮)。设定按键S6为停水控制按键,当S6按下后,停止出水(继电器断开,指示灯L1

4、0熄灭)。通过4位数码管DS1显示费率,单位为元/升,保留2位有效数字; 通过4位数码管DS2显示当前出水量(出水时,单位为升)和总价(停止时,单位为元):按下出水键S7后,清除数码管DS2显示数据,数码管DS2实时显示出水量,保留2位有效数字),在出水状态下,再次按下S7,不会影响出水状态,直到按下停止键S6为止;按下停止出水键S6后,数码管DS2显示总价(保留2位有效数字)。通过光敏电阻RD1和AD转换芯片PCF8591组成的亮度检测电路(亮度值转换为PCF8591通道1的电压)检测环境亮度;当PCF8591通道1输入的电压小于1.25V时,L1灯点亮,大于1.25V时L1熄灭。 系统整体

5、框图如下:三 硬件电路设计及原理分析3.1系统整体电路图该系统主要由单片机最小系统、数码管显示模块、AD转换模块、按键模块组成。因P0口所连接的设备较多(数码管,LED,继电器,蜂鸣器等),采用38译码器和锁存器进行对P0端口进行了扩展,单片机选取12M晶振。3.2单片机的工作原理 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系

6、统提供高灵活、超有效的解决方案。 该单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

7、其引脚图如下引脚说明: VCC(40 引脚):电源电压 VS S(20 引脚):接地 P0 端口(P0.0P0.7 P0.7,3932 引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口 P0 写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时在访问外部程序和数据存储器时,P0口也可以提供低 8位地址和8位数据的复用总线位数据的复用总线。此时,P0口内部上拉电阻有效。在 Flash ROM 编在程时,P0 端口接收指令字节端口接收指令字节;而在校验程序时,则输出指令字节则输出指令字节。验证时,要求外接上拉电阻。 P1

8、 端口(P1.0P1.7,18 引脚):P1口是一个带内部上拉电阻的8位双向 I/O 口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0 和 P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),在对 Flash ROM 编程和程序校验时,P1接收低8位地址。 P2 端口(P2.0P2.7,2128 引脚):P2口是一个带内部上拉电阻的8位双

9、向I/O 端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL 输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流I 。 在访问外部程序存储器和 16 位地址的外部数据存储器时,P2 送出高8位地址。在访问 8 位地址的外部数据存储器时,P2 口引脚上的内容(就是专用寄存器(SFR)区 中的 P2 寄存器的内容),在整个访问期间不会改变。在对 Flash ROM 编程和程序校验期间,P2也接收高位地址和一些控制信号。 P3 端口(P3.0P3.7,1017 引脚):P3是一个带

10、内部上拉电阻的8位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4个TTL 输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。在对 Flash ROM 编程或程序校验时,P3 还接收一些控制信号。P3 口除作为一般 I/O 口外,还有其他一些复用功能. RST(9 引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出96个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的DISR

11、TO位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。 ALE/ ROG(30 引脚)地址锁存控制信号 :(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在 Flash编程时,此引脚( ROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部 定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。如果需要,通过将地址位 8EH 的 SFR 的第 0 位置“1”,ALE 操作将无效。这 一位置“1”,ALE 仅在执行 MOVX 或 MOV 指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标

12、志位(地址位 8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。外部程序存储器选通信号( SEN)是外部程序存储器选 SEN(29 引脚)通信号。当 AT89C51RC 从外部程序存储器执行外部代码时,SEN在每个机器周 期被激活两次,而访问外部数据存储器时,SEN将不被激活。 A/VPP(31 引脚)访问外部程序存储器控制信号:为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,A必须接GND。注意加密方式 1 时,A将内部锁定位 RESET。为了执行内部程序指令,A应该接 VCC。在 Flash 编程期间,A也接收12伏VPP电压。XTAL1(19 引脚):振荡器

13、反相放大器和内部时钟发生电路的输入端。XTAL2(18 引脚) :振荡器反相放大器的输入端。单片机最小系统介绍:单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。 复位电路:由电容串联电阻构成,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于

14、2个机周期的高电平。 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电

15、源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。 也就是说在单片机启动瞬间,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。 在单片机启动后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RS

16、T处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。3.3数码管的工作原理数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09,字符AF、H、L、P、R、U、Y等符号及小数点“.”。数码管又分为共阴极和共阳极两种类型。共阳极数码管中8个发光二极管的阳极(二极管正端)

17、连接一起,即为共阳极接法,简称共阳数码管。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管中8个发光二极管的阴极(二极管负端)连接在一起,即为共阴极接法,简称共阴数码管。通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提

18、供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。 通常每个段笔画要串一个数百欧姆的降压电阻。八段LED数码管段代码编码表(连线不同可有多种表):字形 0 1 2 3 4 5 6 7 8 9 黑共阳 C0 F9 A4 B0 99 92 82 F8 80 90 FF共阴 3F 06 5B 4F 66 6D 7D 07 7F 6F 003.4译码器的工作原理 74LS138 为3 线-8 线译码器工作原

19、理1、当一个选通端(E1)为高电平,另两个选通端(/E2)和(/E3)为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。2、利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。3、若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。4、可用在8086的译码电路中,扩展内存。引脚功能A0A2:地址输入端STA(E1):选通端/STB(/E2)、/STC(/E3):选通端(低电平有效)/Y0/Y7:输出端(低电平有效)VCC:电源正GN

20、D:地A0A2对应Y0-Y7;A0,A1,A2以二进制形式输入,然后转换成十进制,对应相应Y的序号输出低电平,其他均为高电平;3.5AD转换器的工作原理概述:AD转换器采用集AD与DA于一体的PCF8591芯片,该芯片具有如下特点: 单电源供电 工作电压:2.5 V 6 V 待机电流低 I2C总线串行输入/输出 通过3个硬件地址引脚编址 采样速率取决于I2C总线速度 4个模拟输入可编程为单端或差分输入 自动增量通道选择 模拟电压范围:VSSVDD 片上跟踪与保持电路 8位逐次逼近式A/D转换 带一个模拟输出的乘法DAC引脚图:AIN0AIN3:模拟信号输入端。 A0A3:引脚地址端。 VDD、

21、VSS:电源端。(2.56V) SDA、SCL:I2C 总线的数据线、时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。3个地址引脚A0、A1和A2用于编程硬件地址,允许将最多8个器件连接至I2C总线而不需要额外硬件。器件的地址、控制和数据通过两线双向I2C总线传输。 器件功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模拟转换。最大转换速率取决于I2C总线的最高速率。 A/D转

22、换的基本原理是:将参考电平按最大的转换值量化,再利用输入模拟电平与参考电平的比例来求得输入电平的测量值(V测=V参*(AD量化值/AD转换的最大值)。有些MCUA/D转换的参考电平可以选择由一个外部引脚输入,这样使得用户可以对A/D转换进行更好的控制。值得注意的一点就是A/D转换的输入电平必须比参考电平低或相等,不然测试的结果就会有很大的偏差。下面以参考电平为5V,转换的精度为8位为例来说明如何取得实际的测量值是多少。如果AD量化值为128,则V测=5*128/256=2.5V。因为V测=V参*(AD量化值/AD转换的最大值)=AD量化值*(V参/AD转换的最大值),而针对具体的硬件电路,“V

23、参/AD转化的最大值”是一个固定的系数。而这个系数,就相当于测试的精度了。对于10位的A/D,5V的参考电压的测试精度约5毫伏,而用2.048伏的参考电压,精度就可以达到2毫伏。当然测试的电压范围相应的也减小了。我曾经就用这种减小测量范围来提高精度,使用PIC16F76做A/D测量,使得正负误差不超过5毫伏的高精度测试电源。当误差超过5毫伏时,电路发出报警声,提示操作员,重新调解电压到规定范围内。器件寻址:PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。由PHILIPS公司规定AD器件地址为1001,引脚地址为A2A1A0,其值由用户选择因此 系

24、统中最多可接8个具有I2C接口的器件,地址的最后一位为方向为R/W,当单片机对A/D器件进行读操作时为 1,进行写操作时为0,总线操作时,由器件地址、引脚地址和方向位组成的从地址为主控器发送的第一字节。3.6 LED灯工作原理 LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体大功率LED灯珠,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连

25、接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。3.7按键的工作原理 独立式按键独立式按键是每个按键占用一根I/O端线。特点:各按键相互独立,电路配置灵活;按键数量较多时,I/O端线耗费较多,电路结构繁杂;软件结构简单。适用于按键数量较少的场合。 矩阵式键盘I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点:占用I/O端线较少;软件结构教复杂。适用于按键较多的场合。键盘扫描控制

26、方式: 程序控制扫描方式键处理程序固定在主程序的某个程序段。特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 定时控制扫描方式利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 中断控制方式中断控制方式是利用外部中断源,响应键输入信号。特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运

27、行效率,但要占用一个宝贵的中断资源。按键开关去抖动问题:键盘的抖动时间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。消除抖动不良后果的方法: 硬件去抖动 其中RC滤波电路去抖动电路简单实用,效果较好。 软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。 考虑到本系统使用按键较少,仅使用了2个按键,为简化程序,因此使用短路冒将2和3短接在一起,将第一列按键当做独立按键来使用。3.8光照检测光敏电阻具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电

28、源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。四 软件部分设计4.1主程序流程图: 主程序主要完成各模块子程序的调用,在这里先初始化定时器,以100ml/s的速度来模拟流量的增加,然后不断扫描按键信息和采集AD值,当按下响应的按键时即进行相应动作,对于AD的设定值,由于系统设计要求以1.25V作为一个阀值,因PCF8591为一个8位AD转换芯片,通过计算公式1.25/5*255=64,可得对应的数字信号为64,将采集到的AD值与64进行比较即可确定LED灯的亮灭状态。 程序清单如下:#include #include #include SMG.h#include ULN2003

29、.H /继电器 蜂鸣器#include TIMER.h#include KEY.h#include PCF8591.h /ad转换模块char show8 = 11,13,5,0,0,0,0,0; /给数码管显示long int water_ml; /多少毫升水bit need_clear = 0; /是否需要清零bit suanqian = 0; /是否需要算钱uchar light = 0; /定义光照强度(范围0-255)void main(void) buzz = 0; /关闭蜂鸣器 relay = 0; /关闭继电器 ULN2003_Latch(); /锁存 t0_init(); /

30、初始化T0 t1_init(); /初始化T1 while(1) key_fun();/按键作用函数 if(suanqian =0) need_clear = 0;/水量不用清零 show4 = water_ml/10000; show5 = water_ml%10000/1000; show6 = water_ml%1000/100; show7 = water_ml%100/10; if(suanqian =1) need_clear = 1;/算钱了,当下一次放水时,水量清0 show4 = water_ml/2/10000; show5 = water_ml/2%10000/1000; show6 = water_ml/2%1000/100; show7 = water_ml/2%100/10; display(show);/*任务要求:输入电压小于1.25 也就是对应的数字量小于 1,25/5 * 254 = 254/4 = 63;*/ if(flag_1s = 1) / 1s到了 flag_1s = 0; init_pcf8591(0x01); /初始化通道1,所以下面采集的AD值就是通道1的 light = adc_pcf8591();/前一次的数据,抛弃 /启动ad

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1