豆浆机单片机课程设计

合集下载

基于LM3S811单片机的全自动豆浆机控制电路设计

基于LM3S811单片机的全自动豆浆机控制电路设计
便 的 运 用 多 种 AR M 的 开 发工 具和 片 上 系统
定义数码管译码数组;
4 结 论
n公 司 的 S t e l l a r i s系 列 的 单 片 机 , L M3 S 8 1 1单片机 与 S t e l l a r i s系列的所有成 员是 代码 兼容的,这为用户提供 了灵活性,能够适 / / 例如定 应各种精确 的需求 ,必将得到越来越广泛 的应
单 片机 具 有 C o r t e x r M - N 3内核 , 它们 为对 成 本 尤其敏 感 的嵌入 式 单 片机应 用 方案 带 来 了高性 能 的 3 2位运 算 能 力。本论 文设计 了以 C o r t e x 一 M 3为 内核 的嵌入 式 单 片 机L M 3 S 8 1 1为 控 制 器 的 , 具 有 自 动 检 测 水 位 , 防 干 烧 , 自动 进 行 浸泡 、预热、打浆 、煮浆全过程 , 还有 豆 浆 防溢 出、温 度检 测 等功

, / 低水位 电极、防溢出电极、温度检 测
i f ( s a mp l e _ t i me == 1 1 {
检 测水位 电极:
/ / 设置低 水位标 志,
Y8 I — I 1 0 ,采用 电阻 串联分 【 关键词 】嵌入式 C o r t e x T N M 3 L M 3 S 8 1 1 温度 器采用 热敏 电阻 KT 压法 直接将 热敏电阻两端的电压输入到单片机 检 测 L M3 S 8 1 1的 AD C中;采用变压器降压 、整流 、
3 基于L M 3 S 8 1 1 单片机 的豆 浆控 制电路机
程 序 框 架
本 设计 为全 自动 豆浆 机 ,采 用状 态机 描 述进行编程 。按照状态机描述豆浆机不 同得工 作状 态 ,程 序 由 c语 言写 出,主 程序 由单 片 机初始化 、温度传感器初始 化、键盘 初始化等 等,程序框架如下:

单片机课程设计智能豆浆机控制系统设计

单片机课程设计智能豆浆机控制系统设计

摘要本智能豆浆机的控制系统是基于AT89S52单片机来实现的,其主功能有:1.可以手动和自动对各种谷物和豆类进行加热和粉碎,工作模式分手动粉碎,手动加热和自动三种。

2.在豆浆机工作的过程中,数码管能给予温度和工作模式的显示。

3.在豆浆机工作过程中能对液位溢出和豆浆机干烧进行检查,发现后能蜂鸣报警并停止相关工作。

4.豆浆机工作完成时,能蜂鸣报警,提醒用户。

豆浆机的自动工作流程有软件控制:先判断是否干烧,再加热到80度,然后停止加热,进行粉碎并在间隙进行加热,再度检查液位,是否干烧,再进行加热,进入防溢延煮过程,防溢延煮后,发出报警声,提示豆浆已做好。

液位溢出保护和防干烧保护用中断来控制,其检测由于没有防溢电极,功能用开关来模拟实现。

目录摘要---------------------------------------------------------------------------------------------1 第一章绪论--------------------------------------------------------31.1引言-------------------------------------------------------- 31.2原理-------------------------------------------------------- 3 第二章设计方案与实现功能-------------------------------------------42.1设计思路---------------------------------------------------- 42.2实现功能---------------------------------------------------- 5 第三章系统硬件电路设计---------------------------------------------53.1单片机的选择------------------------------------------------ 53.2温度检测电路的设计------------------------------------------ 63.2.1 DS-18B20数字温度传感器介绍--------------------------- 63.2.2 电路设计-----------------------------------------------73.3加热电路的设计---------------------------------------------- 73.4 电机电路设计------------------------------------------------83.5 数码管显示电路设计------------------------------------------93.6防干烧及防溢出电路的设计----------------------------------- 103.7报警电路的设计--------------------------------------------- 113.8复位电路的设计--------------------------------------------- 123.9时钟电路和按键电路设计------------------------------------- 13 第四章系统软件的设计-------------------------------------------- 134.1编程思路--------------------------------------------------- 13 第五章总结--------------------------------------------------------15 参考文献-----------------------------------------------------------17 附录一:豆浆机控制系统硬件图---------------------------------------18 附录二:豆浆机控制系统软件程序-------------------------------------18 评语表--------------------------------------------------------------------------------------------第一章绪论1.1引言豆浆机是一种新型的家用饮用机,以黄豆为原料,可以直接加工出可口的热豆浆饮品。

单片机豆浆机课程设计

单片机豆浆机课程设计

单片机豆浆机课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握其编程方法。

2. 学生能够了解豆浆机的电路构成,工作原理及其与单片机的连接方式。

3. 学生能够运用所学的单片机知识,设计并实现一个简单的豆浆机控制系统。

技能目标:1. 学生能够运用编程软件进行单片机程序的编写、调试与下载。

2. 学生能够运用电路设计软件绘制豆浆机控制系统的电路图。

3. 学生能够通过小组合作,完成豆浆机控制系统的搭建与调试。

情感态度价值观目标:1. 培养学生热爱科学,敢于创新,主动探索的学习态度。

2. 培养学生团队协作精神,学会与他人沟通、交流、合作。

3. 增强学生对我国传统饮品豆浆的认识,提高学生对传统文化的尊重和传承意识。

课程性质:本课程为实践性较强的课程,结合单片机技术与豆浆机应用,培养学生动手能力、创新能力和团队合作能力。

学生特点:学生具备一定的单片机基础知识,对实际应用有较高的兴趣,喜欢动手实践。

教学要求:教师需引导学生将理论知识与实际应用相结合,注重培养学生的动手能力和创新能力。

在教学过程中,关注学生的个体差异,提供个性化指导,确保每位学生都能在课程中取得进步。

通过课程学习,使学生达到预定的学习成果。

二、教学内容1. 单片机基础原理:回顾单片机的组成、工作原理,重点讲解内部资源、I/O 口编程及中断系统。

教材章节:《单片机原理与应用》第1章、第3章。

2. 编程软件使用:介绍编程软件的使用方法,包括程序编写、调试、下载等操作。

教材章节:《单片机原理与应用》第4章。

3. 豆浆机电路原理:分析豆浆机的电路构成、工作原理,讲解与单片机的连接方式。

教材章节:《家用电器原理与应用》第2章。

4. 电路设计软件应用:教授电路设计软件的使用,绘制豆浆机控制系统电路图。

教材章节:《电路设计与制图》第1章。

5. 单片机控制豆浆机设计与实现:指导学生进行豆浆机控制系统的设计,包括程序编写、电路搭建、调试等。

教材章节:《单片机原理与应用》第6章、《家用电器原理与应用》第3章。

豆浆机plc课程设计

豆浆机plc课程设计

豆浆机plc课程设计一、课程目标知识目标:1. 学生能理解PLC(可编程逻辑控制器)的基本原理和结构。

2. 学生能掌握PLC在豆浆机控制系统中的应用。

3. 学生能了解并描述豆浆机制作过程中涉及的传感器及其功能。

技能目标:1. 学生能运用PLC编程软件进行基本的程序编写和调试。

2. 学生能通过PLC实现对豆浆机启动、停止、温度控制等功能的操作。

3. 学生能分析并解决豆浆机PLC控制系统中的简单故障。

情感态度价值观目标:1. 学生培养对自动化技术的兴趣,认识到PLC在工业控制领域的重要性。

2. 学生养成合作、探究的学习习惯,提高团队协作能力和解决问题的能力。

3. 学生认识到科技发展对提高生活品质的作用,增强社会责任感。

本课程针对高中年级学生,结合电子技术、自动化控制等学科知识,以豆浆机PLC控制系统为载体,培养学生的实际操作能力和创新能力。

课程注重理论与实践相结合,通过实际操作和案例分析,让学生在掌握知识的同时,提高技能和情感态度价值观。

课程目标的设定旨在使学生在学习过程中具备明确的方向和可衡量的成果,为后续教学设计和评估提供依据。

二、教学内容1. PLC基本原理与结构:介绍PLC的组成、工作原理、编程语言等基础知识,对应教材第3章。

- PLC的硬件结构- PLC的软件组成- PLC的工作原理2. 豆浆机PLC控制系统设计:分析豆浆机制作过程中的控制需求,学习PLC 在豆浆机控制系统中的应用,对应教材第4章。

- 豆浆机制作过程及控制需求- PLC在豆浆机控制系统中的作用- 豆浆机PLC控制系统的设计方法3. PLC编程与调试:学习使用PLC编程软件进行程序编写和调试,对应教材第5章。

- PLC编程语言及指令系统- PLC编程软件的使用方法- 豆浆机PLC程序的编写与调试4. 传感器及其应用:了解豆浆机制作过程中涉及的传感器,掌握其工作原理和应用,对应教材第6章。

- 常用传感器的工作原理- 传感器在豆浆机控制系统中的应用- 传感器选型及安装调试教学内容安排和进度:第1周:PLC基本原理与结构第2周:豆浆机PLC控制系统设计第3周:PLC编程与调试第4周:传感器及其应用教学内容的选择和组织遵循科学性和系统性原则,确保学生在学习过程中能够逐步掌握PLC相关知识和技能。

基于单片机的全自动豆浆机控制系统设计

基于单片机的全自动豆浆机控制系统设计

论文题目:基于单片机的全自动豆浆机控制系统设计摘要全自动豆浆机基本工作过程是将事先泡好的大豆放入豆浆机内,并加入适量冷水后将电热管通电加热至80°C,粉碎电机通电工作。

进行磨豆浆期间断续工作三次,每次2min,每两次间隔5s,然后进入煮豆浆程序,煮开后在延迟5min,并声音提示工作过程结束。

全过程处于无水报警,在自动工作期间,任何时刻提起豆浆机,都会停止工作并报警。

当重新将豆浆机放入水中后,回复以前工作状态。

熟悉单片机SH66P20A的基本结构,工作原理。

根据单片机的工作原理,将其运用于豆浆机中来控制其电路系统;以实现上述豆浆机工作流程的自动化,并运用汇编语言进行相关的编程。

关键词:SH66P20A 加热延迟ABSTRACTAutomatic DouJiangJi basic working process is will advance bubble good soybean into DouJiangJi inside, and join the amount of cold water after heating tube electrify heats up to 80 ° C, crushing motor electrify work. For grinding soya-bean milk during work three times, and each time.misunderstandings 2min, every two interval, then cook soymilk into 5s program, boil in delay 5min, and sound reminders working process is over. Process are without water alarm, in automatic working period, any moment mention DouJiangJi, will stop work and alarm. When will DouJiangJi into the water again after, reply before working state. Familiar with the basic structure of SH66P20A MCU, working principle. According to the working principle of MCU is applied to the DouJiangJi to control its circuit system, In order to realize the above DouJiangJi work flow automatization, and use of assembly languages relevant programming.Keywords: SH66P20A heating delay目录第一章豆浆机的前景与基本结构 (1)第一节前言 (1)第二章全自动豆浆机硬件电路系统 (4)第三章全自动豆浆机的单片机控制 (5)第一节 SH66P20A单片机的简介 (5)结束语 (9)谢辞 (10)参考文献 (11)[1] .薛永毅等.《新型电源电路应用实例》电子工业出版社,2002 [2] .王化祥.《张淑英编著.传感器原理及应用》天津大学出版社,1992 [3] .刘迎春著.《传感器原理、设计与应用》国防科技大学出版社,1991 [4] .汤元信.亓学广.刘元法等编著.《电子工艺及电子工程设计》北京航空航天大学出版社,1999年 [5] .胡汉才编著.《单片机原理及接口技术》清华大学出版社,1996 [6] .周峻雄.《三合一全自动豆浆机》今日科技,2000. (11)第一章豆浆机的前景与基本结构第一节前言1.1前言豆浆是一种老幼皆宜、价廉质优的液态营养品,它所含的铁元素是牛奶的6倍,所含的蛋白质虽不如牛奶高,但在人体内的吸收率可达到85%,因此有人称豆浆为“植物牛奶”。

基于单片机的智能豆浆机设计内容

基于单片机的智能豆浆机设计内容

基于单片机的智能豆浆机设计内容说到豆浆机,大家应该都不陌生吧?咱们日常早餐能喝上一杯香浓的豆浆,真的是一种幸福感满满的享受,尤其是在寒冷的早晨,来一杯热腾腾的豆浆,简直能暖到心底!但是,要是把豆浆机设计得智能一点,不仅能做豆浆,还能做其他美味,岂不是美滋滋?今天就来聊聊这个“基于单片机的智能豆浆机设计”的事儿,嘿嘿,听起来很高大上对吧?其实它没那么复杂,说白了就是让豆浆机变得更聪明,更好用,更符合咱们的日常需求。

咱们得了解一下单片机,别吓到,其实它就是一个小小的“大脑”,可以控制豆浆机的各种动作。

这就像是你控制电视遥控器一样,单片机能让豆浆机做各种操作:加热、搅拌、定时等等。

你只需要按个按钮,豆浆机就开始运转,一切都搞定,简直是懒人必备神器啊!试想一下,早晨你还在床上做美梦,豆浆机已经开始工作,豆浆香气四溢,等你起床喝上一杯,简直不要太舒服!除了最基本的做豆浆功能,智能豆浆机还能做很多有意思的事。

比如说,它能根据你的需求调节温度,做出不同口感的豆浆。

有些人喜欢豆浆浓一点,有些人喜欢清淡一点,这下子,豆浆机就能“懂你”了,精准控制温度,不会让你喝到一杯“水浆”,也不会让你喝到一杯“老火汤”!不止如此,它还可以根据定时功能自动启动,设定一个时间,到点就开始制作,这样你早晨起床时就能喝到刚刚做好的热豆浆,简直像个“早安精灵”一样。

再说了,这智能豆浆机还可以通过手机APP来控制,这可太先进了!试想一下,晚上你躺在床上,突然想到明天要喝豆浆,不用动手,直接用手机操作一下,豆浆机就能在你起床前做好。

一边刷牙一边喝豆浆,这种生活想想都觉得酷!还有个好玩的地方,豆浆机还能记住你的口味偏好,以后每次做豆浆,都能根据你以前的设置来自动调整,无需每次都重新调试,懒得动手的朋友简直要喜欢死了。

说到这里,不得不提的是智能豆浆机的清洁功能。

谁不怕豆浆机用完后,洗起来麻烦啊?有些老式豆浆机清洗起来可真是“像打仗一样”,搅拌刀、搅拌杯,哪里都有豆渣,弄得满手是豆浆渍。

单片机课程设计 豆浆机

单片机课程设计 豆浆机

电气与电子信息工程学院《单片机》课程设计报告题目:智能豆浆机专业班级:电气工程及其自动化2012级(3)班学号:201240220326姓名:李越同组人:陈俊亚指导教师:胡蔷黄磊设计时间:2014年12月15日—2014年12月19日设计地点:K2-407单片机、微机原理实验室课程设计任务书2014 ~2015 学年第1学期一、课程设计题目:(智能豆浆机)二、课程设计要求1. 根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。

要求概念清楚、方案合理、方法正确、步骤完整;2. 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;3. 熟练使用单片机汇编语言或C51进行软件设计;4. 熟练使用Proteus、Keil软件进行仿真电路测试;5. 熟练使用Protel软件设计印刷电路板;6. 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;7. 编写设计报告,参考毕业设计论文格式。

(1)根据课题要求确定系统设计方案;(2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表;(3)计算电路参数和选择元器件,画出软件流程图(列出程序清单);(4)打印仿真结果,根据测试结果进行误差分析与修改调整;(5)对设计进行全面总结。

三、课程设计内容(含技术指标)本次设计采用单片机AT89S52来实现全智能豆浆机各个功能的控制,只要功能内容如下:1. 针对食品原料的物理特性不同,在加工处理时采用三种不同的工作模式,其主要区别在于粉碎和加热时间长短不同,用蓝色、黄色LED灯分别来表示加热、粉碎过程。

2. 不同的工作模式、温度、加热与粉碎设定时间,以及其剩余时间都用数码管显示出来。

3. 当液位溢出或干烧状态时,实现立即停止工作,蜂鸣器发出声音产生报警(以中断方式采用拨码开关来模拟)。

4.每个模式工作完成后自动报警。

1.总体方案1.1 引言随着我们生活水平的提高,五谷杂粮成为了当今人们的健康理念。

豆浆机设计方案

豆浆机设计方案

主要内容、基本要求、主要参考资料:1. 主要内容:设计一个豆浆机控制系统2.基本要求:1.利用51单片机来控制豆浆机的加热、碎豆、煮浆过程;2.利用单片机的并行口引脚实现加热电机、粉碎电机的控制;3.当加热完成后报警提示;4.豆浆机具备防溢出功能。

3.参考资料[1]李广弟等单片机基础北京航空航天出版社[2]楼然苗等 51系列单片机设计实例北京航空航天出版社[3]唐俊翟等单片机原理与应用冶金工业出版社[4]刘瑞新等单片机原理及应用教程机械工业出版社[5]吴国经等单片机应用技术中国电力出版社[6]李全利,迟荣强编著单片机原理及接口技术高等教育出版社,[7]张毅刚等 MCS-51单片机应用设计哈工大出版社,[8]霍孟友等单片机原理与应用机械工业出版社[9]许泳龙等单片机原理及应用机械工业出版社[10]段晨东《单片机原理及接口技术》清华大学出版社完成期限:指导教师签名:课程负责人签名:年月日郑州华信学院课程设计说明书题目:豆浆机控制系统姓名:陈江涛院(系):机电工程学院专业班级:电气工程及其自动化学号: 0902120146指导教师:宋东亚许洋洋成绩:时间:年月日至年月日目录1.摘要 (5)1.1单片机在智能仪器中的应用 (5)1.2单片机在过程控制中的应用 (5)1.3.单片机与e-Home (6)1.4.单片机与Internet (6)2.引言 (6)3.设计要求 (7)3.1.设计任务 (7)3.2.要求: (7)4.设计分析 (8)4.1.设计目的、意义: (8)4.2.硬件电路设计及描述 (9)5.软件设计流程及电路图 (19)5.1设计流程: (19)5.2设计电路图 (20)6.软硬件调试 (21)6.1软件调试 (21)6.2硬件调试 (21)7.豆浆机源程序代码 (22)8.参考资料 (28)9.附录 (29)10.总结 (31)1.摘要单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理及接口技术》课程设计报告题目:智能小家电(全自动豆浆机)控制系统的设计专业:电气工程及其自动化班级: 32040901学号:**********姓名:何**授课教师:***时间: 2011.12设计要求题目4 智能小家电控制系统的设计(1)(一)功能介绍全自动家用豆类和谷物处理机(即全自动豆浆机)具有按预设模式自动粉碎谷物、加热功能、防止溢出、处理完毕报警等基本功能。

一般可以处理如豆类、玉米、其他五谷杂粮、蔬菜等多种食品。

全自动家用豆类和谷物处理机的处理食品的过程通常为:加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制。

由于食品原料的物理特性不同,在加工处理时采用不同的加工(过程)模式,其主要区别在于加热和粉碎时间的长短不同。

在工作过程中,被加工的食品液体被限定在某一个给定的液位范围内,当液体加热时泡沫达到溢出液位时,停止加热,待脱离溢出液位区时继续加热。

(二)设计参数(1)电机 5W,24VDC(2)加热器 500W,220V AC(3)加热容器 1.25升(4)电力供应:220V AC(三)设计要求(1)实现多模式选择。

被选中的模式用LED显示器表明(2)实现不同模式下的加工过程:加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制,时间自定(3)液位检测和控制:使被加工的食品液体限定在某一个给定的液位范围内,当液体溢出容器或无液体时,报警并断电。

(4)显示工作模式、加工状态和时间。

(5)每个动作完成时,通过声光报警提示。

(6)测量并显示液体温度。

(四)扩充功能(1)在加热阶段进行恒温控制(2)PWM调节电机转速目录摘要对于此次课程设计的要求,本设计采用STC89C52来实现全自动豆浆机的各个功能的控制。

在本设计中,能实现一下功能:1.针对食品原料的物理特性不同,在加工处理时采用不同的加工(过程)模式,其主要区别在于加热和粉碎时间的长短不同(其中我用不同颜色的LED灯来表示加热和粉碎过程。

)2.不同的共工作模式和加热、粉碎时间用数码管表示出来3.可以实现液位溢出和过低报警(用拨码开关来模拟)4.每个模式完成后报警在豆浆机工作过程中,全部用软件控制。

对不同物料的不同处理用处理时间来区分,用定时来完成。

防液位溢出和过低用中断方式来实现。

但在设计过程中,对于PWM调速和恒温控制没能很好的实现,在后面的学习中,我一定会更加认真地学习理论知识,并与实践相结合,进一步提升自己的能力。

在此,感谢在此次课程设计过程中提供帮助的同学,谢谢你们。

一,系统分析此次课程设计的题目是:全自动豆浆机。

我们采用STC89C52来完成其设计,用不同颜色的LED灯模拟加热与粉碎功能,还有就是用蜂鸣器来完成其报警功能,以中断方式采用拨码开关来实现液位的控制等。

1.方案分析与论证:(1)模式选择模块:方案一:键盘选择模式方法。

通过按下键的键值判断,来跳转到不同的模式。

键盘有九个键,最多可以设计九中模式,设计时设计三种模式即可。

该方案可行。

方案二:定时计数模式方法。

设计一个三循环的计数。

通过按一下,外部给单片机一个低电平,计数一次。

按两下,计数加二,按三下计数加三。

按四下后回到按一下的状态。

然后通过计数后的数值来选择不同的模式。

该方案可行。

方案选择:总体来讲,两种方案都挺好。

最后,选择模块选择方案一,由于板上有键盘,可以加以运用,也方便实现。

计数口可以留着扩展外部事件中断用。

(2)加热粉碎完成报警模块:方案一:加热和粉碎时都有一定的时间,用延时实现。

方案二:加热和粉碎需要的时间可以用定时实现。

方案选择:选择方案二,因为加热和粉碎的时间需要用动态扫描的方式显示出来,因此定时可以实现加热和粉碎时的显示,而延时方式不行。

(3)液位控制模块:液位控制模块可用外部事件中断方式实现。

烧干,液体溢出容器功能采用外部事件中断(INTO,P3.2)实现,设为高优先级的中断。

加热液位控制功能也采用外部事件(INT1,P3.3)中断实现,设为低优先级。

(4)扩展计时模块:计时用来动态计量在某种模式下工作了多久,以此来观察还需要多久完成全过程。

并且工作过程中有两个报警的状态,由计时的时间大概可以判断属于那种情况。

计时还可以检测豆浆机工作的时间是否正常。

最后,我采用正计时的方式来实现。

二,设计框图1.矩阵式键盘实现的模式选择框图2. 加热粉碎完成报警及液位控制模块框图3.液位溢出或者过低报警框图4.显示程序框图5.定时程序框图5.主程序框图三,软件模拟1.初始化其初始值为090124,上电复位后显示2.模式1其中第一个1表示工作在模式一,后面的09为加热和粉碎各维持9s,后三位为计时部分3.模式二其中和模式一相同,不同的是加热和粉碎时间不同,还有就是模式三也是相同的方式。

4.液位溢出报警和液位过低报警其中用拨码开关模拟液位的变化,进行声光报警,液位过低也是这种模式。

5.温度当按下4号键,就会显示温度四,硬件调试:1.调试图详相见附录2.问题归纳①中断时,返回的不是原来的状态?解决方案:因为中断里面的程序改变了主程序里面的端口状态,所以返回时不时原来的状态。

需要对影响主程序的量进行保护和还原就行了。

②通过键盘选择某模式,复位后,必须复位后的瞬间选择其它模式,否则就无法选择其他模式了?解决方案:这是因为键盘扫描程序里没有对无按键时的状态进行操作。

只要让无按键时,执行重新扫描键盘即可。

③在软件里模拟没有问题,但是下载板子里就不行了?解决方案:软件、硬件的灵敏度不同,软件里都是理想的,和实际存在一定差距,要结合硬件来调试。

在延时、端口方面应该多注意。

④数码管显示不要稳定,一直在闪?解决方案:改变延时长短,多调试几次,直至稳定。

⑤温度一直是85度?解决方案:18b20在运行过程中,其第一次读数就是85,应该舍弃第一次读数,让其循环调用。

3.总结:在此次课程设计过程中,让我深刻认识到把理论转化为现实的不易,可谓是收益匪浅。

通过这次的课设,让我也熟悉了 keil 和protuse这两个软件,大大的提高了动手能力。

过程中,遇到问题是在所难免的,最终那份通过寻求各种帮助将问题解决后的兴奋是令人难忘的。

特别是当我看着自己辛苦两周焊接出来的板子上的各种功能一一实现,那份喜悦是无法代替的。

在此感谢老师,感谢在此次课程设计过程中帮助我的同学。

五,参考文献《单片机原理及接口技术》段晨东主编,清华大学出版社《手把手教你学单片机》周兴华编著,北京航空航天大学出版社附录一:电路原理图软件模拟原理图附录二:原件明细表补充原件:1.LED灯2个(一个红色,一个绿色)2.排线:4根3.面包板:1快4.焊接线:若干附录三:程序清单ORG 0000HLJMP MAINORG 0003HLJMP P_T0ORG 0013HLJMP P_T1ORG 0030HMAIN: MOV SP,#60H ;开辟栈区CLR IT0 ;INT0低电平触发CLR IT1 ;INT1低电平触发SETB EA ;开CPU中断SETB EX0 ;允许INT0中断SETB EX1 ;允许INT1中断SETB PX0 ;设置INT0为高优先级CLR PX1 ;设置INT1为低优先级CLR P3.6 ;加热指示灯清零CLR P3.7 ;粉碎指示灯清零MOV 20H,#0 ;赋初始值MOV 21H,#9MOV 22H,#0MOV 25H,#1MOV 26H,#2MOV 27H,#4LCALL DSPLY1 ;调显示程序LCALL DSPLY2LCALL SCAN_KEYB ;点键盘扫描程序MOV 25H,#00H ;高三位清零MOV 26H,#00HMOV 27H,#00HMOV A,R5 ;键盘返回值在然中NEXT: CJNE A,#01H,NEXT1 ;判断是否为1键按下LCALL FUNCTION_1 ;调1键处理程序LCALL LOOP4 ;调用计时程序和完成之后的报警程序LCALL LOOP6RETNEXT1:CJNE A,#02H,NEXT2 ;判断是否2键按下LCALL FUNCTION_2 ;和第一种模式相同LCALL LOOP6LCALL LOOP4RETNEXT2: CJNE A,#3,NEXT3 ;3键按下?LCALL FUNCTION_3 ;同前两种LCALL LOOP6LCALL LOOP4NEXT3: CJNE A,#4,NEXT4 ;4键按下否?LCALL PRO_18B20 ;调温度处理程序NEXT4:LJMP MIAN ;若无键按下,返回;#######中断处理程序,液位溢出##########ORG 0100HP_T0:PUSH ACC ;保护现场PUSH PSWCLR P3.6 ;停止加热,粉碎CLR P3.7LCALL ALARM ;报警POP PSW ;恢复现场POP ACCRETI;########液位过低处理程序#############ORG 0200HP_T1:CLR EA ;关中断PUSH ACC ;保护现场PUSH PSWSETB EA ;开中断SETB RS0 ;将工作寄存器切换CLR P3.6 ;停止加热停止粉碎CLR P3.7LCALL A LARM ;报警SETB P3.6 ;恢复中断前状态CLR EA ;关中断POP PSW ;恢复现场POP ACCSETB EA ;开中断RETI;按键处理程序FUNCTION_1: MOV 20H,#01H ;MOV 21H,#0MOV 22H,#9MOV 30H,#03HMOV 31H,#03HLCALL DSPLY1RETS2_PRESS:MOV 20H,#02HMOV 21H,#1MOV 22H,#2MOV 30H,#04HMOV 31H,#04HLCALL DSPLY1RETS3_PRESS:MOV 20H,#03HMOV 21H,#1MOV 22H,#5MOV 30H,#05HMOV 31H,#05HLCALL DSPLY1RETDSPLY1: MOV R0,#20HMOV R2,#00HREDO:ACALL DISPINC R2MOV A, R2INC R0XRL A, #03HJNZ REDORETDSPLY2: MOV R0,#25HMOV R2,#03HREDO2:ACALL DISPINC R2MOV A, R2INC R0XRL A, #06HJNZ REDO2RETDISP: MOV P1,R2MOV DPTR,#LED_SEGMOV A ,@R0MOVC A ,@A+DPTRMOV P0,ALCALL DL1MSRETLED_SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHLOOP6: LCALL DL1SMOV A,27HCJNE A,#09H,GOON1MOV 27H,#00HMOV A,26HCJNE A,#05H,GOON2MOV 26H,#00HINC 25HRETGOON1: INC 27HRETGOON2: INC 26HRETDL20MS: MOV TMOD,#01HMOV TH0,#0DBHMOV TL0,#00HSETB TR0CONT1:JBC TF0,OVERF1SJMP CONT1OVERF1:RETLOOP4:LCALL JIARELCALL FENSUILCALL JIARELCALL FENSUILCALL JIARECLR P3.6CLR P3.7LCALL ALARMRETJIARE: MOV 23H,30HCLR P3.7SETB P3.6LOOP1: LCALL DL1MINRETFENSUI: MOV 24H,31HCLR P3.6SETB P3.7LOOP2: LCALL DL1MINDJNZ 24H,LOOP2RETALARM:LOOP5: MOV R1,#20MOV A,#06HMOV P1,ALCALL DL1MSLCALL DL1MSINC AMOV P1,ALCALL DL1MSLCALL DL1MSLCALL DSPLY1LCALL DSPLY2DJNZ R1, LOOP5RETDL1MIN: MOV R7,#3DL1: LCALL LOOP6DJNZ R7,DL1RETDL1MS: MOV R1,#200DL2: NOPNOPNOPDJNZ R1,DL2RETDL1S: MOV R6,#20 WAIT: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB TR0CONT2: JBC TF0,OVERF2LCALL DSPLY1LCALL DSPLY2OVERF2: DJNZ R6,WAITRETSCAN_KEYB:MOV P2,#0F0HMOV A,P2ANL A,#0F0HXRL A,#0F0HJZ NO_KEYACALL DL20MSANL A,#0F0HXRL A,#0F0HJZ NO_KEYMOV R2,#11110111BSCAN:MOV A,R2MOV P2,AMOV A,P2ANL A,#11110000BMOV R3,ACJNE A,#0F0H,KEY_PRSDMOV A,R2RR AMOV R2,AXRL A,#01111111BJNZ SCANNO_KEY :LJMP MAINKEY_PRSD:MOV A ,R2ANL A ,#00001111BORL A ,R3MOV R4,AMOV R5,#01HMOV DPTR,#KEY_TABCAL_V AL:MOV A ,R5MOVC A,@A+DPTRXRL A,R4JZ FIXEDINC R5SJMP CAL_V AL FIXED:MOV A ,P2ANL A ,#0F0HXRL A,#0F0HJNZ FIXEDMOV A ,P2ANL A ,#0F0HXRL A,#0F0HJNZ FIXEDINC ARETKEY_TAB: DB 77H,77H,7BH,7DH,0B7H,0BEH,0BDHDB 0D7H,0DBH,0DDHRET;WENDUXIANSHIFLAG1 BIT F0 ;DS18B20存在标志位DQ BIT P1.3TEMPER_L EQU 27HTEMPER_H EQU 26HPRO_18B20: MOV 30H,#250REPLY: LCALL INIT_18B20LCALL RE_CONFIGLCALL GET_TEMPERLCALL CHANGE ;将18B20读的16位温度转换8位数据LCALL DISPLAY ;调用数码管显示子程序DJNZ 30H,REPLY;**********DS18B20复位程序*****************INIT_18B20: SETB DQNOPNOPCLR DQNOPNOPMOV R0,#0FBHTSR1: DJNZ R0,TSR1 ;延时SETB DQMOV R0,#25HTSR2: JNB DQ ,TSR3DJNZ R0,TSR2TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在CLR P2.0 ;二极管指示AJMP TSR5TSR4: CLR FLAG1TSR5: MOV R0,#06BHTSR6: DJNZ R0,TSR6TSR7:SETB DQ ;表明不存在RET;********************设定DS18B20暂存器设定值************** RE_CONFIG: JB FLAG1,RE_CONFIG1RETRE_CONFIG1: MOV A,#0CCH ;放跳过ROM命令LCALL WRITE_18B20MOV A,#4EHLCALL WRITE_18B20 ;写暂存器命令MOV A,#00H ;报警上限中写入00HLCALL WRITE_18B20MOV A,#00H ;报警下限中写入00HLCALL WRITE_18B20MOV A,#1FH ;选择九位温度分辨率LCALL WRITE_18B20RET;*****************读转换后的温度值****************GET_TEMPER: SETB DQLCALL INIT_18B20JB FLAG1,TSS2RET ;若不存在则返回TSS2: MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#44H ;发出温度转换命令LCALL WRITE_18B20; LCALL DISPLAY ;延时LCALL INIT_18B20MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#0BEH ;发出读温度换命令LCALL WRITE_18B20LCALL READ2_18B20 ;读两个字节的温度RET;***************写ds18b20汇编程序************WRITE_18B20:MOV R2,#8CLR CWR1: CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CDJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET;***********读18B20程序,读出两个字节的温度*********READ2_18B20:MOV R4,#2 ;低位存在29 H,高位存在28H MOV R1,#29HRE00: MOV R2,#8RE01: CLR CSETB CNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;************读出的温度进行数据转换**************CHANGE: MOV A,29HMOV C,28H.0 ;将28H中的最低位移入CRRC AMOV C,28H.1RRC AMOV C,28H.2RRC AMOV C,28H.3RRC AMOV 29H,ARETDISPLAY: mov a,29H;将29H中的十六进制数转换成10进制mov b,#100div abmov 34H,AMOV A,BMOV B,#10DIV ABMOV 35H,AMOV 36H,Bmov DPTR,#TAB ;指定查表启始地址mov A,36H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,A ;送出个位的7段代码MOV P1,#05;开个位显示NOPNOPLCALL DELAYNMSMOV P1,#0FFHNOPNOPmov A,35H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#04;开十位显示NOPNOPLCALL DELAYNMSMOV P1,#0FFHNOPNOPRETDELAYNMS: MOV R6,#8D11: MOV R7,#200DJNZ R7,$DJNZ R6,D11RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND。

相关文档
最新文档