蜂鸣器流水灯数码管显示作息时间控制单片机课程设计
蜂鸣器流水灯数码管显示作息时间控制单片机课程设计
一、课程设计目的《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。
在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。
通过课程设计,应能加强学生如下能力的培训:(1)独立工作能力和创造力;(2)查阅图书资料,产品手册和各种工具书的能力;(3)工程绘图的能力;(4)编写技术报告和编制技术资料的能力(5)综合运用专业及基础知识,解决实际工程技术问题的能力;二、设计要求2.1总体要求(1) 独立完成设计任务(2) 绘制系统硬件总框图(3) 绘制系统原理电路图(4) 制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5) 制定编写调试方案,编写用户操作使用说明书(6) 写出设计工作小结。
对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。
2.2 具体要求本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。
软件编程是本次工程实践的重要环节。
在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点:1)、熟悉Keil C51编程平台及相关编程软件2)、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调4)、编写、调试键盘扫描子程序并进行软硬件联调5)、编写、调试数码管动态扫描程序并进行软硬件联调6)、电子钟设计(包括键盘、时钟、显示等)7)、作息时间控制系统设计(包括键盘、显示、时钟、报警等)8)、智能交通灯控制系统设计9)、车速里程测量、显示设计三、设计内容及方法单片机原理及其应用课程设计通常选择一般常见、常用的简单应用装置或对象进行微机控制。
基于C51单片机的数字时钟课程设计(C语言,带闹钟).
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
蜂鸣器与流水灯实验报告
======================蜂鸣器与流水灯实验===================实验(一)蜂鸣器一、电路图二、程序注释1、频率、节拍常数的编码2、定时/计数器0中断赋初值,使计数器计满一次时时间为100ms。
同时没记一满次,n减13、毫秒的延时函数4、无参数返回值的延时函数5、主函数,用switch函数选择,当case为0x00时,延时一段时间再开始6、让i自加1,延时7、选择频率常数,选择m、n为第1个,第2个……第i个频率8、开定时器中断,延时4*m的时间等待节拍完成,当n不等于0时,将选出来的频率依次输出,实验(二)流水灯一、电路图二、程序注释①直接赋值控制亮灯法#include <reg52.h>sbit LED0=P1^0 ; //定义八个流水灯等为输出端口P1^0~P1^7 sbit LED1=P1^1 ;sbit LED2=P1^2 ;sbit LED3=P1^3 ;sbit LED4=P1^4 ;sbit LED5=P1^5 ;sbit LED6=P1^6 ;sbit LED7=P1^7 ;void delay(float t) //延时函数{ unsigned int i,j;j=t*100;while(j--){for(i=8000;i;i--);}}void main() //主函数{while(1){LED0=0; //亮第1个灯delay(0.1); //延时0.1sLED0=1; //熄灭LED1=0; //亮第2个灯delay(0.1);LED1=1;LED2=0; //亮第3个灯delay(0.1);LED2=1;LED3=0; //亮第4个灯delay(0.1);LED3=1;LED4=0; //亮第5个灯delay(0.1);LED4=1;LED5=0; //亮第6个灯delay(0.1);LED5=1;LED6=0; //亮第7个灯delay(0.1);LED6=1;LED7=0; //亮第8个灯delay(0.1);LED7=1;}}②循环左移法#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit p1=P1^0;uchar temp;void delay(uint); //延时函数声明void main() //主函数{temp=0xfe; //将0xfe赋给tempP1=temp; //P1值为temp,即11111110,第一个灯亮 while(1){temp=_crol_(temp,1); /*循环左移函数,每次向左移一位,使其第1,2,3……依次为0*/delay(100); //延时0.1sP1=temp; //将temp值赋给P1使}}void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}。
单片机流水灯课程设计
单片机流水灯课程设计第一篇:单片机流水灯课程设计单片机原理及系统课程设计报告基于AT89C51单片机的流水灯引言1.1 课题简介单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机可以构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
单片机流水灯课程设计
添加标题
添加标题
添加标题
添加标题
闪烁频率:测量流水灯每秒闪烁的 次数
稳定性:测试流水灯在长时间工作 下的稳定性,确保其不会因长时间 工作而损坏或失效
流水灯系统的可靠性测试
测试目的:验证流水灯系统的稳定性和可靠性 测试方法:使用不同的输入信号,观察流水灯的反应 测试内容:包括但不限于电源电压、电流、温度、湿度等环境因素 测试结果:记录流水灯在不同环境下的表现,分析其稳定性和可靠性
单片机的 特点:体 积小、功 耗低、可 靠性高、 编程简单 等
单片机的编程语言和开发环境
编程语言: C语言、 汇编语言 等
开发环境:
Keil
uVision、
IAR
Embedd
e
d
Workbe
nch等
编译工具: GCC、 AVR Studio等
仿真工具: Proteus、 Multisim 等
调试工具: J-Link、 ST-Link 等
Part Five
流水灯软件设计
单片机控制程序的编写
编写目的:实现流水灯的动态 效果
编程语言:C语言或汇编语言
程序结构:主程序、子程序、 中断服务程序等
程序功能:控制流水灯的亮灭、 速度、方向等
流水灯的程序流程图设计
初始化:设置流 水灯的初始状态
循环:循环执行 流水灯的显示过
程
判断:判断流水 灯的当前状态
流水灯的电路板布局和布线
电路板布局:根 据流水灯的功能 和需求,合理布 局各个元器件的 位置
布线原则:遵循 信号传输的优先 顺序,避免信号 干扰和串扰
布线技巧:采用 合理的布线方式, 如蛇形布线、星 形布线等,提高 信号传输速度和 稳定性
单片机课程设计电子时钟
xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。
时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。
用6MHz晶振产生振荡脉冲,定时器进行秒计时。
调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。
闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。
1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。
1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。
2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。
3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。
2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。
校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。
闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。
蜂鸣器单片机课程设计
蜂鸣器单片机课程设计一、课程目标知识目标:1. 学生能够理解单片机的结构组成、工作原理及其在自动化控制中的应用。
2. 学生能够掌握蜂鸣器的工作原理,并运用编程知识实现对蜂鸣器的控制。
3. 学生能够了解并掌握相关的电子元器件知识,如电阻、电容、二极管等。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的基于单片机的蜂鸣器控制系统。
2. 学生能够编写程序,实现对蜂鸣器音调、音量的控制,完成特定功能。
3. 学生能够通过实践操作,培养动手能力、问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生能够培养对电子技术的兴趣,激发学习热情,形成自主学习、探索未知的良好习惯。
2. 学生能够认识到单片机在现实生活中的应用,理解科技发展对生活的改善,增强社会责任感。
3. 学生能够在团队协作中学会尊重他人,培养良好的沟通能力和团队精神。
分析课程性质、学生特点和教学要求,本课程旨在让学生在掌握单片机基本原理的基础上,通过实践操作,学会设计简单的蜂鸣器控制系统,培养实际操作能力。
课程目标分解为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,重点讲解AT89C51单片机的内部结构、引脚功能及其指令系统。
相关教材章节:第一章 单片机概述、第二章 AT89C51单片机结构。
2. 蜂鸣器工作原理:讲解蜂鸣器的基本构造、工作原理,以及如何通过单片机控制蜂鸣器发出不同音调的声音。
相关教材章节:第三章 常用外围设备、第六章 单片机控制蜂鸣器。
3. 程序设计:教授如何编写C语言程序,实现对蜂鸣器音调、音量的控制,并完成特定功能。
相关教材章节:第四章 单片机C语言编程、第五章 单片机中断与定时器。
4. 电子元器件知识:介绍电阻、电容、二极管等常用电子元器件的原理及应用。
相关教材章节:第七章 常用电子元器件。
5. 实践操作:安排学生进行单片机控制蜂鸣器的实践操作,包括电路搭建、程序编写、调试与优化等。
基于C51单片机的数字时钟课程设计(C语言带闹钟)
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
单片机课程设计报告蜂鸣器
河南师范大学新联学院单片机课程设计报告课程单片机原理及接口技术设计题目蜂鸣器演奏歌曲年级专业 2011级计算机科学与技术学号 11 047000000学生姓名李指导教师莹2014年 6 月 15 日蜂鸣器演奏歌曲实验报告一、要求完成驱动蜂鸣器歌曲演奏的实验二、目的1、学习KEIL软件的使用方法;2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生;3、掌握设计中各模块的功能,能够填入并演奏曲子;4、学习乐谱的基本知识,掌握其演奏的原理。
三、分析1、基本原理简述声音是通过振动产生的。
单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。
若改变输出方波的频率,产生的声音随之改变。
通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。
音乐的播放选择可以通过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半。
因此,输出引脚在每个方波周期内要动作两次:一次升高,一次降低。
即输出引脚的频率是原音频率的两倍。
2、单片机产生不同频率脉冲信号的原理(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。
计数脉冲值与频率的关系公式如下:N=Fi/2/Fr(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)(3)其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO (523Hz)、高音DO(1046Hz)的计数值。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
单片机课程设计蜂鸣器
单片机课程设计蜂鸣器一、课程目标知识目标:1. 理解单片机的基本原理,掌握蜂鸣器模块的电路连接和工作原理;2. 学会编写控制蜂鸣器响铃、停铃的程序代码,理解程序中的延时函数及其作用;3. 了解蜂鸣器在不同应用场景下的使用方法,如报警、音乐播放等。
技能目标:1. 能够独立完成蜂鸣器模块与单片机的连接,进行电路调试;2. 掌握使用编程软件编写、编译和烧录程序到单片机,实现蜂鸣器的控制;3. 培养学生的动手操作能力,提高问题解决能力。
情感态度价值观目标:1. 激发学生对单片机编程的兴趣,培养其主动探究精神;2. 培养学生的团队合作意识,学会在团队中沟通与协作;3. 引导学生关注单片机在现实生活中的应用,认识到科技改变生活的意义。
分析课程性质、学生特点和教学要求:本课程为单片机课程的实践环节,以动手操作为主,注重培养学生的实践能力和创新思维。
针对学生年级特点,课程内容以基础为主,逐步提高难度。
在教学过程中,教师需关注学生的学习进度,及时解答疑问,确保学生能够掌握课程内容。
1. 熟练掌握蜂鸣器模块的使用,实现基本的控制功能;2. 提高编程技能,为后续学习更复杂的单片机应用打下基础;3. 增强对单片机应用场景的认识,激发学习兴趣,培养良好的情感态度。
二、教学内容1. 理论知识:- 单片机基础原理介绍,重点掌握CPU、内存、I/O口等基本组成部分;- 蜂鸣器模块工作原理,理解其电路连接方式及控制方法;- 编程软件的使用,包括编写、编译、烧录程序的基本步骤。
2. 实践操作:- 蜂鸣器模块与单片机的连接,学会使用杜邦线进行电路搭建;- 编写程序控制蜂鸣器响铃与停铃,掌握延时函数的使用;- 设计简单的报警程序,实现蜂鸣器不同频率的响铃。
3. 教学大纲:- 第一课时:单片机基础原理学习,蜂鸣器模块介绍;- 第二课时:编程软件的使用,编写简单的控制程序;- 第三课时:实践操作,连接电路,烧录程序,调试蜂鸣器;- 第四课时:拓展应用,设计报警程序,提高编程技能。
单片机课程设计蜂鸣器
单片机课程设计 蜂鸣器一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握蜂鸣器在单片机系统中的应用。
2. 使学生掌握蜂鸣器的电路连接和工作原理,能够运用编程实现蜂鸣器的控制。
3. 帮助学生掌握相关指令和程序设计方法,实现蜂鸣器的不同音调、音量及节奏的控制。
技能目标:1. 培养学生动手操作能力,能够独立完成蜂鸣器与单片机的连接和调试。
2. 提高学生的编程能力,使其能够设计出功能完善、结构清晰的蜂鸣器控制程序。
3. 培养学生的问题分析和解决能力,能够针对实际需求,调整程序参数,实现不同功能。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣和热情,激发学生主动探索和实践的精神。
2. 培养学生的团队合作意识,鼓励学生在课堂上积极交流、分享经验,共同进步。
3. 培养学生严谨、认真、负责的学习态度,使其在课程学习过程中养成良好的学习习惯。
课程性质分析:本课程为单片机课程设计,以实践操作为主,注重理论联系实际,提高学生的动手能力和创新能力。
学生特点分析:学生处于高年级阶段,已具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。
教学要求:结合课程性质和学生特点,明确课程目标,注重理论与实践相结合,充分调动学生的积极性和主动性,培养其独立思考和解决问题的能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其综合素质。
二、教学内容1. 理论知识:- 单片机原理概述,重点掌握其内部结构、工作原理及指令系统。
- 蜂鸣器工作原理,包括蜂鸣器的种类、电路连接方式及声音产生机制。
- 编程语言基础,复习C语言基本语法,强调其在单片机编程中的应用。
2. 实践操作:- 蜂鸣器与单片机的硬件连接,学会使用面包板进行电路搭建。
- 编写蜂鸣器控制程序,实现不同音调、音量和节奏的控制。
- 调试程序,学会使用调试工具,分析并解决程序运行过程中可能出现的问题。
3. 教学大纲:- 第一周:单片机原理复习及蜂鸣器工作原理学习。
单片机流水灯课程设计
单片机流水灯课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和结构,掌握流水灯的设计方法。
2. 学生能描述流水灯程序的设计流程,包括电路连接、编程语言及指令的运用。
3. 学生了解并能够解释流水灯中涉及的电子元件功能,如电阻、电容、LED 等。
技能目标:1. 学生能够独立完成流水灯电路图的绘制,并正确搭建电路。
2. 学生能够运用指定的编程软件,编写并调试出流水灯的程序代码。
3. 学生通过动手实践,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生通过完成流水灯的制作,培养对电子制作的兴趣,激发创新精神。
2. 学生在团队合作中学会相互尊重、倾听意见,培养良好的沟通能力和团队意识。
3. 学生能够意识到科技在生活中的应用,增强实践是检验真理的唯一标准的认识。
课程性质:本课程为实践操作性强的电子技术课程,结合理论知识与动手实践,培养学生对单片机应用的基本技能。
学生特点:假设学生为八年级,已具备基本的物理知识和逻辑思维能力,对电子制作有好奇心,动手能力强。
教学要求:教师应注重理论与实践相结合,鼓励学生动手实践,关注个体差异,提供个性化指导,确保学生在掌握知识技能的同时,培养积极的情感态度价值观。
通过具体的学习成果分解,后续教学设计和评估将更有针对性。
二、教学内容1. 理论知识:- 单片机基本原理与结构介绍,关联教材第3章。
- 流水灯电路设计原理,关联教材第4章。
- 编程语言基础及指令运用,关联教材第5章。
2. 实践操作:- 电路图绘制,关联教材第6章。
- 流水灯电路搭建,包括元件识别、电路连接,关联教材第7章。
- 程序编写与调试,关联教材第8章。
3. 教学大纲安排:- 第一课时:介绍单片机基本原理与结构,让学生了解流水灯项目背景。
- 第二课时:讲解流水灯电路设计原理,进行电路图绘制练习。
- 第三课时:学习编程语言基础及指令运用,为学生编写程序打下基础。
- 第四课时:分组进行流水灯电路搭建,并进行程序编写与调试。
单片机课程设计-作息时间控制器
河南理工大学—电子设计综合训练报告作息时间控制器姓名:学号:专业班级:指导老师:所在学院:2010 年7 月2 日本设计是作息时间控制器,由单片机最小系统、按键模块、数码管显示模块、闹钟模块组成。
采用单片机AT89S52与12MHZ晶振相连;通过按键K1、K2、K3、K4控制时间的校正、闹钟时间设定;数码管显示模块用来显示时间,显示格式为“时分”,并能够根据需要显示年、月、日,由数码管小数点闪动作为秒计数;闹钟模块进行到时提醒并作出相应动作:发光二极管闪亮,同时播放音乐。
本设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0 定时器溢出中断来实现,工作在T1 方式下,定时50 微妙,则连续中断20 次即为一秒,得到了我们所需时间的最小单位秒,60 秒为一分,60 分为一小时,24 小时为一天,1、3、5、7、8、10、12 月为31 天,4、6、9、11 月为30 天,闰年二月为29 天,非闰年二月为28 天,12 个月为一年。
采用这种时间设计思想来进行时间设置。
在整个系统的设计中,单片机的P0 口输出显示信号,P1 口按键输入控制、P2 口用来扫描,为动态显示、P3 口闹钟模块。
该设计用C51 编写程序,由于汇编语言的移植性比较差,而C 语言则比较灵活。
许多子函数都可以直接移植过去。
摘要 (1)目录 (2)1概述 (1)1.151 单片机简介 (1)1.2设计要求及功能 (1)1.3本设计实现的功能 (1)2系统总体方案及硬件设计 (2)2.1系统总体方案框图 (2)2.2按键控制模块 (3)2.3时间显示模块 (4)2.4闹钟模块 (4)3软件设计 (5)3.1系统软件设计思想 (5)3.2系统主程序 (5)3.3中断子程序 (6)3.4按键扫描子程序 (8)4Proteus 软件仿真 (9)4.1Proteus 软件简介 (9)4.2Proteus 软件仿真 (9)5课程设计体会 (13)参考文献: (14)附1:源程序代码 (15)附2:系统原理图 (25)1 概述1.1 51 单片机简介单片微型计算机简称单片机,即把组成微型计算机的各个功能部件,如中央处理器、随机存储器、只读存储器、I/O接口电路、定时器/计数器以及串行通信接口等集成在一块芯片上,构成一个完整的微型计算机。
单片机原理及应用A实验-流水灯、蜂鸣器、独立按键
流水灯、蜂鸣器、独立按键一、实验目的1、学习实验系统的基本操作,了解在实验系统中进行程序设计、仿真和调试的操作方法和步骤;2、了解单片机的基本输入、输出功能;3、熟悉Proteus的基本仿真功能;二、实验原理1、LED流水灯的原理即为单个控制LED的亮灭、亮灭,让单个LED灯先亮然后很快灭掉,并在很短的时间里使下一个LED重复这一过程。
这样让一排LED灯依次亮灭后即形成流水灯的效果。
2、在本次实验中把蜂鸣器用扬声器替代,通过控制扬声器工作时间来控制扬声器的发音频率。
3、按键是机械装置,在其闭合的时候会产生震荡,这会让软件产生误判。
为了消除这种影响,就需要对按键进行软件消抖。
消抖原理为两次判断,只要相隔一段时间的两次判断皆为按键已按下,那么这次的判断结果就是可信的,所以用到延时函数。
三、实验步骤;1、硬件仿真。
先分析实验所需的硬件条件,然后在Proteus上连接好硬件电路,注意连接好必要的电阻等。
2、软件编写。
在Keil或其它的单片机编程软件上用C语言编写出构思好的软件。
3、将程序编译为HEX文件,然后烧录到仿真单片机中,进行仿真。
四、实验结果及分析1、LED流水灯的硬件仿真电路图:实验中加入了循环处理,所以该流水灯可以顺着亮一遍再逆着亮一遍,如此反复。
并且改变流水灯亮灭的时间间隔还可以得到各种不同的效果。
2、蜂鸣器驱动的硬件仿真电路图:这里用扬声器代替蜂鸣器。
以单片机产生的一方波脉冲作为扬声器的电信号输入,用不同频率的方波信号产生不同音调的声音。
3、;4、独立按键延时去抖的硬件仿真电路图:用一个按键控制LED灯的亮灭,在软件中对按键进行消抖。
五、体会这一次的单片机实验让我感到自己对Proteus的运用还欠缺许多,基本可以说是一窍不通。
所以,这次实验以后还要花大量的时间在Proteus的学习上,希望可以从中学习到很多的东西。
还有在编程方面,很多的编程思想都还不成熟,想到的方法都有很多欠缺的地方,和书上所给的例子差距还很大。
基于单片机的定时蜂鸣器课程设计报告
信息科学与工程学院通信工程系单片机课程设计报告课程单片机课程设计设计题目基于单片机的定时蜂鸣器年级专业学号学生姓名指导教师2012年6 月24 日课程设计量化评分标准指导教师评语:指标最高分评分要素评分方案设计35方案选择合理,分析、设计正确,原理清楚,电路、程序流程图清晰,结构合理,程序简洁、正确。
调试 15过程清晰,调试方案设计合理,测试点选择适当,程序编写正确,调试步骤清楚。
结果 20 电路及程序运行结果正确,达到预期效果。
设计报告20报告结构严谨,逻辑严密,论述层次清晰,语言流畅,表达准确,重点突出,报告完全符合规范化要求,用计算机打印成文。
工作态度 10工作态度认真,按时完成设计任务,是否独立完成。
总 评 成 绩设计题目:基于单片机的定时蜂鸣器一、要求设计一个基于单片机的定时蜂鸣器系统,要求最长定时时间为2小时,分辨率为1秒,蜂鸣器响应时间为5秒。
二、分析由设计题目分析知:定时蜂鸣器其原理类似于定时闹钟,只需在定时系统的终端调用警鸣模块,即可实现定时蜂鸣器的功能。
根据题目的要求,系统可以分为定时、键盘中断、数码显示和警鸣四个模块。
首先,设计一个最长定时时间为2小时的定时器,其次,在定时器中响应键盘中断并调用数码管显示模块,最后,在定时终端调用警鸣模块。
三、设计1、硬件设计(包括设计方案及说明、完整的硬件连接图等) (1)、方案及说明由单片机实践板的电路图知,蜂鸣器的输入端接在了单片机的P2^6口,数码管由单片机通过CH452控制,同时还控制键盘。
因此,由单片机控制CH452,再由控制芯片控制显示和键盘,蜂鸣器由单片机直接控制,即可实现系统功能。
(2)、完整的硬件连接图见(附件1)2、软件编程(包括流程图、完整的汇编源程序及其注释) (1)、流程图(3) (1)(否)(2) (是)(3)(是)(否) (否)(1)(是) (2)开始 初始化,允许定时器T0溢出 中断及外部中断0中断 调用数码管显示函数 外部中断0(键盘中断) 调用警鸣函数 是否达到计时 时间响应时间是否达到5秒 设置初值 计时 开始计时是否有新的外部中断时间计数器清零 开始新一轮计时(2)、完整的源程序代码及其注释初始化模块:#include"ch451.h"#include<reg52.h>sbit ch451_dclk=P2^3; //串行数据时钟上升延激活sbit ch451_din=P2^2; // 串行数据输出,接CH451的数据输人sbit ch451_load=P2^0; //串行命令加载,上升延激活sbit ch451_dout=P2^1; //键值数据输入,接ch451数据输入sbit beep=P2^6;uchar ch451_key; // 存放键盘中断中读取的键值uint display[6]={0x0d00,0x0c00,0x0b00,0x0a00,0x0900,0x0800};ucharBCD[]={0xbe,0x24,0xea,0xe6,0x74,0xd6,0xde,0xa4, 0xfe,0xf6 };//0~9数字uchar shishi,shige,fenshi,fenge,miaoshi,miaoge,n,m,p,q,e;bit stop_flag=0,ss_flag=0,flag=0;uchar num=1,n=0,f=0;void main(){ch451_write(CH451_RESET); //CH451复位ch451_write(CH451_SYSON2); //开显示、键盘ch451_write(CH451_DSP); //设置BCD不译码方式ch451_write(CH451_TWINKLE); //设置闪烁控制——正常显示ch451_init();timer0count_init();while(1){key_Recognize();time_dispose();smg_Display();}void ch451_init(){ch451_din=0; //先低后高,选择4线输入ch451_din=1;TMOD=0x11 //设置定时器T1工作在16位计时状态EA=1 //开中断总开关ET1=1; //允许中断TR1=1; //开中断PT1=0; //设置低优先级TL1=1; //装载计数初值TH1=200; //此计数初值用来调试}void timer0count_init(){ET0=1;TR0=1;TH0=0x08;TL0=0x00;}计时模块:void time_dispose(){ if((m!=0)&&(f)){ if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0; fenge=0;fenshi=0;shige=0;shishi=0;}}if(miaoge>9){miaoge=0;miaoshi++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0; fenge=0;fenshi=0;shige=0;shishi=0;}if(miaoshi>5){miaoshi=0;fenge++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}if(fenge>9){fenge=0;fenshi++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)){for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0; shige=0;shishi=0;}if(fenshi>5){fenshi=0;shige++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}if(shige>=2){for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}}}}}}键盘模块:void key_Recognize(){switch(ch451_key){ case 0x43:delay(255300); num=1;stop_flag=~stop_flag;break;case 0x42: delay(255300); num++;if(num>6){num=1; }break;case 0x41:delay(255300);f=0;if(stop_flag){switch(num){case 1:if(miaoge<9) {miaoge++; m=miaoge ;}else {miaoge=0;m=miaoge ;}break;case 2:if(miaoshi<5){miaoshi++;g=miaoshi;}else {miaoshi=0;g=miaoshi;}break;case 3:if(fenge<9){fenge++;p=fenge;}else {fenge=0; p=fenge;}break;case 4:if(fenshi<5){fenshi++; q= fenshi;}else {fenshi=0;q= fenshi;}break;case 5:if(shige<2){shige++; e=shige;}else {shige=0; e=shige;}break;case 6:if(shishi<1){shishi=0;}else {shishi=0;}break;}}break;case 0x40:delay(255300);miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;f=1;} }显示模块:void smg_Display(){if(stop_flag){if((num!=6)||(ss_flag==0))//ss_flag每半秒改变一次数值,进行闪烁;当没有选中该数码管,即num不等于6时,正常显示,所以用或语{ch451_write(display[0]+BCD[shishi]);}else if((num==6)&&(ss_flag==1))//当选中该数码管且ss_flag为1时,数码管灭{ch451_write(display[0]+0);}}else if(!stop_flag) {ch451_write(display[0]+BCD[shishi]);}if(stop_flag){if((num!=5)||(ss_flag==0)){ch451_write(display[1]+BCD[shige]); }else if((num==5)&&(ss_flag==1)){ch451_write(display[1]+0);}}else if(!stop_flag){ch451_write(display[1]+BCD[shige]);}if(stop_flag){if((num!=4)||(ss_flag==0)){ch451_write(display[2]+BCD[fenshi]);}else if((num==4)&&(ss_flag==1)){ch451_write(display[2]+0)}}else if(!stop_flag){ch451_write(display[2]+BCD[fenshi]);}if(stop_flag){if((num!=3)||(ss_flag==0)){ch451_write(display[3]+BCD[fenge]);}else if((num==3)&&(ss_flag==1)){ch451_write(display[3]+0);}}else if(!stop_flag){ch451_write(display[3]+BCD[fenge]);}if(stop_flag){if((num!=2)||(ss_flag==0)){ch451_write(display[4]+BCD[miaoshi]);}else if((num==2)&&(ss_flag==1)){ch451_write(display[4]+0);}}else if(!stop_flag){ch451_write(display[4]+BCD[miaoshi]);}if(stop_flag){if((num!=1)||(ss_flag==0)){ch451_write(display[5]+BCD[miaoge]);}else if((num==1)&&(ss_flag==1)){ch451_write(display[5]+0); }}else if(!stop_flag){ch451_write(display[5]+BCD[miaoge]);}}警鸣模块:void speaker(void){uchar i,j;for(j=0;j<250;j++)for(i=0;i<250;i++){ beep=~beep;for(i=0;i<250;i++);}beep=1; //防止结束时候是低电平}3、调试说明首先用Keil软件创建一个工程,将程序源代码输入并编译生成单片可执行的.hex文件。
单片机流水灯课程设计
单片机流水灯课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,了解流水灯的制作流程。
2. 使学生掌握C语言编程的基本方法,并能够运用到单片机编程中。
3. 帮助学生理解并运用数字电路基础知识,实现流水灯的功能。
技能目标:1. 培养学生动手操作能力,能够独立完成流水灯电路的搭建和程序编写。
2. 培养学生问题解决能力,能够分析和解决流水灯制作过程中遇到的问题。
3. 提高学生的团队协作能力,学会在小组内共同完成任务。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新精神和实践能力。
2. 培养学生严谨、细心的学习态度,养成认真检查、反复验证的好习惯。
3. 增强学生的自信心,培养面对困难和挑战时的积极心态。
本课程针对中学生设计,注重理论知识与实践操作的相结合,旨在提高学生的动手能力、编程技能和团队协作能力。
课程要求学生在掌握基本原理的基础上,能够独立完成流水灯的制作,并通过实际操作,培养学生的创新意识和实际操作能力。
课程目标具体、可衡量,便于教师进行教学设计和评估。
二、教学内容1. 单片机基础知识:介绍单片机的结构、工作原理,引导学生了解51单片机的特点和应用领域。
2. C语言编程基础:复习C语言基础知识,重点讲解与单片机编程相关的数据类型、运算符、控制语句等。
3. 流水灯原理与设计:讲解流水灯的工作原理,分析电路设计,使学生了解并掌握数字电路基础知识。
4. 单片机编程实践:教授流水灯程序编写方法,引导学生运用所学的C语言知识,编写并调试程序。
5. 流水灯电路搭建:指导学生动手搭建流水灯电路,培养学生实际操作能力。
6. 程序下载与调试:介绍程序下载到单片机的方法,教授调试技巧,帮助学生解决实际问题。
教学内容依据课程目标,紧密结合教材,分为理论教学和实践操作两部分。
理论部分主要包括单片机基础知识、C语言编程基础和流水灯原理;实践部分主要包括单片机编程实践、流水灯电路搭建和程序下载调试。
单片机课程设计作息时间控制器设计报告
单片机课程设计作息时间控制器设计报告XX大学单片机课程设计报告作息时间控制器设计姓名:学号:专业班级:自动化班指导老师:所在学院:电气工程与自动化学院2022年X月X日摘要本设计是作息时间控制器的设计,由单片机AT89C52芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子作息时间控制器。
该功能的实现主要通过软件编程来完成,降低了硬件电路的复杂性,成本也有所降低。
设计内容包括了秒信号指示、时间“时”和“分”显示电路、按键调整电路、供电电源以及闹铃指示电路等几部分的设计。
采用四个开关来控制作息时间控制器的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。
当作息时间控制器达到课程设计的要求,在到达设定的定时时间时蜂鸣器便被控制立即发出声音,持续一分钟,而后按K4键退出显示闪烁状态,即恢复时钟状态。
显示采用的四位数码管电路,定时提示采用蜂鸣器发声指示。
本设计方案也可以经过改进作为实现定时控制系统的控制定时电路。
关键词:作息时间单片机显示定时目录1概述31.1课程设计的目的和意义31.2单片机课程设计的要求31.3作息时间控制器的设计要求32系统总体方案及硬件设计42.1系统总体设计42.2系统各个部分的电路设计53软件的设计83.1概述83.2主模块的设计83.3显示模块设计93.4时间设定模块设计93.5闹铃功能的实现104Proteus软件仿真124.1仿真结果124.2性能及误差分析145课程设计体会15参考文献15附1程序源代码16附2原理图261概述1.1课程设计的目的和意义综合利用所学单片机知识完成一个单片机应用系统设计并仿真、由硬件实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下良好基础。
1.2单片机课程设计的要求1、进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;2、掌握单片机仿真软件Proteus的使用方法;3、掌握键盘和显示器在的单片机控制系统中的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课程设计目的《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。
在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。
通过课程设计,应能加强学生如下能力的培训:(1)独立工作能力和创造力;(2)查阅图书资料,产品手册和各种工具书的能力;(3)工程绘图的能力;(4)编写技术报告和编制技术资料的能力(5)综合运用专业及基础知识,解决实际工程技术问题的能力;二、设计要求2.1总体要求(1) 独立完成设计任务(2) 绘制系统硬件总框图(3) 绘制系统原理电路图(4) 制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5) 制定编写调试方案,编写用户操作使用说明书(6) 写出设计工作小结。
对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。
2.2 具体要求本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。
软件编程是本次工程实践的重要环节。
在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点:1)、熟悉Keil C51编程平台及相关编程软件2)、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调4)、编写、调试键盘扫描子程序并进行软硬件联调5)、编写、调试数码管动态扫描程序并进行软硬件联调6)、电子钟设计(包括键盘、时钟、显示等)7)、作息时间控制系统设计(包括键盘、显示、时钟、报警等)8)、智能交通灯控制系统设计9)、车速里程测量、显示设计三、设计内容及方法单片机原理及其应用课程设计通常选择一般常见、常用的简单应用装置或对象进行微机控制。
所涉及的系统可以实际制作,也可以实验室模拟,具体步骤和内容如下:3.1设计准备认真研究设计任务书,明确设计要求、条件、内容、和步骤;通过阅读有关资料,了解设计对象;复习课程有关内容,熟悉有关单元电路的设计方法和设计步骤;搜集、分析、消化相关资料、软件等,掌握微型计算机应用系统软件的设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等。
3.2功能设计及系统总体设计要求学生有创新精神和创新意识,分析所掌握的资料,了解设计对象的功能。
在充分考虑功能设计后,进行总体设计,以功能、结构为标,制定总体方案,规划硬、软件功能分配等;初步确定关键元器件地选择。
四、硬件电路总体设计4.1 硬件总框图原理说明:本电路以单片机AT89C52为主控电路,分别连接按键控制扫描模块、时钟模块、数码显示模块、LED显示模块、扬声器模块。
首先,按键扫描模块的四个按键分别用来控制数码显示、LED显示和扬声器工作,P0口用来控制其段选以显示相应的数值。
P1口控制数码管的位选,以显示相应的数值。
在其位选控制部分,采用了9012型的三极管,要求当P1口输出低电平时,位选成功,使得该位选的数码管亮,数码管显示时分通过按键1控制。
P2口作为输出口,用来控制LED的亮灭,要使其亮只需要让P2.0-P2.7口保持低电平就可以使8个灯亮起来。
同时通过P3.4端控制蜂鸣器发生,当P3.4输出低电平时候使蜂鸣器发出声音,按下按键3时使蜂鸣器发声。
最后通过按按键4实现作息时间控制的功能。
4.1.1 主控电路本次课程设计中主要是设计一个以作息时间控制为主的多功能控制系统。
该设计中我们主控电路部分采用了单片机AT89C52芯片来实现这些功能,AT89C52是一个低电压,高性能CMOS的8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM)。
其引脚如下图所示:图1.AT89C52引脚图VCC:供电电压。
GND:接地。
P0口(P0.0-P0.7):P0口来控制数码管的段选,以显示相应的数值。
P1口 (P1.0-P1.7):P1口用来控制数码管的位选,以达到动态显示的效果。
P2口 (P2.0-P2.7):P2口来控制LED的亮灭。
P3口 (P3.0-P3.7):P3.0为RXD(串行输入口),P3.1为TXD(串行输出口),P3.2为/INT0(外部中断0),P3.3为/INT1(外部中断1),P3.4为T0(记时器0外部输入),P3.5为T1(记时器1外部输入),P3.6为/WR(外部数据存储器写选通),P3.7为/RD(外部数据存储器读选通)。
XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。
RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC (40 脚)和VSS(20 脚)为供电端口,分别接+5V电源正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。
4.1.2 按键控制扫描模块按键用于控制数码显示、LED显示、扬声器等模块的工作。
通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。
设计中使用单个按键实现单个功能,属于较为简单的控制方式.图2.按键输入电路在多功能系统设计的实验中中我们使用四个按键分别与单片机的P1.4、P1.5、P1.6、P1.7相连,按键1控制数码管显示、按键2控制LED流水灯、按键3控制蜂鸣器发声,按键4控制作息时间。
通过按下相应的按键来处理相应的程序。
4.1.3 DS1302实时时钟模块图3.DS1302模块电路图DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
DS1302与CPU的连接:实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。
只是选择晶振时,不同的晶振,误差也较大。
图4. Ds1302引脚图其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),SCLK始终是输入端。
如图2所示DS1302 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,利用单片机的外部中断来处理中断系统通过数码管显示出时间。
4.1.4 数码管显示模块设计中采用四位共阳极数码管,共阳极是指其公共端接正极,通过单片机AT89C52的P1口控制其位选,以达到动态显示的效果,再通过P0口,控制其段选以显示相应的数值。
在其位选控制部分,采用了一个9012型三极管,要求当P1口输出低电平时,位选成功。
图5.数码管显示电路硬件电路中,数码管显示的小时和分.小时通过按键2控制,分通过按键3控制。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
①静态显示驱动:静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O 端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。