单片机的彩灯课程设计报告

合集下载

单片机课程设计简易节日彩灯

单片机课程设计简易节日彩灯

单片机课程设计——节日彩灯一、需求分析: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单片机彩灯课程设计

51单片机彩灯课程设计

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语言节日彩灯控制器课程设计报告一、引言随着科技的不断进步,现代人们的生活越来越依赖于电子产品。

而在各种电子产品中,微控制器是其中非常重要的一种。

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

一、系统设计本设计以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:电路总图。

相关文档
最新文档