单片机闪烁灯跑马灯控制课程设计
单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。
我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。
二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。
硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。
2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。
3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。
三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。
按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。
单片机课程设计--跑马灯设计

单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器)(FPEROM—Flash Programmable and Erasable Read Only Memory 的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用A T89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
时继续,并要求有多种亮暗组合。
按键跑马灯 按键单片机 跑马灯关键词:A T89C51单片机目录摘要 (I)第一章芯片分析和设计概述 (3)第一节 AT89C51芯片分析 (3)第一节第二节 设计概述 (8)第二节第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章 芯片分析和设计概述第一节 AT89C51芯片分析ATMEL 的AT89S51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
且价廉的方案。
AT89C51AT89C51的芯片引脚图如下:的芯片引脚图如下:图1.1 AT89C51引脚图引脚图各引脚的说明和功能分析如下:各引脚的说明和功能分析如下:VCC VCC:供电电压。
:供电电压。
:供电电压。
GND GND:接地。
:接地。
:接地。
P0口:口:P0P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
时,被定义为高阻输入。
P0P0能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。
单片机课程设计报告跑马灯

单片机课程设计报告跑马灯武汉纺织大学单片机课程设计报告设计课题:跑马灯指导教师:刘丰姓名:颜珊曹坤班级:应电092一、设计任务利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为0.2S并循环闪烁的跑马灯.二、设计要求(1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。
(2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。
(3)供电采用USB方口的方式。
三、方案设计与论证跑马灯电路的组成方框图为:四,主要元件介绍(1)单片机STC89C52引脚介绍stc89c52的内核和AT51系列单片机一样,故引脚也相同:1~8:I/OP1口(P1.0~P1.7);9:复位脚(RST/Vpd);10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss);21~28:I/OP2口(P2.0~P2.7);29:-PSEN;30:ALE/-PROG;31:-EA/Vpp32~39:I/OP0口(P0.7~P0.0);40:+5V电源。
注:引脚功能前加“-”,说明其是低电平有效。
如P3.2=-INT0。
(2)MAX232介绍MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、1 3、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、1 4脚(T1OUT)为第一数据通道8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2 OUT)为第二数据通道。
单片机闪烁灯课程设计

单片机闪烁灯课程设计一、课程目标知识目标:1. 学生能理解单片机的基本结构和工作原理;2. 学生能掌握单片机编程的基本语法和指令;3. 学生能了解闪烁灯电路的设计原理和实现方法。
技能目标:1. 学生能够独立完成单片机闪烁灯电路的搭建;2. 学生能够编写并调试单片机程序,实现闪烁灯的控制;3. 学生能够运用所学知识解决实际问题,具备一定的创新能力和动手操作能力。
情感态度价值观目标:1. 学生通过学习单片机闪烁灯课程,培养对电子技术的兴趣和热情;2. 学生在团队协作中,学会沟通、分享和合作,增强团队意识;3. 学生能够认识到科技发展对社会进步的重要性,树立正确的价值观。
课程性质:本课程为实践性课程,注重理论知识与实践操作相结合。
学生特点:学生具备一定的电子技术基础和编程能力,对单片机有一定了解。
教学要求:教师应关注学生的个体差异,因材施教,引导学生主动参与,培养其创新精神和实践能力。
在教学过程中,注重理论与实践相结合,提高学生的动手操作能力和问题解决能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,引导学生了解单片机的基本功能和应用领域。
- 教材章节:第一章单片机概述- 内容:单片机结构、原理、发展历程及常见型号。
2. 编程语言与指令:讲解单片机编程所需的基础知识,包括语法、指令等。
- 教材章节:第二章单片机编程基础- 内容:编程语言、数据类型、运算符、控制语句、函数等。
3. 闪烁灯电路设计:介绍闪烁灯电路的原理和实现方法,指导学生进行电路搭建。
- 教材章节:第三章单片机接口技术- 内容:I/O口编程、电路设计原理、元器件选型等。
4. 程序编写与调试:教授编写单片机程序的方法,指导学生进行程序调试,实现闪烁灯控制。
- 教材章节:第四章单片机程序设计与调试- 内容:程序结构、编程技巧、调试方法等。
5. 实践操作与创新能力培养:通过实际操作,培养学生动手能力和创新能力。
单片机花样走马灯课程设计

花样走马灯一设计目的1.掌握单片机系统设计思路和基本步骤。
2.熟悉Keil C51高级语言集成开发环境。
3.熟练使用基于proteus的单片机系统仿真软件。
4.学会在ISIS 7 Professional下绘制电路原理图。
5.学会 Proteus VSM与uvision3 IDE的联调过程。
二设计要求实现单片机8051设计控制P1口的8个LED灯成花样走马灯。
连续实现以下四种效果:1.单灯左移2.单灯右移3.单灯逐个点亮接着逐个熄灭4.两边向中间逐个点亮接着中间向两边逐个熄灭三总体设计单片机应用系统的研制步骤一般分为:总体设计、硬件电路的构思设计、软件的编制和仿真调试四个阶段。
1.硬件电路设计根据设计要求所需的元器件为AT89C51单片机和LED灯。
该硬件部分由朱艳兵完成,故不再做详细介绍。
2.系统软件分析设计原理:规定灯亮时控制该灯的位设置为低电平,灯灭时该位设置为高电平,为了清楚的看到灯亮时的效果,要设置相应的延时函数,通过数组的引用和函数的调用来实现花样走马灯的设计。
(1)要使走马灯实现单灯左移、单灯右移、单灯逐个点亮接着逐个熄灭、两边向中间逐个点亮接着中间向两边逐个熄灭这四种效果。
(2)可根据上述的规定来设置控制8个LED灯的P1口各个引脚的电平来控制LED灯亮的效果。
①单灯左移:可将P1.0~P1.7各个引脚逐个设置为低电平,即该引脚控制的灯亮时该位就为低电平,即可设置一个数组名为table的数组来存放灯亮时的P1口各个引脚的电平。
②单灯右移:即P1.7先亮,按照P1.7~P1.0的顺序向右移,即该灯亮的时候该位就设置为低电平,反之为高电平,各引脚的电平在数组aa中存放,引用数组aa就可实现单灯右移。
③单灯逐个点亮接着逐个熄灭:可按照P1.0~P1.7的顺序点亮再按照P1.7~P1.0的顺序熄灭,实现原理同单灯左移和单灯右移,各个引脚的电平在数组bb,cc中存放。
④两边向中间逐个点亮接着中间向两边逐个熄灭:即先将P1.0和P1.7同时设置为低电平,全部点亮后再将P1.3和P1.4设置为高电平,依次直至全部熄灭,各个引脚的电平在数组dd中存放。
单片机跑马灯课程设计

第一章概论随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
本产品不仅具有电路简单,造价便宜,功耗低等优点,还有多种亮灯花样。
而且可以通过修改源程序中延迟程序的参数来改变亮灯速度和频率,还可以通过修改表中的数据来改变亮灯的方式,这便大大提高了产品的性能与灵活性,使产品不会局限于单一的功能而限制产品的适用范围。
课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。
进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。
综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。
学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。
通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。
第二章设计方案2.1、设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
2.2、设计要求以MCS51单片机为核心,辅以外围接口电路,设计一个花样LED闪烁彩灯,使彩灯按事先编好的流程不断闪烁,并有不同种闪烁花样。
LED灯管可以使用共阳极,单片机芯片可采用AT89C52。
61单片机课程设计可以调控的跑马灯

61-单片机课程设计-可以调控的跑马灯1000字设计目的本课程设计旨在通过单片机编程实现一个可调控的跑马灯,加深学生对单片机概念、程序设计、输入输出等方面的理解,提高学生的程序设计能力。
设计实验材料1. 基于8051单片机的电路板2. LED灯3. 电阻器4. 按钮5. 电源(可使用9V电池或其他稳定的直流电源)实验过程1. 搭建基于8051单片机的电路板,连接LED灯和电阻器2. 编写跑马灯程序,其中需要实现以下功能:(1)通过按下按钮,控制灯的亮灭(2)通过另一个按钮,调整灯的亮度(3)通过另一个按钮,调整灯的闪烁频率3. 烧录程序到单片机中4. 连接电源,测试跑马灯的各项功能程序设计本跑马灯程序采用C语言编写,主要实现以下几个功能:1. 初始化LED灯、按键和定时器等相关IO口2. 判断按键被按下,执行相应的操作3. 调整LED灯的亮灭状态,并通过调整亮度和闪烁频率实现可调控功能程序流程:1. 初始化相关IO口和定时器2. 进入主循环3. 判断按钮是否被按下4. 若开始按钮被按下,则设置灯的状态为ON5. 若结束按钮被按下,则设置灯的状态为OFF6. 若调整亮度按钮被按下,则调整PWM占空比,实现亮度调整7. 若调整闪烁频率按钮被按下,则调整定时器的周期,实现闪烁频率调整8. 延时一段时间9. 回到主循环程序代码:```#include <reg52.h>#define LED P1 // LED灯#define PWM P2 // 调整亮度sbit startButton = P3^0; // 开始按钮sbit endButton = P3^1; // 结束按钮sbit pwmButton = P3^2; // 调整亮度按钮sbit freqButton = P3^3; // 调整闪烁频率按钮void timer0_init() // 初始化定时器{TMOD = 0x01;TH0 = 0x3C;TL0 = 0xB0;TR0 = 1;}void pwm_init() // 初始化PWM {TMOD |= 0x02;TL1 = 0x00;TH1 = 0xFD;ET1 = 0;TR1 = 1;}void main(){unsigned long cnt = 0;unsigned char pwm_value = 0; LED = 0x00;PWM = 0x00;timer0_init();pwm_init();while (1){if (startButton == 0){LED = 0x01;}else if (endButton == 0){LED = 0x00;}else if (pwmButton == 0){pwm_value++;if (pwm_value >= 255){pwm_value = 0;}CCAP0H = pwm_value;}else if (freqButton == 0){cnt++;if (cnt >= 1000){cnt = 0;}TH0 = (65536 - 1000) / 256; TL0 = (65536 - 1000) % 256; }while (TF0 == 0); // 等待定时器 TF0 = 0;}}```实验结果将程序烧录到单片机后,连接电源,按下不同的按钮,可调控跑马灯的亮度和闪烁频率。
单片机闪烁灯跑马灯控制课程设计

闪烁灯跑马灯控制系统河南工院第1章概述 (3)1.1设计的目的及意义 (3)1.2单片机的概述与应用 (3)第2章设计原理 (4)2.1设计要求与基本思路 (4)2.2设计方案选择 (5)2.3设计框图 (5)第3章硬件电路设计 (7)3.1时钟电路 (7)3.2扩展电路 (8)第4章程序设计 (9)4.1 程序设计思路与流程图 (9)4.2程序清单与代码 (11)4.3程序调试 (12)第5章原件明细表 (13)总结 (14)参考文献 (15)第1章概论1.1设计的目的与意义当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。
作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。
闪烁灯控制系统是利用8051单片机的P1控制的8个发光二极管。
可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1秒,如此循环,紧急情况下,控制P3.1进行报警2S停止。
闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础1.2单片机概述与应用单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
闪烁灯跑马灯控制系统河南工院第1 章概述1.1设计的目的及意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..31.2单片机的概述与应用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..3第2 章设计原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯42.1设计要求与基本思路⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯42.2设计方案选择⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52.3设计框图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5第3 章硬件电路设计⋯⋯⋯⋯⋯⋯⋯.. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯73.1时钟电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.73.2扩展电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..8第4 章程序设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯94.1程序设计思路与流程图⋯⋯..⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ (9)4.2程序清单与代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯..⋯114.3程序调试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.⋯12第 5 章原件明细表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13 总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14 参考文献15第1 章概论1.1设计的目的与意义当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。
作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。
闪烁灯控制系统是利用8051单片机的P1控制的8 个发光二极管。
可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1 秒,如此循环,紧急情况下,控制P3.1 进行报警2S停止。
闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础1.2单片机概述与应用单片机是将CPU、存储器、定时/计数器以及I/O 接口等主要部件集成在一块芯片上的微型计算机。
单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。
目前国外已经普遍称之为微控制器。
鉴于他完全作嵌入式应用,故又称为嵌入式微控制器单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。
自从20世纪70 年代推出单片机以来,作为微型计算机的一个分支,单片机经过30 多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。
(2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。
(3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。
(4)商用产品:如自动售货机、电子收款机、电子秤。
第2 章设计原理2.1设计要求与基本思路这次单片机课程设计,选择了闪烁灯控制设计,通过查阅各种文献资料,再加上自己以前所学单片机课程的基础,大概的设计思路可概括为以下8 个步骤:⑴通过累加器A给P1口送二进制数,驱动八个发光二极管,低电平发光,高电平熄灭。
⑵编写延时一秒的子程序DELAY,可通过软件定时,也可通过与定时器中断配合来实现。
⑶调用DELAY延时程序。
⑷送0FFH给P1 口,使发光二极管熄灭,再调用DELAY延时程序。
使发光二极管闪烁。
⑸送闪烁次数10 给寄存器R0,通过DJNZ指令,配合DELAY延时程序,实现发关二极管闪烁,当闪烁十次后结束循环。
⑹执行RR(循环右移)指令,指向下一个二极管,重复第5 步。
⑺当8 个发光二极管从左至右依次闪烁完毕后,执行RL(循环左移)指令,重复第5 步,使二极管从右至左一次循环闪烁。
⑻当从右至左循环结束后,重复第6 步,循环闪烁。
由于在起初的硬件中选择了共阳的二极管接法,所以通过给P1 口输送低电平0 ,就可以使二极管发光,输送高电平1 可使二极管熄灭。
单片机中的定时器有四种工作方式,由于工作方式0 和工作方式1 计数溢出后,计数器都全为0,因此,循环定时或循环计数应用时就存在反复设置计数初值的问题。
这不但影响精度,而且也给程序设计带来了不便。
于是,选择工作方式2,它具有自动更新重新加载功能,即自动加载计数初值。
在这种方式下,把16 位计数器分为两部分,即TL 作计数器,TH 作预置寄存器,初始化时把初值分别装入TL和TH中。
为了能够清晰的看见二极管闪烁,选择定时器定时500us, 再通过配合DJNZ指令来实现延时1s的定时。
由于,DJNZ中操作数的范围不能达到2000,所以选择两条DJNZ 指令,一次置200,一次置10,依次循环就可达到要求。
2.2设计方案选择在做本次课程设计时,用到了8051 单片机,由于其程序存储器是掩膜ROM,其编程是由半导体制造厂家完成的,即在生产过程中进行编程,当掩膜ROM制造完成后,用户不能更改其内容。
因此,选择了型号为27256(32KB)的EPROM作为它的程序存储扩展。
同时EA引脚必须有效,方可访问外扩程序存储器。
在引脚的连接时,8051单片机的PSEN引脚须接EPROM 的OE 端,当PESN有效时,允许读出EPROM 中的指令码。
同时,ALE 接74LS373译码器的G引脚,当CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号,以实现低位地址和数据的隔离。
因此,其程序存储器扩展图如图2 所示。
单片机的复位操作有上电自动复位和按键自动复位两种方式。
上电复位是通过外部复位电路的电容充电来实现的。
电容C1选择10uf,电阻选择10K,这样,只要电源VCC 的上升时间不超过1ms,就可实现上电复位,即接通电源就完成了系统的复位初始化。
时钟电路用于产生单片机工作所需的时钟信号。
在MCS-51 系列单片机芯片外部,X1 和X2 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。
电容器C2 和C 通常3取30pf,对振荡频率有微调作用,选择振荡频率为12MHZ 的石英晶体。
2.3设计框图VCC图1 闪烁灯控制设计硬件接GNDP0.7P2.7VCC 线图第3 章硬件电路设计3.1 时钟电路图2 8051 内部时钟电路图3 8051 外部时钟电路扩展电路外扩程序存储器的空间地址,是由P2 口提供高八位地址,P0 口分时提供低8 位地址和用作8位双向数据总线。
在设计硬件接线时,使27256 芯片的片选信号CE 始终保持有效,低八位A0~A7 通过74LS373 译码器连接P1 口,高七位A8~A14 连接P2.0~P2.6,具体连接如图2 所示。
因此其地址范围位0000H~7FFFH 其程序存储扩展图如图所示。
图 4 8051 程序存储扩展图第四章程序设计4.1 程序设计思路与流程图闪烁灯分8 个发光二极管,从左到右闪烁,或者从右到左闪烁,均呈现一个亮,而其余全灭的现象,8 个灯有8051统一控制,其亮灯条件说明表如下表1 闪烁灯灯亮的条件说明表流程图的绘制为编程提供了便利,通过对控制要求的理解而绘制的流程图可以让我们对控制过程更加熟悉并且编程的进行也变得有据可寻。
流水灯控制设计的流程图如图所示。
图 5 闪烁灯流程图4.2 程序清单与代码 ORG 0000H;程序存放的起始地址AJMP MAIN;上电,转向主程序ORG 0003H;外部中断 0 入口地址AJMP LOOP;转向中断服务程序ORG 0030H;主程序MAIN: SETB EX0;允许外部中断 0 中断SETB IT0;选择边沿触发方式SETB EA;CPU 开中断MOV R0,#10;将闪烁次数 10 送入 R0MOV R2,#8;将灯的数量 8 送入 R2MOV A,#07FHLOOP: MOV P1,A;使最左边的一个二极管发光LCALL DELAY;调用延时 1s 的子程序MOV P1,#0FFH;使最左边的一个二极管熄灭LCALL DELAY;调用延时 1s 的子程序DJNZ R0,LOOP;循环闪烁十次RR A;指向下一个二极管MOV R0,#10;再次将闪烁次数 10 次送入 R0DJNZ R2,LOOP;8 个灯从左到右依次闪烁完毕MOV R2,#8LOOP1: MOV P1,A;使最右边的一个二极管发光LCALL DELAY;调用延时 1s 的子程序MOV P1,#0FFH;使最右边的一个二极管熄灭LCALL DELAY;调用延时 1s 的子程序DJNZ R0,LOOP;循环闪烁十次RL A;指向下一个二极管MOV R0,#10;再次将闪烁次数 10 次送入 R0DJNZ R2,LOOP1 ;8 个灯从右到左依次闪烁完毕LJMP MAIN;转向主程序DELAY: MOV R5,#200MOV R7,#10;定时器 1 工作于方式 2 ;送初值;允许定时器 1 中断 ;P2.0 输出置 1 ;启动定时器 1;定时 500us 到, 转向 LOOP4执行;停止定时器 1 ;P2.0 输出取反;循环 2000 次定时程序,延时 1s ;返回 ;程序结束4.3 程序调试将编好的程序写入,单片机外部电源等调试完成后按下 P1,可以看到发光二极管从左到右一次点亮,并且每个二极管再点亮到熄灭的时间维持在 1 秒;延时 1s 的 DELAY 子程序LOOP2: MOV TMOD,#20HMOV TH1,#06H MOV TL1,#06H SETB ET1 SETB P2.0 SETB TR1LOOP3: JBC TF1,LOOP4SJMP LOOP3LOOP4: CLR TR1CLR P2.0 DJNZ R7,$ DJNZ R5,LOOP2 RET END左右。