单片机课程设计基于单片机的多功能综合应用系统的设计
单片机原理及应用课程设计报告
单片机原理及应用课程设计报告单片机是一种集成了微处理器、存储器和输入输出端口的芯片,广泛应用于各种电子设备中。
在现代电子科技中,单片机作为控制系统的核心,发挥着至关重要的作用。
本文将介绍单片机的原理及应用,并结合实际课程设计案例,探讨其在电子控制领域的应用。
单片机的原理主要包括中央处理器(CPU)、存储器和输入输出端口。
CPU是单片机的核心,负责执行程序指令和进行数据处理;存储器用于存储程序指令和数据;输入输出端口则实现单片机与外部设备的通讯。
通过这三个部分的协同工作,单片机能够实现各种控制功能。
在单片机的应用中,最常见的是嵌入式系统。
嵌入式系统是将计算机技术应用于各种电子设备中,如家用电器、汽车、医疗设备等。
通过单片机的控制,这些电子设备可以实现智能化、自动化的功能,为人们的生活带来便利。
在单片机的课程设计中,学生通常需要设计一个简单的控制系统。
以智能灯控系统为例,学生可以通过单片机控制灯的亮度和颜色,实现远程控制和定时开关功能。
通过设计这样一个项目,学生可以更好地理解单片机的工作原理和应用方法。
除了嵌入式系统,单片机还广泛应用于工业控制领域。
例如,自动化生产线中的各种传感器和执行器,都需要通过单片机来进行控制和监控。
单片机的高可靠性和实时性,使其成为工业控制领域的首选方案。
总的来说,单片机作为一种集成了微处理器、存储器和输入输出端口的芯片,具有广泛的应用前景。
通过学习单片机的原理及应用,人们可以更好地理解现代电子技术的发展趋势,为未来的职业发展奠定基础。
希望通过本文的介绍,读者对单片机的原理及应用有了更深入的了解,并能够在实际工作中灵活运用这一技术,为电子控制领域的发展做出贡献。
单片机多功能系统设计
《单片机原理及应用》课程设计班级学号学生姓名专业系别电子与电气工程学院指导教师电子与电气工程学院年月一、课程设计目的《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须要接受的一项工程训练。
在课程的设计过程中,在教师的指导下,运用工程的方法,通过一个简单的课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决具体问题的目的。
通过课程设计,应能加强学生如下能力的培养:(1)独立工作能和创造能力;(2)综合运用专业及基础知识,解决实际工程技术问题的能力;(3)查阅图书资料、产品手册和各种工具书的能力;(4)工程绘图的能力;(5)编写技术报告和编制技术资料的能力。
二、设计内容本次课程设计主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。
软件编程是本次课程设计的重要环节。
在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点:1)、熟悉Keil C51编程平台及相关编程软件2)、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调4)、编写、调试键盘扫描子程序并进行软硬件联调5)、编写、调试数码管动态扫描程序并进行软硬件联调6)、电子钟设计(包括键盘、时钟、显示等)7)、温度测量控制系统设计(包括键盘、显示、控制、报警等)其中前五个内容是后两个内容的基础,主要是编制一些子程序,为后继的整个系统设计打下基础。
单片机应用系统设计课程设计
断点调试、跟
统测试等
化性能等
踪调试等
软件测试与优化
测试方法:单元测试、集成测试、系统测试等 测 试 工 具 : J U n i t 、 Te s t N G 等 优化目标:提高代码质量、提高运行效率、降低资源消耗等 优化方法:代码重构、算法优化、性能调优等
Part Five
单片机应用系统功 能实现
软件设计、调试与测试、优化与改进等部分
Part Three
单片机硬件设计
单片机芯片选型
单片机性能:速度、内存、 外设等
单片机品牌:STM、TI、 NXP等
单片机类型:8位、16位、 32位等
单片机价格:成本、性价比 等
单片机应用领域:工业控制、 智能家居、汽车电子等
单片机开发环境:IDE、编 译器、调试器等
硬件电路原理图设计
单片机硬件设计主要包括单片机、外围电路、电源电路、接口电路等部分。
单片机是硬件设计的核心,需要选择合适的型号和性能参数。
外围电路包括输入输出接口、数据存储、显示、控制等部分,需要根据实际需求 进行设计。 电源电路需要保证单片机的正常工作,包括电源电压、电流、稳定性等方面的考 虑。
Part Six
单片机应用系统可 靠性设计
抗干扰技术
屏蔽技术:使用金属外壳或屏蔽罩,防止电磁干扰 滤波技术:使用滤波器,滤除不需要的频率成分 接地技术:良好的接地设计,降低干扰信号的强度 软件抗干扰技术:使用软件算法,消除或减弱干扰信号的影响
电源系统设计
电源选择:选择稳定、可靠的电源,如锂电池、太阳能电池等 电源保护:设计电源保护电路,防止电源过压、过流、过热等故障 电源管理:设计电源管理电路,实现电源的智能管理,如自动开关机、自动调节电源等 电源备份:设计电源备份系统,实现电源故障时的自动切换,保证系统正常运行
基于51单片机的一个多功能系统设计
侧短 接 , 被测试 电压 VX 来 自手拨 电位 器 w5 2 . MC14 3的电路 接成 不断 重 复测 量 的模 式 , 秒 43 每
1 2 数 码显 示 、 . 按键 、 E L D和 蜂鸣器 电路单 元 ( 2 图 )
Байду номын сангаас
由 4个 移位 寄存 器 7HC 6 ( 4 14 U6一U9 和 4个共 ) 阴数 码 管 ( E S G1一 S G )构 成 数 码 显 示 电 路 , E 4 6 9 25 C 0 1的 串行 口采 用 方 式 “ ” 作 , 显 示 数 据 0工 将 送 7HC 6 行静 态显 示 . 下 DIC R键 时 将清 除 4 14进 按 SL 数 码 管 上 的 全 部 显 示 . 光 输 出 由 移 位 寄 存 器 声 7 HC 6 ( 0高 4位 支 持 , “ ” 有 效 . 下 DI一 4 14U1 ) 送 1时 按 S
读 人“ ” , 明无键 按 下 ; 1时 说 反之 , 则说 明有 键 按 下 , 此 时可转 入逐 键识 别 ,
1 电路 的 设 计
1 1 电路组 成框 图 ( 1 . 图 )
②逐键 识别 、 移位 寄存 器 7 HC 6 令 4 14的低 4位 依 次 为 “” 其 余 位 为 “ ” ; P . , 到 “ ” 明该 0( 1 ) 从 34读 读 0表
负 的温度 系数 , 值 大 约 是 一2~ 一22mV, 如 果 其 . P C, 在 0℃ 时 电桥 平衡 , B端输 出 0V, 10℃ 时 电桥 A、 在 0
作者简介 : 国平 (9 8一)男 , 李 17 , 河南济源人 , 助教 , 硕士研究生
维普资讯
造价低 , 编程方便 的优 点; 并给 出了电路原理 图和相应 的软件设计 以及 具体应用 .
单片机系统的设计课程设计
单片机系统的设计课程设计一、课程目标知识目标:1. 让学生理解单片机系统的基本原理和组成,掌握其设计流程和方法。
2. 使学生掌握单片机编程的基础知识,能运用C语言或汇编语言进行简单程序编写。
3. 帮助学生了解单片机系统在实际应用中的功能与作用,如智能家居、机器人等。
技能目标:1. 培养学生具备独立设计单片机系统的能力,包括硬件电路设计和软件编程。
2. 提高学生运用单片机解决实际问题的能力,如数据采集、信号处理等。
3. 培养学生动手实践和团队协作的能力,能够完成课程项目的设计与实施。
情感态度价值观目标:1. 培养学生对单片机系统设计和开发产生兴趣,提高其学习积极性和主动性。
2. 培养学生具备创新精神和实践意识,敢于尝试新方法,解决实际问题。
3. 培养学生具备良好的团队合作精神和沟通能力,能够在团队中发挥积极作用。
课程性质:本课程为实践性较强的学科,要求学生在理解理论知识的基础上,动手实践,完成单片机系统的设计与实现。
学生特点:学生具备一定的电子技术基础和编程能力,对单片机系统有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,培养其创新能力和实践能力。
通过课程学习,使学生能够达到上述课程目标,为后续专业课程学习和实际工程应用打下坚实基础。
二、教学内容1. 单片机系统概述:介绍单片机的基本概念、发展历程、应用领域及未来发展趋势。
- 教材章节:第一章 单片机概述2. 单片机硬件结构:讲解单片机的内部结构、工作原理、主要性能指标及硬件连接方式。
- 教材章节:第二章 单片机硬件结构3. 单片机编程语言:学习单片机编程所需的基础知识,包括C语言和汇编语言。
- 教材章节:第三章 单片机编程语言4. 单片机I/O口编程:介绍I/O口的基本操作方法,包括输入、输出、中断等。
- 教材章节:第四章 单片机I/O口编程5. 单片机系统设计流程与方法:讲解单片机系统设计的步骤、方法及注意事项。
单片机综合应用课程设计
单片机综合应用课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程和编程方法。
2. 使学生了解并掌握单片机在综合应用中的关键技术和常见模块的使用。
3. 帮助学生掌握相关电子元器件的功能和连接方式,能够正确搭建单片机应用系统。
技能目标:1. 培养学生运用单片机进行创新设计的能力,能够独立完成简单的综合应用项目。
2. 提高学生编程和调试单片机程序的能力,解决实际问题。
3. 培养学生团队协作和沟通能力,能够共同完成复杂项目的搭建与调试。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其探究精神和创新意识。
2. 培养学生严谨、务实的科学态度,养成良好的实验操作习惯。
3. 增强学生的环保意识,使其关注可持续发展,将绿色环保理念融入单片机应用项目中。
课程性质:本课程为实践性较强的综合应用课程,注重理论知识与实际操作相结合,培养学生动手能力和创新能力。
学生特点:学生处于高年级阶段,已具备一定的单片机基础知识和编程技能,具有一定的自主学习能力和团队合作意识。
教学要求:结合课程性质、学生特点,明确课程目标,注重理论与实践相结合,提高学生的实际操作能力和创新能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 单片机基础回顾:回顾单片机的基本原理、结构、指令系统及编程方法,巩固学生对单片机基础知识点的掌握。
相关教材章节:第一章 单片机原理与结构2. 单片机应用模块:学习并实践单片机在综合应用中的常见模块,如传感器、执行器、显示模块等。
相关教材章节:第二章 单片机接口技术;第三章 常用传感器及其接口技术3. 编程与调试:学习单片机程序设计方法,掌握编程工具及调试技巧,能够解决实际问题。
相关教材章节:第四章 单片机C语言编程;第五章 单片机程序调试与优化4. 综合应用设计:结合所学知识,进行创新设计,完成一个具有实际应用价值的单片机综合项目。
单片机应用系统课程设计
硬件
扩展用ADC0809将温度->电压->数字 三位LED显示温度 扩展一片外部RAM,具体芯片自定
软件
主程序:ADC0809初始化 ,RAM初始化,堆 栈设定,定时器初始化 定时中断服务程序 显示子程序
ADC0809采样与显示例
设计说明书撰写要求
1.绪论
1.1 目的与意义 1.2 本设计的主要任务 1.3 系统完成的主要功能
3、硬件设计
选择系统所需的各类元器件; 设计系统的电子线路图和印刷电路板; 安装元器件的调试硬件线路。 硬件设计应确保功能设计和接口设计满足系 统的需求,并且充分考虑和软件的协调工作 关系。
4、软件设计
基于软件工程的思想,拟制出本系统的软件 设计方案。 划分出主要的软件模块、根据需要绘制部分 软件模块的流程图。 调试程序和测试软件的基本功能。
四、源程序(续)
STATUS2:MOV R0,#3 FLASH: MOV P1,#0AH ;P1输出 东西红,南北绿闪 MOV R3,#5 LCALL DELAY MOV P1,#5AH MOV R3,#5 LCALL DELAY DJNZ R0,FLASH MOV P1,#5FH ;P1输出 东西红,南北绿 MOV R3,#30 LCALL DELAY
三、流程图
开始 初始状态东西 南北都是红灯
状 态 1南 北 绿 灯,东西红灯
状 态 2南 北 绿 灯 闪 转黄灯,东西红灯
状 态 3南 北 红 灯,东西绿灯
状 态 4南 北 红 灯 , 东西绿灯闪转黄灯
四、源程序
汇编程序: ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H STATUS0:MOV P1,#0FH ;P1输出 东西南北红灯亮 MOV R3,#30 LCALL DELAY STATUS1:MOV P1,#5AH ;P1输出 东西绿,南北红 MOV R3,#50 LCALL DELAY
单片机应用系统课程设计 方解石
单片机应用系统课程设计方解石单片机应用系统课程设计方解石一、电路设计1、电源电路实现电路电源的设计,采用“桥式”的电源电路,使用2节电池构成电源,并通过直流-直流转换器,获得一节5V电源电压,并将电源线与主控单片机连接。
2、主控单片机采用芯片AT89C51单片机,它是51系列单片机的一种,具有8K 字的可编程(EPROM)存储空间,片内复位电路,三种中断源,加上多种常用的I/O口,可以运行具有控制功能的强大的指令集,同时它的体积小,功耗低,工作环境友好,使它在消费电子设备、工业控制系统中应用较多。
3、传感器接口用于连接传感器,该部分采用两路Digital-I/O,用来检测使用者的身份码,连接检测芯片中的按键。
4、主机接口用于连接与主机的数据交换,该部分采用RS-232接口,用来接收与发送信息,实现控制与主机的数据交互。
5、光电耦合接口用于连接外部设备,该部分采用光电耦合器,用来检测两端电压差大于一定阈值时,触发信号。
二、程序设计1、编程语言程序采用C语言进行编写,可以利用C程序编写的功能较大,因此将程序中主要使用C语言进行编程。
2、程序结构设计程序分为5部分:(1)初始化:完成硬件设备的初始化,定义变量,确定程序的运行模式;(2)外部设备检测:完成外部设备的检测,检测到信号触发后,开启身份验证;(3)身份验证:对使用者输入的身份码进行验证,若验证正确,则向主机发送认证信号,反之则发送错误信号;(4)主机检测:检测主机的反馈信号,若信号正确,则启动数据传输步骤;(5)数据传输:将程序收到的反馈信号与设备的详细信息发送给主机。
三、安全考虑1、由于系统中需要处理的数据可能包含敏感信息,为保证系统安全,需要采用加密技术对数据进行加密,防止数据被窃取;2、在外部设备检测步骤中,采用光电耦合器作为外部设备的接口,在检测信号触发后,使用者需要输入身份码,以验证使用者的身份,以确保数据的安全;3、由于数据的传输可能存在安全隐患,因此,在数据传输步骤中,也需要同样采用合理的加密技术,以保证数据的安全性。
单片机原理与应用系统开发课程设计
单片机原理与应用系统开发课程设计一、课程设计目的本课程设计旨在让学生通过实际操作,掌握单片机原理及其应用系统开发技术,提高学生的综合能力和实际应用能力,为其以后的工作和学习奠定基础。
二、课程设计要求1. 实现单片机程序设计学生需要掌握单片机的程序设计方法和基础语言,在实验中实现单片机程序,并对程序的运行结果进行观察和分析。
2. 设计与制作简单电路板学生需要理解电路板的制作方法及其原理,掌握电路板的设计规则与步骤,在课程设计中实现电路板的制作,运用电路板完成单片机控制项目。
3. 掌握单片机对外设的控制学生需要掌握单片机对外围设备的控制方法和技巧,在进行实验时能够控制电机、LED灯、数码管等外设的操作,实现控制电路的自动化控制。
4. 培养团队合作能力和实际应用能力在课程设计中,学生需要组成小组来进行课程设计,培养团队合作能力。
同时,通过实际操作,掌握单片机应用系统的开发技术,提高实际应用能力。
三、课程设计内容1. 实验一:单片机基本操作本实验旨在让学生使用Keil uVision编译工具编写单片机程序,了解单片机程序设计与调试方法,并在网上下载及选择合适的例程文件,实现LED灯闪烁控制,用四个数码管循环显示数字0~9。
实验要求:•使用Keil uVision编译工具编写单片机程序。
•下载及选择合适例程文件。
•实现LED灯闪烁控制,用四个数码管循环显示数字0~9。
•能够观察程序的运行结果,对程序的结果进行分析。
2. 实验二:单片机模拟温度报警系统本实验旨在让学生了解单片机对外设的控制方法,掌握温度传感器的使用方法并完成具有报警功能的温度控制系统的开发。
实验要求:•掌握单片机对外设的控制方法。
•掌握温度传感器的使用方法。
•完成带报警功能的温度控制系统的开发。
•能够观察程序的运行结果,对程序的结果进行分析。
3. 实验三:单片机模拟电子秤本实验旨在让学生了解单片机对电机的控制方法,掌握光电传感器的使用方法,并完成带重量显示功能的电子秤的开发。
基于单片机的课程设计
基于单片机的课程设计一、课程目标基于单片机的课程设计旨在使学生能够掌握以下知识、技能及情感态度价值观:1. 知识目标:(1)了解单片机的基本原理、结构组成及功能特点;(2)掌握单片机编程的基本语法和编程技巧;(3)理解并掌握单片机外围设备的连接与控制方法。
2. 技能目标:(1)能够运用所学知识设计简单的单片机控制系统;(2)培养动手实践能力,学会使用相关工具和仪器进行单片机系统的搭建与调试;(3)提高问题解决能力,能够针对实际问题进行需求分析,并设计出合理的单片机控制系统方案。
3. 情感态度价值观目标:(1)激发学生对电子技术及单片机应用领域的兴趣,培养创新意识和探究精神;(2)培养学生团队协作能力,学会与他人共同分析问题、解决问题;(3)提高学生的责任感和自信心,使其在单片机学习过程中勇于面对挑战,不断突破自我。
本课程针对初中年级学生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。
在教学过程中,注重理论与实践相结合,充分调动学生的积极性与参与度,培养其独立思考和解决问题的能力。
通过本课程的学习,使学生能够为后续电子技术及相关领域的学习打下坚实基础。
二、教学内容根据课程目标,教学内容分为以下三个部分,确保科学性和系统性:1. 单片机基础理论:- 教材章节:第一章 单片机概述- 内容:单片机发展历程、分类及特点;单片机内部结构及工作原理;单片机指令系统及编程基础。
2. 单片机编程与控制:- 教材章节:第二章 单片机编程与控制- 内容:单片机编程语言(C语言);编程技巧及实例;单片机外围设备控制方法;中断系统及定时器应用。
3. 单片机系统设计与实践:- 教材章节:第三章 单片机系统设计与实践- 内容:需求分析及方案设计;硬件电路设计及搭建;软件编程及调试;系统测试与优化。
教学大纲安排如下:第一周:单片机概述及内部结构第二周:单片机指令系统及编程基础第三周:单片机编程语言及编程技巧第四周:单片机外围设备控制方法第五周:中断系统及定时器应用第六周:单片机系统设计与实践(需求分析、方案设计)第七周:单片机系统设计与实践(硬件电路设计及搭建)第八周:单片机系统设计与实践(软件编程及调试)第九周:系统测试与优化教学内容与课本紧密关联,注重理论与实践相结合,使学生能够在掌握基础知识的同时,提高动手实践能力。
单片机课程设计基于单片机的多功能综合应用系统的设计
单片机课程设计报告——基于单片机的多功能综合应用系统的设计摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
本次课程设计采用AT89C51单片机作为主要核心部件,加上LED、LCD、键盘、LED点阵等外围设备,实现了键盘控制LED并以LCD显示及LED点阵显示和可校时数字时钟、温度控制等功能,这些功能贴近日常生活,非常具有现实意义。
目录摘要 (2)一、概述 (4)1.1设计意义 (4)1.2设计目标 (5)第一部分:基本功能 (5)第二部分:基本应用模块 (5)第三部分:基于仿真的扩展模块 (5)第四部分:赛前训练模块 (5)1.3设计要求 (5)1.4 任务分配 (6)二、硬件和程序设计 (7)元器件及开发环境 (7)元器件清单 (7)开发环境 (8)第一部分:基本功能 (8)1.1 单片机最小系统 (8)1.2 LED彩灯模块 (10)1.3 LCD 显示模块 (10)1.4 键盘控制模块 (11)1.5 第一部分整体图 (11)1.6 硬件实物图 (12)1.7 程序设计 (13)第二部分:基本应用模块 (13)2.1 数字时钟 (13)2.2 程序设计 (14)第三部分:基于仿真的扩展模块 (15)3.1 点阵基础——8*8点阵调节 (15)3.2 点阵模块——16*16点阵显示 (15)3.3 程序设计 (16)第四部分:赛前训练模块 (16)4.1 系统描述 (16)4.2 温度采集模块 (17)4.3 时钟模块 (17)4.4 通信模块 (17)4.5 显示模块 (18)4.6 温度控制系统整体图 (18)4.7 程序设计 (18)三、总结和心得 (19)四、参考资料 (20)附录(程序代码节选) (21)第一部分(节选主要部分) (21)第二部分(节选主要部分) (23)一、概述1.1设计意义本次单片机课程设计内容包括单片机正常启动和复位,LED花样控制及亮度、色彩变化调节,LCD液晶显示屏的调节,点阵LED的文字输出,时钟芯片DS1302的配置,温度传感器DS18B20的使用,以及键盘控制单片机工作,对以上技术的掌握可以有效地提高我们的实际应用能力,如基于LED的节日艺术彩灯控制系统、温度采集和实时监控系统、电子日历等,具有非常实际的意义和价值,使我们对知识的学习由理论提升到实践,让专业知识学习得到极大巩固和提高。
单片机应用系统课程设计 宽通
单片机应用系统课程设计宽通单片机应用系统课程设计一、课程设计的目的和意义单片机是一种微型计算机,具有体积小、功耗低、成本低等优点,广泛应用于各个领域。
单片机应用系统课程设计是培养学生掌握单片机应用技术,提高学生综合能力的重要环节。
本课程设计旨在让学生通过实践掌握单片机的基本原理和应用技术,培养学生动手能力和创新意识,提高学生解决实际问题的能力。
二、课程设计的内容和要求1. 选题:自行选择一个有趣的单片机应用项目,并编写详细的项目计划书。
2. 硬件设计:根据项目计划书,进行硬件电路设计。
包括电路图绘制、元器件选型、PCB板制作等。
3. 软件编程:根据硬件电路设计,进行软件程序编写。
包括程序分析、算法设计、代码编写等。
4. 实验验证:将硬件电路与软件程序进行组合,并进行实验验证。
包括测试数据采集、数据处理与显示等。
5. 报告撰写:根据实验结果撰写详细报告。
包括项目背景、设计思路、实验结果与分析等。
6. 学习笔记:学生需要每周提交一份学习笔记,记录自己在课程中的学习心得和体会。
三、课程设计的步骤1. 选题阶段在选题阶段,学生需要根据自己的兴趣爱好和专业知识,选择一个合适的单片机应用项目。
在选择项目时,需要考虑到项目的可行性和实用性,并编写详细的项目计划书。
2. 硬件设计阶段在硬件设计阶段,学生需要进行电路图绘制、元器件选型和PCB板制作等工作。
学生需要掌握基本的电路原理和PCB板制作技术,并根据3. 软件编程阶段在软件编程阶段,学生需要进行程序分析、算法设计和代码编写等工作。
学生需要掌握基本的程序设计技术,并根据实际情况进行调整和改进。
4. 实验验证阶段在实验验证阶段,学生需要将硬件电路与软件程序进行组合,并进行实验验证。
学生需要掌握基本的测试数据采集、数据处理与显示技术,并根据实际情况进行调整和改进。
5. 报告撰写阶段在报告撰写阶段,学生需要根据实验结果撰写详细报告。
学生需要掌握基本的报告撰写技巧,并根据实际情况进行调整和改进。
基于单片机的多功能综合应用系统的设计单片机课程设计报告
单片机课程设计实验报告设计题目:基于单片机地多功能综合应用系统地设计专业:电子信息工程班级:姓名:指导老师:目录第一章设计说明1.1 设计目地 (3)1.2 设计内容及要求 (3)第二章硬件电路仿真实现2.1 硬件结构分析 (5)2.2基本功能仿真电图 (6)2.3扩展功能仿真电路图 (10)2.4 实物电路图 (15)第三章软件设计实现3.1软件程序内容 (16)3.2模块分析 (16)3.3 程序流程图 (17)第四章系统测试4.1 软件调试 (19)4.2硬件调试 (19)第五章心得体会 (20)第六章参考文献 (21)附录 (21)第一章设计说明1.1 设计目地单片机在许多领域使用十分广泛,如智能仪器仪表、实时工控、通讯设备、导航系统、家用电器等.各科任老师们经常说“学好单片机,工作就不成问题了.”可见学好单片意义之重大.单片机作为一门基础学科,既是对前期学习C语言地综合运用,也是理论与实践相结合地一大体现.本次课程设计通过基础部分,拓展功能以及整体电路地实现能很好地锻炼我们地动手及编程能力.1.2 设计内容及要求内容:1.设计并实现具有复位功能地单片机小系统.2.利用单片机进行灯光地场景开关控制、循环点亮控制、花样变化控制及速度变化控制(如:左右循环、扩散收缩式移动、流星雨、舞台灯光综合效果、名曲名句跟随显示等.至少应做两项:前两项选一并有速度变化控制功能,后三项选一或自创特色花样).3. 炫彩音乐显示(依据3秒以上某名曲名句,模拟高、中、低音三分频,彩色LED随音频变化而起伏显示地效果,进一步地,LED亮度跟随音乐响度闪烁).4.利用单片机进行灯光地色彩连续变化效果控制.5.利用单片机进行灯光地三色联动定时控制(以交通灯为例).(说明:3、4中二选一,1、2、5必选)6. 配合2至5项中功能,实现液晶屏输出功能或状态信息.7. 以调节5或4项中地时间为例实现基于4X4键盘地输入功能.(可用现有成品键盘,也可自己课外用按键开关焊接自己地键盘.)8. 数字温度计地设计(要求:实时显示温度、设置限值温度、超限报警等)9. 32x16点阵LED显示同组同学汉字名(利用取字模软件获取数据);10. 智能式直流电压表地设计.要求:(1)能启动、停止;(2)能通过开关进行功能选择;(3)基本功能部分要体现循环、组合和色彩变化地控制功能和效果,实现三色联动定时控制,控制变化规律地类型或功能不少于5种.元件清单:第二章硬件电路仿真实现2.1 硬件结构分析1、单片机仿真硬件系统由复位电路、晶振电路、独立键盘输入、彩灯输出、矩阵键盘输入以及LCD显示模块构成.根据课本上地内容,首先搭建好复位电路与晶振电路,P1口接8个发光二极管,P3口接键盘,P2.4、P2.5、P2.6和P0口接LCD显示,单片机实物电路由复位电路、晶振电路、独立键盘输入、彩灯输出模块构成.由P1口接入彩灯.其中晶振连接需注意到,两端测试电压地差值在2V左右时才能正常起振工作.复位电路在未工作时不能有电压.2.2基本功能仿真电路图复位电路时钟显示电路键盘具体仿真图及说明部分开始为流水灯,或按S0 为流水灯按S1交通灯按S2灯光地色彩连续变化三色联动按S3就转变为流星雨调节时间先按S14就开始调节时间,按S11调节小时和分钟,按S3为+1,按S7为-1.按S15可以调节灯地速度,按按S3为+1,按S7为-1.(其中当调节为0时速度最快,随着数字增加速度逐渐减小)2.3扩展功能仿真电路图温度计部分:当温度超过25~30°C时,二极管亮,报警:25°C时30°C时32*16显示屏部分:显示屏显示:第四部分智能电压表部分:按下BUTTON键,LED灯亮起,调节RV1地值,LED亮灭变化,代表不同地输出电压值调节RV1,阻值最大RV1阻值一半:RV1阻值最小:2.4电路实物图第三章软件设计实现3.1软件程序内容见附录P183.2模块分析1.显示模块:用1602液晶显示,设置其技术参数为:拨复位开关总能回到初始状态,使用8位数据,显示两行,使用5*7地字型,显示器开,光标关,字符不闪烁,字符不动.2.矩阵键盘模块:当扫描到1号键盘,进入到流水灯模块;扫描到2号键盘时,进入交通灯模块;扫描到3号键盘时,进入扩展灯模块;当扫描到4号键盘,进入到循环灯模块;当扫描到5号键盘,进入到三色联动模块;按下复位键后,回到初始状态.3.三色联动模块:通过设置各种灯在不同地时间段亮灭,并且各自亮地时间长不一致,形成人们视觉上地观察,看到地现象是灯由亮到暗地变化过程,由此可形成各种不同地混色.4.交通灯模块:由延迟控制时间变化,设置两路交通灯,红灯亮18S,绿灯亮17S,黄灯1S,A路交通灯地红灯亮地时间等于B路交通灯黄灯亮地时间加上绿灯亮地时间,由此形成联动状态.5.流星雨模块:通过控制每个灯地亮灭之间地时间来实现,从而给人视觉上地效果,形成流星雨.⑤温度显示模块:通过DS18B20温度传感器实时采集温度通过1602芯片显示当前温度.3.3 程序流程图基本部分:Led点阵:4.1在编程过程中,遇到了很多难题.流水灯和交通灯子程序都编地比较顺利,三色联动因为要涉及到调节占空比,刚开始地时候感到无从下手,后来又想到利用定时中断,通过产生不同占空比地方波信号来控制灯地亮暗程度.但是这样仍然没有成功.后来在同学地帮助下,利用随机函数调节占空比,调试成功,达到了预想地效果.在编写键盘扫描程序地之前,我查看了很多资料,先弄清楚了矩阵键盘地工作原理,然后确定了一个简单有效地键盘扫描算法,调试成功,启动键盘扫描程序,能够准确判断出键值并进入相应地功能模块.后来把全部功能整合到一个总程序中,就遇到了麻烦.首先在调用子函数地时候,由于各场景由while(1)控制,在子函数中不能及时跳出循环,后来在删除了while(1)死循环之后,当检测到任一其它按键后就能立即跳出循环.刚开始我们地交通灯子程序用到了定时中断,在写主函数地时候,当矩阵键盘按下后交通灯子程序不能执行,后来简化了交通灯程序,改用延时,交通灯功能模块就能正常运行了.还有关于LCD显示地,之前是把对其初始化地调用放在子函数中,这样在每次调用时都初始化一次,使得不能很好地变化,后来把初始化放到了主函数里,则能正常跳变.在此次课程设计中碰到了很多困难,经过老师和同学地帮助,还有自己在网上查资料都能够得以解决.使我深深地体会到,只要坚持不懈,没有什么事情是不能解决地.4.2 硬件测试在硬件电路搭建完毕后,我们开始进行测试,成功烧写52芯片后,发现灯地亮灭不受控制,而且1602液晶显示屏也是没有显示内容.在我们反复地检查,另外有对应仿真结果逐一排查,发现我们地电路有一些问题,因为我们地刚开始地电路A T89C52地P0口接地是排阻,而且排阻地另一端接到了显示屏地端口,犯了很大地错误,检查发现后,我们立刻做了修正,在P1口接了10k地电阻,电阻地另一端接到+5V地电源,同时P1口接到显示屏地端口.这样又进行测试,发现显示屏可以正常地显示,灯也可以正常地工作.给老师检查中,发现我们地复位键不管用,之前没有太注意这个,幸好老师提醒我们,发现我们少接了一个电容.之后我们又做了调整,终于电路正常工作.同时,在调节滑动变阻器使显示屏显示地过程中也是很大地考验,需要有耐心,不断转滑动变阻器,最后才使得整个电路顺利进行.在本次课程设计中,我们进一步了解了89C52各引脚地功能以及89C52地内部逻辑结构,深入掌握了89C52显示电路地基本功能及编程方法,同时深入了解了89C52等芯片以及键盘地工作方式和接口功能.第五章心得体会在本次单片机课程设计中,让我感触很深,从刚开始地简单地控制灯地程序开始,逐步地增加开关控制,再将这些连接起来,真地一步一步地发现单片机很有趣.在课程设计课中地头两个星期我很困惑,因为我不懂怎么把很多个功能放在一起,为此我问了一些学地好地同学,他们认真地讲解让我有了一些启发,后来我又自己买了一块单片机自己试着编写一个程序达到自己地预期结果,尽管这个过程非常地枯燥,有时候编不出来或者想地跟实验结果不同时,又要重新检查语句,看每条语句地功能,又通过在网上查阅很多地资料来解决自己地问题.对于我来说,我比较偏向于动手,在硬件地搭建中还算是比较顺利地.还有在这两个多月里,我学到了很多地东西,看书本仅仅只是理论知识,而将所学地理论知识与实践结合地过程中,才发现自己学地理论知识远远不够.尤其是在编程时往往能想到怎么做,却不知怎么编写,我感觉这是最难地,在心里真地是想要去认真地完成,可是却因为克服不了自己地恐惧,总觉得很难,就拖了好几天,不过庆幸地是我还是坚持了过来,我觉得做什么事都必须要有信心和耐心,这样做事才会更有效率.在设计地过程中,我也深刻地感受到了做一个完整地工程靠一个人地力量是很辛苦地,必须和自己地队员一起商量讨论,而且分工合作,这样每个人做自己所擅长地一部分,再合起来就会达到事半功倍地效果.通过这次课程设计,我更加理解了单片机这门课,也将课堂知识运用到实践中,不断地积累,让我对单片机产生了很大地兴趣,我想接下来我还会继续学习这门课,不断地提升自己地编程能力,让自己地思考能力增强.所以我认为这次地课程设计意义很深,和另外两位同学地共同学习﹑配合﹑努力地过程很愉快,另外还要感谢老师地耐心辅导!——***因为这次我们单片机课程和单片机课程设计是同一个学期地课程,在开始单片机课程设计地时候单片机基础也没什么,班上有些人参加了蓝桥杯地看着他们一开始就能自己编程序觉得很厉害,自己只能慢慢从基础开始学习,难免有点心浮气躁.但是好在课程时间比较长,自己慢慢地看书查资料,和组员慢慢磨合,按照课本地知识我们也能自己编出简单地程序.刚开始地课堂实验开关控制灯等等到矩阵键盘都是给课程设计打基础地,课程设计也是将这些基础知识联系起来,既考验了你地耐心又考验你地细心,一旦错了一点点小地方最后地结果都出不来.毕竟小组一起做课程设计能学到课堂学不到地知识,虽然我们没有别人那么多地花样但是我们也有尽力完成,也有学到实践地重要性.当然在实验过程中也出现了很多问题,这些问题都是值得我们重视地,比如复位电路忘记接电容导致我们复位电路反应很慢甚至没反应,显示屏接上不亮,后来才知道要接滑动变阻器并调节才能亮.中间出现问题也有咨询过其他人,他人地帮助对我们也很重要,总之,最终实物结果能出来,绝不是一个人地结果,小组地配合,他人地帮助,老师地指导也是至关重要地.这次单片机课程设计虽然说纠结过烦躁过但是将单片机地知识系统化学习了一遍,自己地动手能力也培养了,和小组一起学习,让我觉得意义很大.所以不管做什么都在沉下心来慢慢做动手做,不管结果怎么样你也尽力了.——***在学习单片机这门课程之前,就听说过这门课程地重要性和学好这门课程地关键,多做单片机实验.因此对这门课程学之前就特别害怕.现在单片机课程已经结束,需要来好好地反思和回顾总结下了.做实验中,遇到问题应该是准备不充分吧.一开始,由于没有课前准备地意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促.还有就是自己基础比较差,遇到问题是依赖性也很大,在团队下完成实验.通过这学期地单片机实验地学习,发现了自己地问题,需要地地还有很多,包括搭建电路图和测试硬件电路,需要很大耐心,培养自己接受新知识地自学能力.也通过这次学习在以后地生活和学习中相信只要有足够勇气和耐心,遇到地问题总会被解决.最后感谢老师在我们遇到困难时地帮助和点播.——***第六章参考文献1. 《单片机技术-课程设计与工程实例》中国电力出版社作者:李海滨等 2009.10 2.《 Proteus教程-电子线路设计、制版与仿真》清华大学出版社作者:朱清彗 2008.9 3.《 51系列单片机设计实例》(第2版) 北京航空航天大学出版社作者:楼然苗李光飞附录:程序第一部分程序:#include<reg51.h>#include<lcd.h>#include<keyboard.h>#include<delay.h>#define uchar unsigned char#define uint unsigned int#define bit(n) (1<<n)extern unsigned char key_val。
单片机应用系统综合设计
三、系统硬件电路设计
3.DS18B20的内部结构
• (1)64位光刻ROM • 64位光刻ROM是出厂前已被刻好的,它可以看做是该DS18B0的地址序列号,每一个
DS18B20都有一个唯一的序列号。
三、系统硬件电路设计
• (2)温度传感器 • DS18B20中的温度传感器可以完成温度测量,数据保存在高速暂存器的第0个和第1个字节
项目7
单片机应用系统综合设计
目录 / contents
01 任务一 数字式温度计的设计与制作 02 任务二 电子台历的设计与制作 03 任务三 巡航小车的设计与制作 04 项目总结
项目教学目标
本项目通过数字式温度计的设计与制作、电子台历的设计与制作, 巡航小车的设计让读者掌握单片机与外围接口芯片常用的1线/2线串 行接口的用法、图形液晶显示器的驱动与使用、传感器与单片机的 电路连接与编程方法以及电机的驱动。通过上述三个综合任务的设 计与开发,让读者学习和领会单片机应用系统的设计、开发和调试 的思路、技巧和方法。
三、系统硬件电路设计
• (3)DS18B20的外部电源供电方式 • DS18B20的外部电源供电方式如图所示。 • 在外部电源供电方式下,DS18B20由 VDD引脚直接接入外部电源,不存在电源电流不足的问题,工作
稳定可靠,抗干扰能力强,可以保证转换精度,同时可以在总线上挂接多个DS18B20传感器,组成多 点测温系统。
里面。以12位分辨率为例,数据存储格式如表所示:
• 第一个字节的高5位为符号位,正温度时为0,负温度时为1,第0个字节的低4位为小数位。12位分辨 率时为0.0625/LSB。
三、系统硬件电路设计
• 正温度时只需要用测 得的数据乘以0.0625 即可以得到实际的测 量温度,例如 +125DS18B20对应 的数字输出值为07D0。 负温度时需要将测得 的值取反加1后再乘 以0.0625即可以得到 实际的测量温度,例 如-10.125对应的数字 输出值为FF5E。
基于51单片机的课程设计
摘要 (2)第1章概述 (3)1.1ADC0832调节频率输入实现的意义 (3)第2章频率计实现的理论分析 (3)2.1ADC0832调节频率输出的基本结构和原理 (3)第3章单片机基础与芯片使用 (4)3.1单片机介绍 (4)3.2ADC0832介绍和时序使用 (7)第4章系统方案设计及实现 (11)4.1单片机选取 (11)4.2系统硬件结构图 (13)4.3各模块的实现 (13)4.4软件的实现 (15)4.5功能调试 (24)结束语 (26)参考文献 (27)致谢 (28)“ADC0832控制频率输出”实质上是运用可调电阻反馈电压模拟量输入到ADC0832中输出数字量。
应用数字量填充单片机定时器初值,可产生中断从而实现电平转换,接到示波器上可观察方波的输出,由数码管直观的看出电平变化频率。
设计的关键在于数模转换,这个由ADC0832来实现,所以可以比较容易得到一个可控制的频率计。
本文以单片机的实际应用为背景,介绍了以单片机为核心ADC0832控制频率输出设计的基本结构和基本原理。
关键词:单片机;ADC0832;数模转换Abstract"ADC0832 control frequency output" is actually using the adjustable resistorfeedback analog voltage input to the ADC0832 digital output. Application ofdigital single-chip timer initial filling, can generate an interrupt to realize the conversion level, received the oscilloscope can observe Fang Bo's output, by the digital tube directly see level change frequency. The key lies in the design of digital to analog conversion, this is implemented by ADC0832, so it can be easily obtained a controlled frequency meter.Based on the background of the practical application of SCM, SCM introduced to the basic structure of frequency output control design of the core and basic principle of ADC0832.Keyword: MCU; ADC0832; digital to analog conversion第1章概述1.1 ADC0832调节频率输入实现的意义应用ADC0832和可调电阻,由可调电阻反馈电压模拟量输入到中输出数字量。
单片机综合应用实验设计报告格式
单片机综合应用实验设计报告格式一、实验目的本实验旨在通过单片机的综合应用设计,使学生能够熟练掌握单片机的输入输出操作,学习掌握单片机的定时器和中断编程,掌握单片机的相关外设的使用方法。
二、实验原理本实验选用的单片机是8051系列单片机,其具有多个I/O口和定时器。
通过在单片机的I/O口接口上连接外设,如LED灯、数码管、矩阵键盘等,可以实现单片机与外部设备的通信。
三、实验内容和步骤1.搭建实验电路:根据实验设计要求,连接单片机与外设之间的电路。
2.编写程序:根据实验要求,编写相应的单片机程序,包括初始化程序、中断处理程序、定时器程序等。
3.烧录程序:将编写好的程序通过编程器烧录到单片机中。
4.运行实验:通过按键、观察LED灯和数码管的显示,判断实验是否成功。
四、实验结果与分析通过实验,观察到LED灯可以正常闪烁,数码管可以显示特定的数字,按键可以实现相应的功能。
分析实验结果,可以得出实验设计的程序和电路均符合要求,实验成功。
五、实验心得与总结通过本次实验,我对单片机的输入输出操作、定时器和中断编程有了更深入的了解。
通过编写程序和连接外设电路,我成功地实现了单片机与外部设备的通信。
此外,通过实验中的操作,我也学会了如何进行单片机程序的烧录和调试。
在实验过程中,我遇到了一些问题,如程序代码编写中的语法错误、电路连接中的接线问题等。
通过查阅资料和与同学交流,我成功地解决了这些问题。
这些问题的出现让我认识到在实验中细心和耐心的重要性,同时也意识到理论与实际操作之间存在差距,需要不断学习和实践才能提高。
通过本次实验,我不仅学到了知识,还培养了解决问题的能力和实践操作的技巧。
我相信这对我未来的学习和工作都将带来很大的帮助。
1.《单片机原理与应用》(第三版)吴春利著北京大学出版社,2024年。
2.《51单片机原理与实践教程》卢良澍著电子工业出版社,2024年。
七、附录:实验所用设备清单1.单片机(8051系列)2.LED灯3.数码管4.矩阵键盘5.连接线。
单片机基本技能与应用系统设计课程设计
单片机基本技能与应用系统设计课程设计一、课程设计背景单片机技术是嵌入式系统领域中的核心技术之一,它被广泛应用于智能控制、自动控制、信号处理、通信控制、电力电子等领域。
如今,随着嵌入式系统应用的逐步普及,对单片机技术的需求也日益增加。
因此,教育机构应当开设单片机基本技能与应用系统设计课程,为学生提供相关的基础知识和实践技能。
本课程设计旨在提高学生的单片机基本技能和应用能力,使学生能够熟练掌握单片机的原理、基本结构、外部扩展模块的接口与应用以及应用系统的设计方法。
通过本课程的学习与实践,学生将能够在实际工程设计中运用单片机技术解决实际问题,为未来的工作打下坚实的基础。
二、课程设计目标本课程设计的主要目标为:1.理解单片机的原理及基本结构;2.掌握单片机的编程方法;3.掌握单片机与外部扩展模块的接口技术;4.学会基于单片机设计应用系统。
三、课程设计内容1. 单片机基本理论介绍单片机的基本原理和结构,包括单片机的内部结构、I/O 端口、中断结构等。
让学生深入了解单片机技术,并掌握单片机的使用方法。
2. 单片机编程介绍单片机编程语言、程序设计方法等,让学生掌握单片机编程技术,能够使用单片机编程软件进行程序设计和调试。
3. 外部扩展模块接口技术介绍单片机与外部模块的接口技术,包括并口接口、串口接口、SPI 接口、I2C 接口等,让学生能够熟悉单片机与外部模块的接口技术,了解扩展外部模块的方法。
4. 应用系统设计介绍基于单片机设计应用系统的方法与技巧,让学生能够熟练掌握基于单片机的应用系统设计,并且能够解决实际工作中的问题。
四、课程设计方案1.课程设计时间:2个学期(32周);2.课程学分:3学分,其中理论教学1学分,实践教学2学分;3.课程设计教学上,采用理论教学与实践操作相结合的方式;4.在课程设计过程中,学生将分期进行实际项目设计,并且在设计完成后进行项目演示。
五、课程设计结果评估本课程设计将进行多种方式的学生表现评估,包括理论考试、实践操作考核、毕业设计等多个环节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告——基于单片机的多功能综合应用系统的设计摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
本次课程设计采用AT89C51单片机作为主要核心部件,加上LED、LCD、键盘、LED点阵等外围设备,实现了键盘控制LED并以LCD显示及LED点阵显示和可校时数字时钟、温度控制等功能,这些功能贴近日常生活,非常具有现实意义。
目录摘要 (2)一、概述 (4)1.1设计意义 (4)1.2设计目标 (5)第一部分:基本功能 (5)第二部分:基本应用模块 (5)第三部分:基于仿真的扩展模块 (5)第四部分:赛前训练模块 (5)1.3设计要求 (5)1.4 任务分配 (6)二、硬件和程序设计 (7)元器件及开发环境 (7)元器件清单 (7)开发环境 (8)第一部分:基本功能 (8)1.1 单片机最小系统 (8)1.2 LED彩灯模块 (10)1.3 LCD 显示模块 (10)1.4 键盘控制模块 (11)1.5 第一部分整体图 (11)1.6 硬件实物图 (12)1.7 程序设计 (13)第二部分:基本应用模块 (13)2.1 数字时钟 (13)2.2 程序设计 (14)第三部分:基于仿真的扩展模块 (15)3.1 点阵基础——8*8点阵调节 (15)3.2 点阵模块——16*16点阵显示 (15)3.3 程序设计 (16)第四部分:赛前训练模块 (16)4.1 系统描述 (16)4.2 温度采集模块 (17)4.3 时钟模块 (17)4.4 通信模块 (17)4.5 显示模块 (18)4.6 温度控制系统整体图 (18)4.7 程序设计 (18)三、总结和心得 (19)四、参考资料 (20)附录(程序代码节选) (21)第一部分(节选主要部分) (21)第二部分(节选主要部分) (23)一、概述1.1设计意义本次单片机课程设计内容包括单片机正常启动和复位,LED花样控制及亮度、色彩变化调节,LCD液晶显示屏的调节,点阵LED的文字输出,时钟芯片DS1302的配置,温度传感器DS18B20的使用,以及键盘控制单片机工作,对以上技术的掌握可以有效地提高我们的实际应用能力,如基于LED的节日艺术彩灯控制系统、温度采集和实时监控系统、电子日历等,具有非常实际的意义和价值,使我们对知识的学习由理论提升到实践,让专业知识学习得到极大巩固和提高。
1.2设计目标第一部分:基本功能1.设计并实现具有复位功能的单片机小系统。
2.利用单片机进行灯光的场景开关控制、循环点亮控制、花样变化控制及速度变化控制。
3.利用单片机进行灯光的色彩连续变化效果控制。
4.利用单片机进行灯光的三色联动定时控制(以交通灯为例)。
5. 配合2至4项中功能,实现液晶屏输出功能或状态信息。
6. 实现基于4X4键盘的输入功能。
第二部分:基本应用模块7. 数字时钟的设计(要求:显示时间、调整时间、闹钟功能等)第三部分:基于仿真的扩展模块8.16x16点阵LED显示同组同学汉字名。
第四部分:赛前训练模块9.温度监控系统1.3设计要求1.能启动、停止单片机;2.能通过开关(按键)进行功能选择;3.基本功能部分要体现循环、组合和色彩变化的控制功能和效果,实现三色联动定时控制,控制变化规律的类型或功能不少于5种。
1.4 任务分配根据组内成员的擅长方向,由纪琛负责电路仿真和程序设计,马浩负责硬件的搭建和调试。
第一部分用时3周,第二部分用时2周,第三部分用时1周,第四部分用时3周,共用时9周。
二、硬件和程序设计元器件及开发环境元器件清单17 74LS04 片 2 20 可换用74LS07/06、74HC245以改善驱动能力18 RT1602液晶显示屏只 1 2019 DS18B20温度传感器只 1 2020 8550三极管只 1 20 PNP型21 有源一体蜂鸣器5V 只 1 20(补充:由于本组第二部分设计要求,设计时自行增加了时钟芯片DS1302和32.768KHz晶振各一个)开发环境硬件仿真环境——Proteus 7软件开发环境——Keil µVision4第一部分:基本功能1.1 单片机最小系统1.1.1 复位电路1.1.2 晶振电路1.1.3 最小系统整体图1.2 LED彩灯模块1.3 LCD 显示模块1.4 键盘控制模块1.5 第一部分整体图1.6 硬件实物图1.7 程序设计(详细程序见附录)第二部分:基本应用模块2.1 数字时钟2.1.1 DS1302时钟电路2.1.2 数字时钟整体图2.2 程序设计第三部分:基于仿真的扩展模块3.1 点阵基础——8*8点阵调节3.2 点阵模块——16*16点阵显示3.3 程序设计(见压缩包附件)第四部分:赛前训练模块4.1 系统描述本系统由AT89C51做主控芯片,外部直流稳压电源给系统供电(未给出电源详细设计),通过I2C与24C02C构成的外部存储电路通信读取预存的温度上下限值,通过DS1302时钟模块读取准确的时间信息,通过DS18B20进行温度采集,当采集温度与预设的上下限温度比较,高于上限则红灯亮蜂鸣器响且启动风扇进行降温,低于下限则蓝灯亮蜂鸣器响且启动电热丝进行升温,考虑到要显示的信息较多,系统使用12864液晶AMPIRE128X64进行数据显示,当控制方式切换为手动模式时,使用按钮控制风扇和电热丝,串口RS-232用于与PC进行通信,可以手动设定温度上下限、当前时间、工作模式(自动、手动)。
由于时间和个人能力问题,本电路的串口通信功能未得到完善,软件设计也存在问题,虽然基本检测和自动控制能实现,但离预期可基本投入实际应用的目标还很遥远。
4.2 温度采集模块4.3 时钟模块4.4 通信模块4.5 显示模块4.6 温度控制系统整体图4.7 程序设计(详细见压缩包附件)端口、定时器、I2C 初始化预设定温度上下限温度转换时间Jc&Mh三、总结和心得在这次的单片机课程设计实验过程中,我遇到过很多难题,比如,如何调节占空比使得三色灯的颜色更具连续性,如何配置DS1302芯片,如何进行LCD 的初始化,如何使用较少的端口连接4个8*8点阵组成一个16*16点阵、如何温度采样等等,这些问题都曾导致我们的试验进度缓慢,因为我是负责仿真和程序部分的,如果我这边出不来,硬件那边就无法进行,因此我经常需要查阅大量网络资料和馆藏书籍,实时学习相关知识以保证我的知识量足以设计出稳定可靠的电路并写出符合功能要求的程序代码,这是很需要时间和精力的,因为很多情况都是,可能看了一上午的书,检查了一上午的代码,仍然解决不了我们遇到的问题。
就比如我们后期调试第一部分的电路时,LCD实物一直没有显示,但是仿真却有反应,找了半天才发现有2个控制端口接错位了。
从这些细小的问题可以看出,有时候一个产品的好坏并没有决定于它大的硬件设计或者程序驱动等,而往往是一些平时没注意的细微之处,在关键时刻导致整个产品的失败。
另一个教训就是,平时应该多查阅资料,有时候使用别人已经做好的模块可以节省大量的时间,设计初期我花大量时间去调试LCD驱动和键盘初始化,结果有现成的没及时用,白白浪费大量时间。
如果平时多阅读,使用的时候就能很快联想到相关见过的或者曾经做过的模块,这样可以大大缩短实验周期,提高效率。
总之,这次课程设计我学到了不少东西,理论知识永远还是需要实验来巩固才能提高。
四、参考资料1.《单片机课程设计指导》(第2版) 北京航空航天大学出版社作者:楼然苗李光飞 2012.12. 《单片机技术-课程设计与项目实例》中国电力出版社作者:李海滨等 2009.103.《 Proteus教程-电子线路设计、制版与仿真》清华大学出版社作者:朱清彗 2008.94.《 51系列单片机设计实例》(第2版) 北京航空航天大学出版社作者:楼然苗李光飞 2006.25.《基于5103K的单片机实验指导书》(内部试用)附录(程序代码节选)第一部分(节选主要部分)#include<reg52.h>#include<stdio.h> //标准输入输出#include<intrins.h>#include<stdlib.h>#include "last1_led.h"#define Data P0//数据端口sbit RS = P2^4; //Pin4sbit RW = P2^5; //Pin5sbit E = P2^6; //Pin6sbit p1_0=P1^0;//接东西绿灯//sbit p1_1=P1^1;//接东西黄灯//sbit p1_2=P1^2;//接东西红灯//sbit p1_3=P1^3;//接南北绿灯//sbit p1_4=P1^4;//接南北黄灯//sbit p1_5=P1^5;//接南北红灯//unsigned char key;static int i=0;char data TimeNum[]=" ";char data Test1[]=" ";//延时函数1//void delay1(unsigned int x)//键盘扫描函数//unsigned char keyscan(void)void last1_led(void);void roadlight(void)void DelayUs(unsigned char us)//delay usvoid DelayMs(unsigned char ms)/* 写入命令 */void WriteCommand(unsigned char c)/* 写入数据函数 */void WriteData(unsigned char c)/* 写入字节函数 *//* 写入字符串函数 */void ShowString (unsigned char line,char *ptr)/* 初始化函数 */void InitLcd()void lcdshow(void){InitLcd(); //初始化LCDDelayMs(15); //延时保证信号稳定WriteCommand(0x01); //显示清屏sprintf(Test1," LCD Test ");//打印输出第一行信息ShowString(0,Test1);sprintf(TimeNum," Hello AT89C51 ");//打印输出第二行信息ShowString(1,TimeNum);}// 三色联动//void delay_h(int x)//主函数//void main(void){unsigned char keycode;P1=0xFF;srand(3);while(1){keycode=keyscan();switch(keycode){case 0:last1_led();P1=0xFF;break;case 1:roadlight();P1=0xff;break;case 2:lcdshow();break;case 3:while(1){pwm();}break;default:break;}}}/*功能: 8个LED的4种花样显示 */#include <reg51.h>typedef unsigned char U8;typedef unsigned int U16;/*************宏定义*****************/#define speed P2#define led_data P1#define uchar unsigned char#define uint unsigned int/*************端口定义***************/sbit key_speed_jia=P2^0; //int0sbit key_speed_jian=P2^1; //int1/*************************************************************** 4种花样数据定义***************************************************************/ uchar code table0[]={0xE7,0xDB,0xBD,0x7E,0xFF,0x7E,0x3C,0x18,0x00,0xFF,0xE7,0xC3,0x81,0x00};uchar code table1[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code table2[]={0xAA,0x55};uchar code table3[]={0x00,0xFF};uint sudu; //流水灯速度uchar cishu; //闪烁次数/************************************************************* * 名称:last1_led* 功能:循环调用各个子程序**************************************************************/ void last1_led(void){ }void exter_int0() interrupt 0 //外部中断0函数void exter_int1() interrupt 2 //外部中断1函数第二部分(节选主要部分)#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar Second,Minute,Hour,Date,Month,Year,week;//时间等变量#define one 0x80 //第一行的初始位置#define two 0xc0 //第二行初始位置sbit RS_1602=P2^0; //1602数据命令端sbit E_1602=P2^1; //1602使能端sbit IO_1302=P2^4; //1302数据端sbit CLK_1302=P2^3; //1302时钟端sbit RST_1302=P2^2; //1302复位端sbit key_mode=P1^0; //功能按键sbit key_up=P1^1; //增量键sbit key_down=P1^2; //减量键sbit ACC0=ACC^0;sbit ACC7=ACC^7;uchar code tab1[]={"20 - - week "}; //液晶第一行默认显示数据uchar code tab2[]={" : : "}; //液晶第二行默认显示数据void init(); //定时器0初始化/********************ds1302****************************/void write_byte(uchar dat) //1302字节写{uchar kk;ACC=dat;RST_1302=1; //启动读写操作for(kk=8;kk>0;kk--) //8位数据{IO_1302=ACC0; //先传送数据低位CLK_1302=0;CLK_1302=1; //上升沿输入数据ACC=ACC>>1; //右移位}}uchar read_byte() //1302字节读{uchar kk;RST_1302=1; //启动读写操作for(kk=8;kk>0;kk--){ACC7=IO_1302; //先读入数据低位CLK_1302=1;CLK_1302=0; //下降沿输出数据ACC=ACC>>1; //右移位}return (ACC);}void write_1302(uchar add,uchar dat) //1302地址写{RST_1302=0;CLK_1302=0;RST_1302=1; //启动读写操作write_byte(add); //写地址write_byte(dat); //写数据CLK_1302=1;RST_1302=0; //禁止读写操作}uchar read_1302(uchar add) //1302地址读{uchar temp;RST_1302=0;CLK_1302=0;RST_1302=1; //启动读写操作write_byte(add); //写地址temp=read_byte(); //读数据CLK_1302=1;RST_1302=0; //禁止读写操作return(temp);}void ds1302_init() //1302初始化{RST_1302=0; //禁止读写操作CLK_1302=0; //时钟为低write_1302(0x80,Second|0x00); //允许写}void keyscan() //按键处理子程序{uchar key1n; //功能键按下次数if(key_mode==0) //key_down为功能键{delay(5); //延时去抖动if(key_mode==0) //功能键确认按下{while(!key_mode); //等待按键释放key1n++; //功能键按下次数加一if(key1n==9) //为9时调为1 则1~8key1n=1;switch(key1n) //功能键按键次数不同实现不同操作{case 1: //时调整秒TR0=0; //关闭定时器write_1602com(two+0x0b); //写入光标位置write_1602com(0x0f); //设置光标为闪烁write_1302(0x8e,0x00); //允许写write_1302(0x80,0x80|Dec_BCD(Second));//Secondbreak;case 2: write_1602com(two+8);break; //Minute闪烁case 3: write_1602com(two+5);break; //Hour闪烁case 4: write_1602com(one+0x0f);break; //week闪烁case 5: write_1602com(one+0x09);break; //Date闪烁case 6: write_1602com(one+0x06);break; //Month闪烁case 7: write_1602com(one+0x03);break; //Year闪烁case 8:write_1602com(0x0c); //设置光标不闪烁write_1302(0x80,0x00|Dec_BCD(Second)); //Secondwrite_1302(0x8e,0x80); //禁止写TR0=1;//打开定时器break;}}}if(key1n!=0) //当key_mode按下以后。