单片机的彩灯课程设计报告
- 格式:doc
- 大小:172.00 KB
- 文档页数:16
单片机课程设计——节日彩灯一、需求分析:1.应用场合应用于各种场合,如学校,企事业单位,家庭等可以应用于节日彩灯的控制、广告灯控制等场所。
2.设计目的1)了解单片机的基本原理以及基本应用;2)提高动手制作单片机开发板的能力;3)掌握基本I/O口的输入输出方法;4)掌握中断的处理方法以及编程方法;5)掌握焊接单片机开发板所需要的最基本的最小系统电路。
3.立题意义通过这个实验,能够对同学们的动手能力有所提高和培养,提高同学对单片机的基本原理的理解,学会一些单片机的简单应用。
二、硬件设计方案在设计中用到单片机最小系统:复位电路以及时钟(晶振)电路、程序烧写电路以及各种颜色的彩灯。
复位电路:复位是单片机的初始化操作,目的是使CPU以及各个寄存器处于一个确定的初始状态。
分为手动复位方式和上电自动方式。
时钟电路:51单片机的时钟信号可由芯片内部的震荡电路产生,也可以由外部产生。
程序烧写电路:在使用串口进行烧写电路时,用到MAX232芯片以及几个104瓷片电容。
用STC软件进行程序烧写。
三、软件设计方案首先单片机执行四种方案的程序等待中断。
中断中判断是第几次执行相应的程序。
程序流程图如图所示:图1-1 程序流程图四、系统调试问题一:在焊接电路过程中,电源正负极电压为2V解决方法:在焊接中将电源指示灯直接连接在正负极上,没有加限流电阻导致,经修改后电路正常。
问题二:在系统软件调试中,中断执行时不能返回程序解决方法:在中断中灯的延时指令for(i=0;i<200;i++) for(j=0;j<200;j++);修改为for(i=0;i<149;i++)for(j=0;j<149;j++);后,单片机正常执行指令。
五、总结通过本次课程设计,加强了我的动手操作能力,将课堂上所学的知识应用到实践中来,并且了解了单片机的基本工作原理和使用方法,在实践过程中练习了IO口的输入输出方式,熟练的掌握了中断的处理及其编程方法,掌握焊接单片机开发板所需要的最基本的最小系统电路。
51单片机彩灯课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其内部结构及功能;2. 学习并掌握C语言编程基础,能编写简单的程序控制51单片机;3. 掌握51单片机I/O口的应用,理解彩灯电路的原理及程序设计方法;4. 了解电子元器件的选择原则,能正确选用元器件并进行电路搭建。
技能目标:1. 能够运用C语言编写51单片机控制彩灯的程序;2. 学会使用相关开发工具和调试设备,具备独立搭建和调试彩灯电路的能力;3. 提高动手实践能力,培养解决实际问题的能力。
情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 培养学生严谨、细致、勇于创新的科学态度,增强自信心。
本课程针对高年级学生,结合学科特点,注重理论与实践相结合,旨在提高学生的编程能力、动手实践能力和创新能力。
通过课程学习,使学生能够独立完成51单片机彩灯的设计与制作,为后续深入学习电子技术打下坚实基础。
二、教学内容1. 51单片机原理及结构:介绍51单片机的内部结构、工作原理及特点,使学生了解单片机的基本组成和功能。
教材章节:《单片机原理与应用》第一章。
2. C语言编程基础:学习C语言的基本语法、数据类型、运算符、控制语句等,为编写单片机程序打下基础。
教材章节:《C语言程序设计》第一章至第四章。
3. 51单片机I/O口应用:讲解51单片机I/O口的使用方法,分析彩灯电路原理,使学生掌握I/O口编程及电路设计。
教材章节:《单片机原理与应用》第三章。
4. 彩灯程序设计:学习彩灯控制程序编写方法,包括流水灯、闪烁灯等效果的设计与实现。
教材章节:《单片机原理与应用》第四章。
5. 电子元器件选择与电路搭建:介绍常用电子元器件,学习元器件的选择原则,掌握电路搭建方法。
教材章节:《电子技术基础》第一章。
6. 开发工具与调试:学习使用51单片机开发工具(如Keil、Proteus等),掌握程序下载、调试及排错方法。
单片机彩灯控制器课程设计一、课程目标单片机彩灯控制器课程设计旨在让学生掌握以下知识、技能及情感态度价值观:1. 知识目标:(1)了解单片机的硬件结构,理解各部分功能及相互关系;(2)掌握单片机编程的基本方法,学会使用C语言编写程序;(3)掌握单片机与外围电路的接口技术,了解彩灯控制原理。
2. 技能目标:(1)能够运用所学知识设计简单的单片机彩灯控制器;(2)能够分析并解决彩灯控制器在运行过程中出现的问题;(3)培养团队协作能力和动手实践能力。
3. 情感态度价值观目标:(1)培养学生对单片机及电子制作的兴趣,激发创新精神;(2)培养学生严谨、认真的学习态度,提高解决问题的自信心;(3)培养学生关注社会、关爱他人的责任感,使其认识到科技对生活的影响。
课程性质:本课程为实践性较强的课程,要求学生在理论学习的基础上,动手实践,培养实际操作能力。
学生特点:学生处于高年级阶段,已具备一定的电子知识和编程基础,具有较强的求知欲和自主学习能力。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,教师为主导,引导学生通过自主探究、团队合作等方式完成课程任务。
在教学过程中,关注学生的学习成果,及时进行评估与反馈,确保课程目标的达成。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 理论知识学习:(1)单片机硬件结构:介绍单片机的内部结构、工作原理及性能特点,关联教材第3章;(2)C语言编程:学习单片机编程基础,掌握C语言语法,关联教材第4章;(3)接口技术:了解单片机与外围电路的连接方法,学习彩灯控制原理,关联教材第6章。
2. 实践操作:(1)设计简单的单片机彩灯控制器:根据理论知识,动手设计并搭建彩灯控制器,关联教材第7章;(2)程序编写与调试:编写彩灯控制程序,进行调试与优化,关联教材第8章;(3)团队协作:分组进行项目实践,培养团队协作能力。
3. 教学进度安排:(1)第1周:理论知识学习,了解单片机硬件结构、C语言编程基础;(2)第2周:理论知识学习,学习接口技术及彩灯控制原理;(3)第3-4周:实践操作,设计、搭建彩灯控制器,编写程序并进行调试;(4)第5周:团队协作,项目总结与展示。
一、实训背景随着科技的不断发展,单片机技术在各个领域得到了广泛应用。
为了提高自己的实践能力,我参加了单片机点亮彩灯的实训项目。
通过本次实训,我深入了解了单片机的原理、编程方法以及在实际应用中的操作技巧。
二、实训目的1. 熟悉单片机的基本原理和组成;2. 掌握51单片机的编程方法;3. 熟悉LED彩灯的工作原理;4. 学会使用单片机控制LED彩灯的点亮和熄灭。
三、实训内容1. 单片机简介单片机是一种将计算机的基本功能部件全部集成在一块芯片上的微型计算机。
它具有体积小、功耗低、成本低、可靠性高等优点。
单片机主要由中央处理器(CPU)、存储器、输入输出接口等组成。
2. LED彩灯简介LED彩灯是一种发光二极管(LED)制成的彩色装饰灯。
它具有发光亮度高、寿命长、节能等优点。
LED彩灯可以通过改变电流的方向和大小来控制其颜色和亮度。
3. 实训步骤(1)搭建电路首先,我们需要搭建一个基于51单片机的LED彩灯电路。
电路主要包括单片机、LED彩灯、电阻、晶振、复位电路等。
(2)编写程序编写单片机程序,实现LED彩灯的点亮和熄灭。
程序主要包括以下部分:① 初始化:设置单片机的IO口、晶振频率等参数;② 主循环:通过改变IO口的状态来控制LED彩灯的点亮和熄灭;③ 延时函数:实现LED彩灯的闪烁效果。
(3)调试程序将编写好的程序烧录到单片机中,通过仿真软件进行调试。
观察LED彩灯的点亮和熄灭效果,确保程序正常运行。
4. 实训成果通过本次实训,我成功实现了基于51单片机的LED彩灯控制。
LED彩灯能够按照设定的程序进行点亮和熄灭,实现了预期的效果。
四、实训总结1. 学到了单片机的基本原理和组成,了解了51单片机的编程方法;2. 掌握了LED彩灯的工作原理,学会了如何使用单片机控制LED彩灯;3. 提高了动手实践能力,培养了团队协作精神;4. 了解了单片机在实际应用中的操作技巧,为今后的学习和工作打下了基础。
五、实训心得1. 要做好实训,首先要明确实训目的,掌握实训内容;2. 在实训过程中,要注重理论与实践相结合,多动手、多思考;3. 遇到问题要勇于请教,与同学、老师共同探讨,共同进步;4. 保持良好的学习态度,不断提高自己的综合素质。
单片机课程设计报告实验人:邹奇文宋康班级:电嵌Q0841学号: 081602014 081602027指导老师:汪成义湖北经济学院2010年 12 月 18 日目录一、设计题目····························································二、设计内容····························································三、设计要求····························································四、设计基本流程························································五、设计方案····························································(一)硬件设计····················································(1)单片机最小系统设计····································(2)单片机外部电路设计····································(3)总体电路分析····································(二)软件编程设计····································(1)交通灯三色联动(2)PWM亮度变化(3)循环点亮(速度变化)(4)场景切换(5)4X4矩阵键盘(6)1602LCD液晶显示六、学习心得····························································七、参考文献····························································八、C语言源程序····························································一、设计题目艺术彩灯控制系统设计二、设计内容1.设计并实现具有复位功能的单片机小系统。
单片机课程设计报告题目:彩灯控制器的设计专业:电气工程及其自动化班级:电气081学号:3080421034学生姓名:廖诗宇指导老师:王水鱼2010年秋季学期起止时间:2011年1月10日至2011年1月14日平时(10%)任务完成(30%)答辩(30%)课设报告(30%)总评成绩彩灯控制器设计一.系统功能及要求分析1)用8盏LED灯实现至四种以上的彩灯灯光效果。
2)通过输入按钮实现彩灯灯光效果的切换。
3)通过输入按钮实现暂停彩灯效果。
在暂停期间小灯全亮。
4)使用定时器实现通过89C51芯片控制LED。
使其显示出四种彩灯效果:自动先从上到下再从下到上。
自动分为从上到下和从上到下。
闪烁,先亮一.三.五.七,再亮二.四.六.八。
交替亮.,暂停时,小灯全亮。
二.方案设计及其说明以AT-89C51单片机作为主要控制器,与按键.显示器等硬件相结合.利用软件实现对LED彩灯进行控制.该系统特点有极小,硬件少,电路结构简单及容易操作等优点。
我们在实验中采用了一种基于AT-89C51单片机的彩灯控制方案。
本方案以AT-89C51单片机作为控制核心,与显示.驱动等模块组成主要控制模块,在主控模块上没有五个按键和8位LED显示器,根据用户需要可以编写若干种亮灯模式。
利用其内部定时器TD实现一个基本时间的定时中断,根据各种亮灯时间的不同需要,在不同的时刻输出灯亮或者灯灭的控制信号,然后驱动各种颜色的灯亮或者灯灭,整个系统龚做由软件控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯的时间和亮灯闪动的频率。
同时通过按键,可以实现工作模式切换的功能。
三.原理线路设计1.)原理线路(见打印图)2)工作原理说明通电后,接通开关1,系统经过初始化,会直接自动进入自动模式,即LED彩灯会自动顺序亮灯,而在自动模式下,用户根据自己需要选择其他手动模式,并且可以改变每种模式下的时间和频率的参数,本实验设定的默认延迟200MS,当开关2接通后会进入手动模式,手动模式下,有两种工作模式,当开关3断开断开时,LED灯会按照从上往下的顺序亮灯,最下方的灯亮后又会回到最上方的灯亮,当开关3接通时,LED灯则会按照从下到上的顺序亮灯。
单片机 彩灯的课程设计一、课程目标知识与理解目标:使学生掌握单片机的基本原理和编程方法,理解彩灯控制电路的工作原理,学会运用单片机控制彩灯的亮灭、闪烁和颜色变换。
通过本课程的学习,学生将能够描述单片机的内部结构,解释彩灯电路的原理,并掌握相关的基础知识。
技能目标:培养学生具备独立设计单片机彩灯控制程序的能力,能够运用所学知识解决实际问题。
具体包括:1)正确连接单片机与彩灯电路;2)编写程序实现彩灯的不同控制效果;3)调试并优化程序,提高彩灯控制的稳定性。
情感态度价值观目标:激发学生对电子科技的兴趣,培养创新意识和团队合作精神。
通过课程实践,使学生体验科技创作的乐趣,增强自信心和成就感,培养良好的学习习惯和探索精神。
针对课程性质、学生特点和教学要求,本课程目标具体、可衡量,旨在使学生在掌握单片机与彩灯控制技术的基础上,提高实际操作能力,培养创新思维和团队协作能力。
课程目标分解为具体学习成果,便于后续教学设计和评估。
二、教学内容依据课程目标,教学内容主要包括以下几部分:1. 单片机基础知识:介绍单片机的内部结构、工作原理、编程语言等,对应教材第二章。
- 单片机内部结构及功能- 汇编语言基础与编程方法2. 彩灯电路设计:讲解彩灯电路的组成、原理和设计方法,对应教材第三章。
- 彩灯电路元件及其功能- 彩灯控制原理及电路设计3. 单片机与彩灯控制编程:教授如何编写程序实现单片机控制彩灯,对应教材第四章。
- 编程控制彩灯亮灭、闪烁- 编程实现彩灯颜色变换4. 实践操作与调试:指导学生进行实际操作,调试程序,优化彩灯控制效果,对应教材第五章。
- 连接单片机与彩灯电路- 编写、调试彩灯控制程序- 优化程序,提高控制稳定性教学内容按照教学大纲安排,确保科学性和系统性。
课程进度合理安排,使学生逐步掌握单片机与彩灯控制相关知识,为后续课程实践打下坚实基础。
三、教学方法为确保教学效果,本章节将采用以下多样化的教学方法:1. 讲授法:教师以讲解、示范为主,系统传授单片机与彩灯控制的相关理论知识。
节日彩灯控制器课程设计报告c语言节日彩灯控制器课程设计报告一、引言随着科技的不断进步,现代人们的生活越来越依赖于电子产品。
而在各种电子产品中,微控制器是其中非常重要的一种。
本次课程设计是基于C语言,利用单片机实现节日彩灯控制器。
二、设计目标本次课程设计的主要目标是通过C语言编写程序,利用单片机实现对彩灯进行控制。
具体地说,需要实现以下功能:1. 彩灯颜色切换:通过按键进行彩灯颜色的切换;2. 彩灯亮度调节:通过按键进行彩灯亮度的调节;3. 彩灯闪烁效果:通过按键实现彩灯闪烁效果。
三、硬件设计本次课程设计所使用的硬件如下:1. 单片机:STC89C52;2. LED彩灯模块;3. 5V直流电源;4. 按键模块。
四、软件设计1. 程序框架本次课程设计采用模块化编程思想,将整个程序分为三个模块:LED 控制模块、按键扫描模块和主函数模块。
其中,LED控制模块主要实现对彩灯的控制;按键扫描模块用于检测按键是否被按下,并将按键状态传递给主函数模块;主函数模块则是整个程序的核心,用于调用其他两个模块的函数,并根据按键状态进行相应的处理。
2. 程序流程(1)LED控制模块LED控制模块主要实现对彩灯颜色、亮度以及闪烁效果的控制。
具体流程如下:a. 初始化:设置P1口为输出口;b. 颜色切换:通过改变P1口输出电平来实现彩灯颜色的切换;c. 亮度调节:通过PWM技术来实现彩灯亮度的调节;d. 闪烁效果:通过定时器中断来实现彩灯闪烁效果。
(2)按键扫描模块按键扫描模块主要用于检测按键是否被按下,并将按键状态传递给主函数模块。
具体流程如下:a. 初始化:设置P3口为输入口;b. 扫描按键状态:循环检测P3口输入电平,如果检测到输入电平为低电平,则说明相应的按键被按下,将按键状态传递给主函数模块。
(3)主函数模块主函数模块是整个程序的核心,用于调用其他两个模块的函数,并根据按键状态进行相应的处理。
具体流程如下:a. 初始化:调用LED控制模块和按键扫描模块的初始化函数;b. 循环执行:循环检测按键状态,根据不同的按键状态调用LED控制模块中相应的函数实现彩灯控制。
单片机音乐彩灯课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握其编程方法。
2. 学习并掌握音乐彩灯电路的设计与制作,理解其工作原理。
3. 了解并掌握音符、节奏与灯光效果之间的关系,能运用单片机进行控制。
技能目标:1. 能够运用所学知识,独立设计并制作出具有音乐节奏控制功能的彩灯。
2. 培养学生的动手实践能力,提高问题解决能力和创新思维。
3. 学会使用相关软件(如Keil、Proteus等)进行单片机程序设计和电路仿真。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学生的学习热情和求知欲。
2. 培养学生的团队协作精神,提高沟通与交流能力。
3. 增强学生的自信心,培养克服困难、勇于创新的品质。
课程性质:本课程为实践性较强的课程,以项目为导向,注重培养学生的动手能力和创新能力。
学生特点:学生具备一定的电子基础知识,对单片机有一定了解,喜欢动手实践。
教学要求:结合学生特点,以学生为主体,教师为主导,采用任务驱动法、分组讨论法等教学策略,引导学生主动探索、实践和思考。
同时,注重个别辅导,关注学生的个体差异,使每位学生都能在原有基础上得到提高。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高综合运用能力。
二、教学内容1. 单片机基础原理回顾:C51单片机的结构、工作原理,I/O口编程,中断系统,定时器/计数器应用。
2. 音乐基础:音符与节奏的基本知识,MIDI音乐文件格式解析,音符与单片机编程的关联。
3. 硬件设计:彩灯电路设计原理,LED灯的驱动方式,电阻、电容的选择与计算,电源管理。
4. 软件编程:使用Keil C编写单片机程序,实现音符播放与彩灯控制,程序调试与优化。
5. 电路仿真:利用Proteus进行电路仿真,验证程序与硬件设计的正确性。
6. 实践制作:分组进行音乐彩灯的设计与制作,包括电路搭建、程序烧写、功能测试。
7. 项目展示:每组展示自己的作品,介绍设计思路、制作过程和解决的关键问题。
单片机的四开关循环彩灯的设计课程设计一、引言在现代电子技术领域中,单片机是一种功能强大且应用广泛的微处理器。
它具有体积小、功耗低、成本低廉等优点,因此被广泛应用于各种电子设备中。
其中,单片机的四开关循环彩灯设计是一项常见且有趣的课程设计项目。
本文将详细介绍该课程设计的步骤和要点。
二、设计目标本次课程设计旨在通过使用单片机和四个开关来实现一个循环彩灯系统。
具体目标如下:1. 使用四个开关控制不同颜色的LED灯的亮灭;2. 实现循环播放不同颜色的灯光效果;3. 设计简洁、易于理解和操作的系统。
三、硬件设计1. 单片机选择根据设计目标,我们可以选择适合该项目的单片机。
常见的单片机有PIC系列、AVR系列等,这里我们选择使用AVR系列的ATmega16单片机。
2. LED灯和电阻为了实现彩灯效果,我们需要准备四个不同颜色(红色、绿色、蓝色和黄色)的LED灯,并且每个LED都需要连接一个合适的电阻以限制电流。
3. 开关我们需要准备四个开关,每个开关对应一个LED灯。
这些开关用于控制LED灯的亮灭。
四、软件设计1. 系统初始化在程序开始时,我们需要初始化单片机的引脚和寄存器。
具体步骤如下:- 设置引脚方向:将LED灯所连接的引脚设置为输出,将开关所连接的引脚设置为输入。
- 设置初始状态:将所有LED灯关闭。
2. 主循环主循环是整个系统的核心部分,它负责读取开关状态并控制LED灯的亮灭。
具体步骤如下:- 读取开关状态:通过读取每个开关所连接引脚的电平来确定其状态(高电平表示按下,低电平表示未按下)。
- 根据开关状态控制LED灯:根据不同的开关状态来控制对应LED 灯的亮灭。
当按下第一个开关时,打开红色LED;当按下第二个开关时,打开绿色LED;以此类推。
- 实现循环播放效果:在每次循环中依次点亮不同颜色的LED灯,并保持一段时间后熄灭。
五、系统测试在完成硬件和软件设计后,我们需要进行系统测试以验证其功能和稳定性。
一、引言随着科技的不断发展,单片机技术已经广泛应用于各个领域。
单片机以其体积小、功耗低、成本低、可靠性高等优点,在电子设计中占有重要地位。
本实训报告主要介绍了单片机彩灯设计的过程,包括硬件设计、软件设计、调试与测试等环节。
二、硬件设计1. 单片机选型本次实训选用AT89C51单片机作为控制核心。
AT89C51是一款经典的51系列单片机,具有丰富的片上资源,包括定时器、串口、中断等,能够满足彩灯设计的需求。
2. 彩灯组件选型根据设计需求,本次实训选用了RGB彩灯作为主要组件。
RGB彩灯具有红、绿、蓝三种颜色,可以组合出多种颜色,满足不同场合的需求。
3. 驱动电路设计由于单片机的IO端口输出电流有限,无法直接驱动RGB彩灯,因此需要设计驱动电路。
驱动电路主要包括LED驱动芯片和电流限流电阻。
4. 控制电路设计控制电路负责接收单片机的控制信号,实现对彩灯的颜色、亮度、闪烁频率等参数的控制。
控制电路主要包括单片机、驱动芯片、按键、电阻等元器件。
三、软件设计1. 软件框架本实训软件采用模块化设计,主要分为以下模块:(1)初始化模块:初始化单片机IO端口、定时器等资源。
(2)彩灯控制模块:根据用户需求,实现彩灯的颜色、亮度、闪烁频率等参数的控制。
(3)按键处理模块:检测按键状态,实现彩灯模式的切换。
(4)定时器中断模块:实现彩灯的定时控制。
2. 软件实现(1)初始化模块初始化模块主要负责设置单片机IO端口为输出模式,初始化定时器等资源。
具体代码如下:```void Init(){P1 = 0xFF; // 设置P1端口为输出模式TMOD = 0x01; // 设置定时器模式TH0 = 0xFC; // 设置定时器初值TL0 = 0x18;ET0 = 1; // 开启定时器0中断EA = 1; // 开启全局中断}```(2)彩灯控制模块彩灯控制模块根据用户需求,实现彩灯的颜色、亮度、闪烁频率等参数的控制。
具体代码如下:```void LightControl(unsigned char color, unsigned char brightness, unsigned char frequency){switch(color){case RED:P1 = 0x01 << brightness; // 设置红灯亮度break;case GREEN:P1 = 0x02 << brightness; // 设置绿灯亮度break;case BLUE:P1 = 0x04 << brightness; // 设置蓝灯亮度break;case WHITE:P1 = (0x01 << brightness) | (0x02 << brightness) | (0x04 << brightness); // 设置白灯亮度break;}delay(frequency); // 设置彩灯闪烁频率}```(3)按键处理模块按键处理模块负责检测按键状态,实现彩灯模式的切换。
电气信息学院单片机技术课程设计报告课题名称彩灯控制器的设计专业班级 09电气01班学号 0903120222 学生姓名严娟指导教师易先军评分2012年6月12日至6月19日课程设计量化评分标准指导老师评语:答辩记录1、例举设计过程中遇到的问题及其解决方法(至少两例)。
答:(1)问题说明:解决方法:(2)问题说明:解决方法:2、教师现场提的问题记录在此(不少于2个问题)。
答:摘要本文介绍了一种简易LED彩灯控制系统的软硬件设计过程,本方案以AT89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
利用软件编程烧录程序到单片机来实现对LED 彩灯进行控制,本系统亮灯模式多,用户根据操作提示可以随意变换想要的闪烁方式和控制彩灯的闪烁频率,还可以全自动运行。
系统利用汇编语言开发,并在软硬件设计中分别使用了Proteus 、keilC51开发平台。
本系统具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
关键词:单片机;LED彩灯;汇编语言;Proteus;keilC51;目录第1章设计任务 (1)第2章设计方案 (2)2.1设计方案 (2)2.2方案选择 (3)第3章硬件设计 (4)3.1直流稳压电源电路 (4)3.2单片机最小系统 (4)3.3LED彩灯显示电路 (5)3.4按键控制电路 (6)第4章软件设计 (8)4.1主程序设计 (8)4.2自动模式程序设计 (9)4.3延时程序设计 (10)4.3中断子程序设计 (10)第5章仿真与性能分析 (11)5.1 系统仿真过程 (11)5.2 仿真结果与分析 (12)第6章设计小结 (15)参考文献 (16)附录1LED彩灯控制系统仿真电路图 (17)附录2LED彩灯彩灯控制程序代码 (18)第1章设计任务当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机彩灯控制器课程设计1. 课程设计背景单片机作为一种集成了微处理器、存储器和输入输出功能的微型计算机,广泛应用于各种电子设备中。
彩灯控制器是一种基于单片机的电子设备,可以通过控制单片机的输出口来实现对彩灯的控制。
本课程设计旨在通过学习和实践,使学生掌握单片机的基本原理和彩灯控制器的设计方法。
2. 课程设计目标通过本课程设计,学生将达到以下目标:•理解单片机的基本原理和工作方式;•掌握单片机编程语言及开发环境;•学习使用单片机的输入输出功能;•熟悉彩灯控制器的硬件电路设计;•能够独立完成一个简单的彩灯控制器的设计与实现。
3. 课程设计内容3.1 单片机基础知识•单片机原理及分类•单片机开发环境搭建•单片机编程语言介绍3.2 单片机输入输出功能•数字输入输出口配置及使用•模拟输入输出口配置及使用•中断输入输出口配置及使用3.3 彩灯控制器硬件设计•彩灯控制器电路原理图设计•电路元器件选型与参数计算•PCB布局设计3.4 彩灯控制器软件设计•硬件连接与测试•单片机程序设计思路•程序代码编写与调试4. 课程设计步骤4.1 单片机基础知识学习通过教师讲解、实验演示和学生自主学习,学习单片机的基本原理、分类以及开发环境的搭建。
学习单片机编程语言,如C语言或汇编语言。
4.2 单片机输入输出功能实践在掌握了单片机的基础知识后,通过实验进行单片机输入输出功能的实践。
包括数字输入输出口、模拟输入输出口和中断输入输出口的配置和使用。
4.3 彩灯控制器硬件设计在完成了单片机输入输出功能的实践后,开始进行彩灯控制器的硬件设计。
根据彩灯控制器的功能需求,设计电路原理图,并选型合适的电路元器件。
根据原理图设计PCB布局,并进行电路连接与测试。
4.4 彩灯控制器软件设计在完成了彩灯控制器的硬件设计后,开始进行软件设计。
根据硬件连接与测试的结果,设计单片机程序的思路,并编写程序代码。
通过调试和测试,确保彩灯控制器能够正常工作。
单片机 彩灯的课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解彩灯控制电路的组成及工作原理。
2. 使学生了解并掌握单片机编程的基本方法,能编写简单的控制程序。
3. 让学生了解彩灯电路中常用的电子元件,如电阻、电容、二极管等,并理解它们在电路中的作用。
技能目标:1. 培养学生动手实践能力,能够独立完成单片机彩灯电路的搭建与调试。
2. 提高学生编程能力,能够根据实际需求编写控制彩灯的程序。
3. 培养学生分析问题、解决问题的能力,能够针对彩灯电路的故障进行排查和修复。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其探索精神。
2. 培养学生团队合作意识,学会与他人共同解决问题。
3. 培养学生爱护电子设备,养成良好的实验操作习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握单片机彩灯控制技术。
学生特点:学生具备一定的物理和数学基础,对电子技术有一定了解,但对单片机编程和控制电路的实践操作相对陌生。
教学要求:教师需结合学生实际情况,采用启发式教学,引导学生主动探索,注重培养学生的实践操作能力和问题解决能力。
在教学过程中,关注学生的个体差异,给予个别辅导,确保每个学生都能达到课程目标。
通过分解课程目标为具体学习成果,便于教学设计和评估。
二、教学内容1. 单片机基本原理:介绍单片机的结构、工作原理,重点讲解CPU、内存、I/O口等组成部分及其功能。
教材章节:第二章 单片机原理与接口技术2. 彩灯控制电路:讲解彩灯电路的组成,包括单片机、驱动电路、LED灯等,分析电路工作原理。
教材章节:第三章 常用电子元件及应用3. 编程语言:介绍单片机编程的基本语法和编程方法,以C语言为例,讲解彩灯控制程序的编写。
教材章节:第四章 单片机C语言编程4. 实践操作:指导学生进行彩灯电路的搭建、调试及编程,培养学生动手实践能力。
教材章节:第五章 单片机实践操作5. 故障排查与修复:分析彩灯电路可能出现的故障,教授学生排查及修复方法。
一、系统设计本设计以STC89C52单片机为核心,用独立键盘控制模式的选择,STC89C52单片机接收到键盘信号后控制发光二极管以不同的模式闪烁的实验装置,用STC89C52单片机控制8个发光二极管发光,实现亮点的循环移动。
通过Protel软件设计,布线排版,手工制版,并能掌握通过软件控制发光二极管的思路和技巧。
这次设计重点就在于利用单片机的知识去控制系统的运行,图1-1为整体方案设计框图。
图1-1 总体方框图1.设计要求:a.上电复位。
b.上电后数码管消隐,LED灯全灭。
c.当按下第一个按键后数码管显示1第二个按键显示2以此类推。
d.每个按键控制不同的闪烁模式。
e.数码管显示有保持功能。
二、方案设计本设计总体设计思路为:以STC89C52单片机为核心,用独立键盘作STC89C52单片机的信号输入,STC89C52单片机接收到键盘信号后经单片机内部软件处理后将数据输出至P1口和P0口,使8发光二极管以不同的模式闪烁,并由七段数码管显示其闪烁模式编号。
在课程设计中通过Protel软件设计原理图,布线排版,用万能版(单孔)手工焊接制作出实物。
1.方案论证方案一:采用汇编语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阴极接法,七段数码管采用共阳极的。
软件采用Kell编辑的汇编语言程序,并烧写至STC89C52单片机。
图2-1为方案一方框图图2-1 方案一方框图方案二:采用C语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阳极接法,七段数码管采用共阴极的。
1、引言随着人们生活环境地不断改善和美化,在许多场合可以看到彩色霓虹灯. LED 彩灯由于其丰富地灯光色彩,低廉地造价以及控制简单等特点而得到了广泛地应用,用彩灯来装饰已经成为一种时尚.但目前市场上各式样地LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定地模式闪亮,不能根据不同场合、不同时间段地需要来调节亮灯时间、模式、闪烁频率等动态参数.这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点.此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果.因此有必要对现有地彩灯控制器进行改进. 事实上单片机是世界上数量最多地计算机.现代人类生活中所用地几乎每件电子和机械产品中都会集成有单片机.手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2 部单片机.而个人电脑中也会有为数不少地单片机在工作.汽车上一般配备 40 多部单片机,复杂地工业控制系统上甚至可能有数百台单片机在同时工作!单片机地数量不仅远超过 PC 机和其他计算地总和,甚至比人类地数量还要多.课程设计是学完一门课后应用本课知识及以前地知识积累而进行地综合性、开放性地训练,是培养学生工程意识和创新能力地重要环节. 进一步巩固和加深“单片机”课程地基本知识,了解单片机设计知识在实际中地应用.综合运用“单片机”课程和先修课程地理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计地训练.学习单片机设计电路地一般方法,了解和掌握单片机电路地设计过程和进行方式,培养正确地设计思想和分析问题、解决问题地能力,特别是总体电路设计能力.通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计地基本技能. 该程序示例了单片机键盘控制 p1 口流水灯花样地方法。
具体表现为:p3.2 3.2 3.4 3.5 四个小本文提出了一种基于 AT89S51 单片机地彩灯控制方案,实现对LED 彩灯地控制.按键,分别实现了四个控制.通过这次实验,我们也了解了团队合作地重要性,集体地力量是伟大地,一个人如何融入一个团队是是一个重要问题,讲究合作才能取得最后地成功!2、设计原理、2.1 MCS511 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD RXD P3.0 TXD P3.1 INT0 P3.2 INT1 P3.3 T0 P3.4 T1 P3.5 WR P3.6 RD P3.7 XTAL2 XTAL1 VSS VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP ALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21单片机引脚说明MCS 单片机都采用40 引脚地双列直插封装方式.图2-9 为引脚排列图, 40 条引脚说明如下: 1、主电源引脚 Vss 和 Vcc ① Vss 接地② Vcc 正常操作时为+5 伏电源 2、外接晶振引脚 XTAL1 和 XTAL2 ① XTAL1 内部振荡电路反相放大器地输入端,是外接晶体地一个引脚.当采用外部振荡器时,此引脚接地. ② XTAL2 内部振荡电路反相放大器地输出端.是外接晶体地另一端.当采用外部振荡器时,此引脚接外部振荡源. 3、控制或与其它电源复用引脚RST/VPD,ALE/ PROG , PSEN 和 EA /Vpp ① RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期地高电平(由低到高跳变) ,将使单片机复位在 Vcc 掉电期间,此引脚可接图 2-9 8051 引脚排列图上备用电源,由VPD 向内部提供备用电源,以保持内部RAM 中地数据. ②ALE/ PROG 正常操作时为 ALE 功能(允许地址锁存)提供把地址地8031 8051 87511 )周期性地 6 发出正脉冲信号. 因此, 它可用作对外输出地时钟, 或用于定时目地. 但要注意, 每当访问外部数据存储器时,将跳过一个 ALE 脉冲,ALE 端可以驱动(吸收或输出电流)八个 LSTTL 电路. 对于 EPROM 型单片机,在 EPROM 编程期间,此引低字节锁存到外部锁存器,ALE 引脚以不变地频率(振荡器频率地脚接收编程脉冲( PROG 功能)③ PSEN 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, PSEN 在每个机器周期内两次有效. PSEN 同样可以驱动八LSTTL 输入. ④ EA /Vpp 、EA /Vpp 为内部程序存储器和外部程序存储器选择端.当EA /Vpp 为高电平时,访问内部程序存储器,当 EA /Vpp 为低电平时,则访问外部程序存储器. 对于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21 伏 EPROM 编程电源(Vpp) . 4、输入/输出引脚 P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7. ① P0 口(P0.0 - P0.7)是一个8 位漏极开路型双向I/O 口,在访问外部存储器时,它是分时传送地低字节地址和数据总线,P0 口能以吸收电流地方式驱动八个LSTTL 负载. ②P1 口(P1.0 - P1.7)是一个带有内部提升电阻地8 位准双向I/O 口. 能驱动(吸收或输出电流)四个LSTTL 负载. . ③ P2 口(P2.0 - P2.7)是一个带有内部提升电阻地 8 位准双向 I/O 口, 在访问外部存储器时,它输出高 8 位地址.P2 口可以驱动(吸收或输出电流)四个 LSTTL 负载.④ P3 口(P3.0 - P3.7)是一个带有内部提升电阻地 8 位准双向 I/O 口.能驱动(吸收或输出电流)四个 LSTTL 负载2.2 LED 显示数码管LED 有共阴极和共阳极两种.如图所示.二极管地阴极连接在一起,通常此公共阴极接地, 而共阳极则将发光二极管地阳极连接在一起, 接入+5V 地电压. 一位显示器由8 个发光二极管组成,其中 7 个发光二极管构成字型“8”地各个笔划(段)a~g,另一个小数点为 dp 发光二极管.当在某段发光二极管施加一定地正向电压时,该段笔划即亮;不加电压则暗.为了保护各段LED 不被损坏, 需外加限流电阻 .数码管结构原理图: LED 数码管结构原理图共阳极AT89C2051 芯片地 20 个引脚功能为: VCC GND RST XTAL1 XTAL2 P1 口电源电压. 接地. 复位输入.当 RST 变为高电平并保持 2 个机器周期时,所有 I/O 引脚反向振荡放大器地输入及内部时钟工作电路地输入. 来自反向振荡放大器地输出. 8 位双向 I/O 口.引脚 P1.2~P1.7 提供内部上拉,当作为输入并被复位至“1” .外部下拉为低电平时,它们将输出电流,这是因内部上拉地缘故.P1.0 和P1.1 需要外部上拉,可用作片内精确模拟比较器地正向输入(AIN0)和反向输入(AIN1),P1 口输出缓冲器能接收 20mA 电流,并能直接驱动 LED 显示器;P1 口引脚写入“1” 后,可用作输入.在闪速编程与编程校验期间,P1 口也可接收编码数据. P3 口引脚 P3.0~P3.5 与 P3.7 为 7 个带内部上拉地双向 I/0 引脚.P3.6 在内部已与片内比较器输出相连,不能作为通用 I/O 引脚访问.P3 口地输出缓冲器能接收20mA 地灌电流;P3 口写入“1”后,内部上拉,可用输入.P3 口也可用作特殊功能口. 中断指令. 2.3 中断指令在 CPU 和外设交换信息时,存在着快速 CPU 和慢速外设间地矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术. CPU 和外设并行工作, 当外设数据准备好( 或有某种突发事件发生)时向CPU 提出请求,CPU 暂停正在执行地程序转而为该外设服务(或处理紧急事件),处理完毕再回到原断点继续执行原程序. 中断优先级:当有多个中断源同时向CPU 申请中断时,CPU 优先响应最需紧急处理地中断请求,处理完毕再响应优先级别较低地,这种预先安排地响应次序. 中断地嵌套:在中断系统中,高优先级地中断请求能中断正在进行地较低级地中断源处理, (1)中断技术是实时控制中地常用技术,51 系列单片机有三个内部中断,二个外部中断.所谓外部中断就是在外部引脚上有产生中断所需要地信号. 每个中断源有固定地中断服务程序地入口地址(称矢量地址或向量地址).当CPU 响应中断以后单片机内部硬件保证它能自动地跳转到该地址.因此,此地址是应该熟记地,在汇编程序中,中断服务程序应存放在正确地向量地址内. (或存放一条转移指令);而在 C 语言中是靠 Interrupt n 地关键字 n 自动设置地. (2)单片机地中断是靠内部地寄存器管理地,这就是中断允许寄存器 IE,中断优先权寄存器 IP ,必须在 CPU 开中断即开全局中断开关 EA,开各中断源地中断开关,CPU 才能响应该中断源地中断请求,其中缺一不可. (3)从程序表面看来,主程序和中断服务程序好象是没有关连地,只有掌握中断响应地过程, 才能理解中断地发生和返回,看得懂中断程序,并能编写高质量中断程序.表 2.1 常用中断符号名称外部中断 0 中断引起原因 P3.2 引脚地低电平或下降沿信号中断服务程序入口INT00003HINT1外部中断 1P3.3 引脚地低电平或下降沿信号0013HT0 T1 T2定时器 0 中断定时器 1 中断定时器 2 中断定时计数器 0 计数回零溢出定时计数器 1 计数回零溢出定时计数器 2 中断(TF2 或 T2EX 信号)000BH 001BH 002BHTI/RI串行口中断串行通信完成一帧数据发送或接收引起中断0023H3、硬件原理图、晶振(12MHz)定时 1 秒,对于12MHz 地晶振而言,其时钟周期T=1/f=1/12us,而89C51 地一个机器周期包括12 个时钟周期, 所以一个机器周期为1us,对于T0 而言,使之工作于 16-bit,最大计时为 65536*1=65536us,需要多次定时才能实现一秒定时.vcc+5vC 230nFR 1270D 1 X1CRY AL ST LED-R D EC 1 U 119 XT AL1 30nF P0.0/AD 0 P0.1/AD 1 P0.2/AD 2 P0.3/AD 3 P0.4/AD 4 P0.5/AD 5 P0.6/AD 6 P0.7/AD 7 P2.0/A 8 P2.1/A 9 P2.2/A 10 P2.3/A 11 P2.4/A 12 P2.5/A 13 P2.6/A 14 P2.7/A 15 P3.0/R XD P3.1/T XD P3.2/IN 0 T P3.3/IN 1 T P3.4/T 0 P3.5/T 1 P3.6/W R P3.7/R D 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17R 2270D 2VC C+5V LED-R D ER 3270D 3LED-R D E18XT AL2C 39 R ST 1nFR 4270D 4LED-R D ER 910kR 5270D 5LED-R D E29 30 31PSE N ALE E AR 6270D 6LED-R D E1 2 3 4 5 6 7 8P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT 89C51 SR CFILE=1.A M S PR G O RAM E =1.H XR 7270D 7LED-R D ER 8270D 8LED-R D ER10 R11 R12 R1310k 10k 10k 10kvcc+5v4、软件设计、4.1 流程图初始化NINT1按下?有键按下?YINT0按下?INT1按下?T0按下?T1按下?NY流水灯NY逐点点亮NY间隔点亮动点亮NY逐点熄灭4.2 源程序ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI CLEAR: RET。
一、系统设计本设计以STC89C52单片机为核心,用独立键盘控制模式的选择,STC89C52单片机接收到键盘信号后控制发光二极管以不同的模式闪烁的实验装置,用STC89C52单片机控制8个发光二极管发光,实现亮点的循环移动。
通过Protel软件设计,布线排版,手工制版,并能掌握通过软件控制发光二极管的思路和技巧。
这次设计重点就在于利用单片机的知识去控制系统的运行,图1-1为整体方案设计框图。
图1-1 总体方框图1.设计要求:a.上电复位。
b.上电后数码管消隐,LED灯全灭。
c.当按下第一个按键后数码管显示1第二个按键显示2以此类推。
d.每个按键控制不同的闪烁模式。
e.数码管显示有保持功能。
二、方案设计本设计总体设计思路为:以STC89C52单片机为核心,用独立键盘作STC89C52单片机的信号输入,STC89C52单片机接收到键盘信号后经单片机内部软件处理后将数据输出至P1口和P0口,使8发光二极管以不同的模式闪烁,并由七段数码管显示其闪烁模式编号。
在课程设计中通过Protel软件设计原理图,布线排版,用万能版(单孔)手工焊接制作出实物。
1.方案论证方案一:采用汇编语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阴极接法,七段数码管采用共阳极的。
软件采用Kell编辑的汇编语言程序,并烧写至STC89C52单片机。
图2-1为方案一方框图图2-1 方案一方框图方案二:采用C语言编程的软件的STC89C52单片机系统。
本方案设计的核心为STC89C52单片机系统,包括硬件和软件,硬件采用四位独立键盘做信号输入,STC89C52单片机进行信号处理并输出,显示部分为八个发光二级管和七段数码管,八个发光二极管采用共阳极接法,七段数码管采用共阴极的。
软件采用Kell编辑的C语言程序,并烧写至STC89C52单片机。
图2-2为方案二方框图。
图2-2方案二方框图2.方案比较由于方案一软件部分采用的汇编语言编程较为复杂,其对STC89C52单片机硬件匹配度较高,所以其移植性也差,同时对于我来说汇编语言并不太熟练。
又由于方案一八个发光二极管采用的是共阴极,七段数码管采用的是共阳极,这对编辑程序带来很大的麻烦。
而方案二软件部分采用的是C语言编程,其对STC89C52单片机硬件匹配度较小,所以其移植性也好,同时对于我来说C语言比汇编语言更加熟练。
又由于方案二八个发光二极管采用的是共阳极,七段数码管采用的是共阴极,这对编辑程序带来很大的方便。
综上述,采用方案二更为适合。
三、系统模块设计1.四位独立键盘键盘为本系统的唯一信号源,由于键盘为四位,只需要四个按键即可,而STC89C52单片机有24个I/O口,故四位键盘采用独立式键盘电路,按键采用4X4按键。
当按键按下时,电路接通电源负极,此时想STC89C52单片机输入一个低电平,当按键没有按下时此时电路处于悬空状态。
图3-1为四位键盘电路图。
图3-1 四位独立键盘电路2.数字显示模块7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。
发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管。
共阴极共阳极图3-2 7段数码管结构图发光二极管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。
当其内部有一一电流通过时,它就会发光。
7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5~10mA;正向电压随发光材料不同表现为1.8~2.5V不等。
7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。
(1)静态显示所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这种显示方法为每一们都需要有一个8位输出口控制。
对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。
(2)动态显示所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)由于本设计只需一个数码管即可显示模式编号,所以本设计显示模块采用静态显示,七段数码管阴极直接与电源负极相连,段选数据(即七个阳极)与STC89C52单片机P0口连接。
此设计方法电路简单,也便于软件部分的设计。
图3-3为显示模块电路。
图3-3 显示模块电路3.八位LED电路八位LED电路由八个红色发光二极管组成,采用共阳极的接法,在发光二极管与电源之间接入1千欧姆的限流电阻以限制流过发光二极管的电流,防止其流过电流过大烧毁发光二极。
红色管发光二极管的压降约为1.5—2.2V,正常发光时的工作电流约为3--10mA。
所以限流电阻的组织为:R=VR /IdV R =V-VD其中VD 取2V, Id取3mA。
V R =V-VD=5-2=3VR=VR /Id=3/0.003=1000所以限流电阻取1K,图3-4为八位LED电路。
图3-4 八位LED电路4、STC89C52单片机STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL 搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
1.时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图4—10(a) 所示,在RXD 和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图3-5(b)所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
(a)内部方式时钟电路(b)外部方式时钟电路图3-5时钟电路2.复位及复位电路RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4—4(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4—4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
由于本设计单片机系统使用12M晶振,所以本设计的复位电路采用图3-6上电复位方式。
图3-6 复位电路STC89C52具体介绍如下:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7 P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7 P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7 STC89C52主要功能如表二所示。
表一 STC89C52主要功能主要功能特性四、软件设计本设计单片机系统的软件采用模块化设计,由主程序、查表子程序和延时子程序组成。
各程序模块的流程图如图4-1所示:主程序处于循环工作状态,主要完成各种模式闪烁花样灯,并用静态显示方式送到数码管显示模式编号。
图4-1为软件程序流程图。
图4-1 软件程序流程图五、参考文献郭天祥:《新概念51单片机C语言教程》唐方红饶欲:《单片机原理与接口及顺》附录1:软件程序#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charvoid delayms(uint);sbit key0=P2^0;sbit key1=P2^1;sbit key2=P2^2;sbit key3=P2^3;uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main(){P0=0;while(1){if(key0==0){delayms(10);if(key0==0){uchar i;P0=table[1];i=5;while(i!=0){P1=0x00;delayms(300);P1=0xff;delayms(300);i--;}i=5;while(i!=0){P1=0xf0;delayms(300);P1=0x0f;delayms(300);i--;}while(!key0);}P1=0xff;}if(key1==0){delayms(10);if(key1==0){uchar i;P0=table[2];i=5;while(i!=0){P1=0xaa;delayms(300);P1=0x55;delayms(300);i--;}i=3;while(i!=0){uchar j;for(j=3;j>0;j--){P1=0xaa;delayms(300);P1=0xff;delayms(300);}for(j=3;j>0;j--){P1=0x55;delayms(300);P1=0xff;delayms(300);}i--;}while(!key1);}P1=0xff;}if(key2==0){delayms(10);if(key2==0){uchar aa,i,j;P0=table[3];aa=0xfe;i=5;while(i!=0){for(j=7;j>0;j--){P1=aa;delayms(100);aa=_crol_(aa,1);}for(j=7;j>0;j--){P1=aa;delayms(100);aa=_cror_(aa,1);}i--;}P1=0xfe;delayms(100);while(!key2);}P1=0xff;}if(key3==0){delayms(10);if(key3==0){uchar a,b,i,j;P0=table[4];a=0xfe;b=0x7f;i=4;while(i!=0){for(j=8;j>0;j--){P1=a&b;delayms(100);a=_crol_(a,1);b=_cror_(b,1);}i--;}i=3;while(i!=0){a=0xfe;for(j=8;j>0;j--){P1=a;delayms(200);a=a<<1;}a=0x7f;for(j=8;j>0;j--){P1=a;delayms(200);a=a>>1;}i--;}while(!key3);}P1=0xff;}}}void delayms(uint xms){uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}附录2:电路总图。