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

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(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; // 标记按键状态已经改变}}}。
单片机课程设计报告跑马灯

单片机课程设计报告跑马灯武汉纺织大学单片机课程设计报告设计课题:跑马灯指导教师:刘丰姓名:颜珊曹坤班级:应电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)班学号:学生姓名:指导教师:2010年12 月 1 日南昌工程学院课程设计(论文)任务书一、课题设计(论文)题目:基于单片机控制的花样彩灯设计二、课程设计(论文)使用的原始资料(数据)及设计技术要求:设计要求:以MCS51单片机为核心,辅以外围接口电路,设计一个由键盘控制的四种花样LED闪烁彩灯,使八个LED实现流水灯(跑马灯)、逐点点亮、间隔点亮、逐点熄灭四种花样。
要求采用键盘查询方式(非中断方式)实现花样转换。
在当前花样循环显示时,按下相应的花样选择按钮,能立即转换至对应的闪烁花样(但必须在去干扰或消除抖动之后)。
四个按钮S1、S2、S3、S4分别对应花样1、花样2、花样3、花样4。
程序开始运行时自动执行花样1(流水灯)。
时间间隔采用定时/计数器控制为1S左右(误差不超过10%)。
1、单片机控制系统硬件电路设计,包括单片机时钟和复位电路的设计、LED驱动和键盘设计等。
2、控制软件设计与调试,包括1S定时功能的实现、键盘响应程序和显示控制程序等。
三、课程设计(论文)工作内容及完成时间:1、查找相关文献,进行方案选择。
2天 11.22---11.232、系统硬件电路设计,绘制电路原理图。
3天 11.24---11.263、绘制软件流程图,编写与调试软件。
3天 11.29---12.14、完成课程设计报告,答辩。
2天 12.2---12.3四、主要参考资料:1、《单片机原理及应用》,李建忠,西安电子科技大学出版社,2002年2、《单片微型计算机与接口技术》,李群芳等,电子工业出版社,2002年3、《单片微型计算机原理与接口技术》,陈光东等,华中科技大学出版社,1999年4、《单片机实验与实践》,周立功等,北京航空航天大学出版社,2004年5、《开放式综合实验/仿真系统MCS51实验分册》,伟福公司电气与电子工程系 07电气工程电力系统专业 1 班学生:王文虎日期:自 2010 年 11 月 22 日至 2010 年 12 月 3 日指导教师:章彧助理指导教师(并指出所负责的部分):教研室:电气工程教研室主任:目录1引言 (4)2 设计原理 (5)2.1MCS51 (5)2.2 LED (6)2.3中断指令 (8)2.4硬件接原理图 (9)3程序流程图 (11)3.1主流程图 (11)3.2流水灯子流程图 (12)3.3中断程序流程图 (13)4汇编程序 (14)4.1主程序 (14)4.2一秒钟定时程序 (17)5小结 (18)参考文献 (19)1.1引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
单片机花样走马灯课程设计

花样走马灯一设计目的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中存放。
花样跑马灯设计报告

3 系统调试
本系统的调试是把在 Keil 里面写好的程序通过编译不出现任何错误后将生成的 后缀名为.HEX 的文件加载到 AT89C51 单片机中。接下来我们将在 PROTEUS 软件进 行软硬件结合的调试。
图 10 程序编译
下面是在 PROTEUS 软件仿真系统中的调试结果,如表 1:
表 1 测试结果及状态分析
break;
当闭合k2时彩灯循环闪烁变快闭合k3时彩灯循环闪烁变本设计实现了用快慢两种节拍实现花型交宿州学院微机应用课程设计图11仿真电路图结论通过学习为期一周的课程设计不仅了解了at89c51的功能还加强了单片机的理论知识的了解而且进一步理解了理论与实际相结合这一永恒话题
宿州学院
微机应用课程设计
宿州学院
微机应用课程设计报告
二 设计要求:
1 硬件电路设计及描述 1.1 总体设计
通过模式键改变单片机的工作模式,进行程序控制,一共八个模式。LED 灯工作 在不同的模式下有不同的现象。用加速减速按钮来控制 LED 灯闪亮的快慢。对基于单 片机的走马灯控制系统进行设计,所设计的系统为:以 MCS-51 系列单片机作为控制 核心。单片机执行指令是在时钟脉冲控制下进行的,因此单片机必须外接振荡器构成 时钟电路才能正常工作。
本次课程设计,我有以下几点体会: 1.要注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,小到 一个引脚的连接,一点点的错误都会使整个电路无法运行,因此我们不仅仅要有整体 意识,也要注意细节,不要因为一个小小的细节而导致满盘皆输。
2.要与同学们互相沟通、交流 。第一次做微机原理课程设计,难免会遇到各种 各样的问题,因此我们遇到问题,就要积极地与同学交流,必要时向老师请教,比如 我就遇到过这样的问题:刚着手此设计时,不知道如何下手,但经过老师的指导及自 己查阅相关的资料,逐渐有了自己的设计想法,制定出了系统的结构框图。软件设计 是耗时最长的一项,涉及到整个系统工作的稳定性。首先要编写总体框架,然后做简
单片机跑马灯课程设计

第一章概论随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
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;}}```实验结果将程序烧录到单片机后,连接电源,按下不同的按钮,可调控跑马灯的亮度和闪烁频率。
基于单片机AT89C51的花样跑马灯设计报告
基于AT89C51的花样跑马灯一.课设简介1-1.课设目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。
通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
1-2.课设内容利用单片机的自动控制功能,设计出相应不同的电路,可以实现IED灯不同模式的显示效果。
本课程是利用AT80C51单片机的自动控制功能,并结合其它电子元器件以及软件实现的跑马灯,实现不同种类的LED灯显示效果。
二.硬件电路设计2.1AT89C51简介及接口说明AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51引脚排列图由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。
单片机课程设计跑马灯
单片机课程设计跑马灯一、教学目标本节课的教学目标是使学生掌握单片机的基本原理和编程方法,通过设计和实现一个跑马灯项目,培养学生运用单片机技术解决实际问题的能力。
具体目标如下:1.知识目标:a.了解单片机的基本结构和原理;b.掌握单片机的编程语言和编程方法;c.熟悉单片机的硬件接口和外围电路。
2.技能目标:a.能够使用单片机开发工具进行程序编写和烧录;b.能够根据项目需求设计单片机的程序;c.能够搭建单片机的硬件电路并进行调试。
3.情感态度价值观目标:a.培养学生对科技创新的兴趣和热情;b.培养学生团队合作精神和自主学习能力;c.培养学生关注社会问题并运用技术解决实际问题的意识。
二、教学内容本节课的教学内容主要包括以下几个部分:1.单片机的基本原理和结构;2.单片机的编程语言和编程方法;3.跑马灯项目的需求分析和设计;4.跑马灯项目的编程和调试;5.跑马灯项目的硬件电路搭建和调试。
三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解单片机的基本原理、编程语言和编程方法,使学生掌握相关知识;2.案例分析法:通过分析跑马灯项目的需求,引导学生学会项目分析和设计;3.实验法:通过搭建跑马灯项目的硬件电路和编程调试,使学生掌握单片机的实际应用;4.讨论法:在课堂上鼓励学生提问、讨论,促进学生之间的交流和合作。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《单片机原理与应用》;2.参考书:单片机技术的相关书籍;3.多媒体资料:单片机的原理讲解、编程方法演示、跑马灯项目案例分析等视频资料;4.实验设备:单片机开发板、外围电路元件、编程器、调试器等。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。
《单片机应用课程设计》跑马灯
目录第1章课程设计内容及要求 (5)第2章引言 (6)第3章系统硬件电路设计 (7)第4章系统软件设计 (12)第5章课程设计心得 (14)第6章参考文献 (15)第7章附录(实物图,程序清单) (16)第1章课程设计内容及要求一、设计内容:1.1.1、了解各种元器件在电路中的作用和一些芯片的功能,并学会掌握Keil和proteus两个软件;1.1.2、对照原理图在proteus软件中画出原理电路图;1.1.3、检查焊接好的硬件实物图并检验实物图效果;1.1.4、根据实物图写出程序并仿真,并结合Keil和proteus两个软件进行调试和仿真。
二、设计要求:1.2.1外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。
具体过程为:按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。
反之则蜂鸣器鸣响较短时间示意输掉游戏。
下次再按下开始键,游戏又开始;1.2.2、按下开关K1,实现跑马灯模式则进行灯循环点亮;1.2.3、按下开关K2,跑马灯停止循环,并停在LED灯中的一个;1.2.4、若是停在P1.0~P1.6中的一个,则响起短时间的音乐并表示游戏失败;1.2.5、若是停在P1.7LED灯时,则该对应的这LED 灯亮并响起较长时间的音乐并表示游戏胜利。
第2章引言跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
本设计使用AT89C2051芯片,利用P1的8个端口连接8个发光二极管,通过P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机花样走马灯课程设计
以下是为大家整理的单片机花样走马灯课程设计的相关范文,本文关键词为单片机,花样,走马灯,课程,设计,花样,走马灯,设计,目的,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。
花样走马灯
一设计目的
1.掌握单片机系统设计思路和基本步骤。
2.熟悉Keilc51高级语言集成开发环境。
3.熟练使用基于proteus的单片机系统仿真软件。
4.学会在IsIs7professional下绘制电路原理图。
5.学会proteusVsm与uvision3IDe 的联调过程。
二设计要求
实现单片机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中存放,引用数组
1
aa就可实现单灯右移。
③单灯逐个点亮接着逐个熄灭:可按照p1.0~p1.7的顺序点亮再按照p1.7~p1.0的顺序熄灭,实现原理同单灯左移和单灯右移,各个引脚的电平在数组bb,cc中存放。
④两边向中间逐个点亮接着中间向两边逐个熄灭:即先将p1.0和p1.7同时设置为低电平,全部点亮后再将p1.3和p1.4设置为高电平,依次直至全部熄灭,各个引脚的电平在数组dd中存放。
程序流程图如图1所示:
开始初始化单灯左移单灯右移单灯逐个点亮单灯逐个熄灭灯由两边向中间点亮再向两边逐渐熄灭图1花样走马灯程序流程图
3.软件设计的实现
(1)初始化实现单灯左移、单灯右移、单灯逐个点亮接着逐个熄灭、两边向中间逐个点亮接着中间向两边逐个熄灭这四种效果的数组。
(2)设置延时函数以便清楚地观察到灯亮的效果。
(3)设置显
示函数,用for循环语句实现8个LeD灯依次显示上述四种效果。
(4)用while语句来实现这四种效果无限循环下去。
4.实现proteusVsm与uVIsion3IDe的联调
2
四详细步骤
1.硬件电路
硬件电路图如图2所示:
图2硬件电路图
2.软件程序设计
(1)安装keiluVision3IDe软件。
(2)双击桌面“uVision3”运行图标或点击“开始”→“程序”→“keiluVision3”进入IDe环境,uVision3IDe软件由菜单栏、可以快速选择命令按钮的工具栏、一些源代码文件窗口、对话框窗口和信息显示窗口组成。
uVision3IDe界面如图3所示:
图3uVision3IDe界面
(3)点击【project】→【newproject】选项。
(4)在弹出的“createnewproject”对话框中选择要保存项目文件的路径,例如保存到“我的文档”中,在“文件名”文本框中输入项目名work,然后单击“保存”按钮。
3
(5)这时弹出一个对话框,要求选择单片机的型号。
选择ATmeL 公司,再选择AT89c51,然后单击“确定”按钮,弹出将8051初始化代码复制到项目中的询问对话框,单击“是”按钮。
如果需要重命名“Target1”和“sourcegroup1”,在左侧projectworkspace区用鼠标左键选中Target1,再用鼠标左键点击一次Target1,再用鼠标左键点击一次Target1,则可重新命名Target1。
用同样的方法修改sourcegroup1。
这里对此不做修改,使用默认名称。
(6)点击【File】→【new】新建一个c语言源程序文件。
(7)在弹出的程序文本框中输入编写好的花样走马灯源程序。
(8)单击【File】→【saveAs】选项,或者单击工具栏按钮,保存文件。
在弹出的对话框中,选择要保存的路径,在“文件名”文本框中输入文件名。
注意一定要输入扩展名,c程序文件的扩展名为.c,单击“保存”按钮。
(9)然后把保存的文件加入到项目中,用鼠标右键点击左边项目窗口中的“sourcegroup1”,在弹出的菜单中选择“AddFiletogroup‘sourcegroup1’”,选择刚才建立的文件,文件类型选择csourcefile(*.c)。
最后单击“Add”按钮,添加完毕后单击“close”按钮,关闭该窗口。
(10)这时在sourcegroup1里就有添加的文件和事先建立项目时已经加入的文件sTARTup.51.
(11)接下来要对目标进行一些设置。
用鼠标右键单击“Target1”,在弹出的菜单中选择“optionforTarget‘Target1’”选项。
(12)弹出“optionsforTarget‘Target1’”对话框,其中有10个选项卡。
将xtal(mhz)设置为11.0592mhz。
(13)设置output选项卡。
选中“createhexFile”,编译后会生成hex 文件。
其效果如图4所示:
图4选中createhexFile
(14)设置Listing选项卡。
此处不做改动,使用默认。
(15)设置Debug 选项卡。
这里先选中“usesimulator”,进行纯软件仿真。
(16)点击【project】→【Rebuildalltargetfiles】,编译连接程序。
如果没有错误,则编译连接成功,开发环境下会显示编译连接成功的信息。
(17)编译完毕之后,单击【Debug】→【start/stopDebugsession】选项,
4
即进入Debug调试环境。
(18)装载代码之后,开发环境outputwindow显示装载成功信息。
调试运行效果如图5所示:
图5调试运行界面窗口
3.调试过程
调试程序时,出现了一些的错误导致不能正常编译生成hex文件,所以需要改正再次编译直至没有错误,才能进行编译生成hex文件,从而实现proteus和uVision3IDe的联调。
调试时出现的错误如下:
(1)次数的计算失误导致了LeD灯没有按照预期的效果实现相应的闪烁。
(2)A:单灯左移和b:单灯右移两个流程弄反了,导致是不符合设计要求。
(3)到右依次点亮时,用了两个for循环语句,导致语句的冗余,第一个for循环语句没有起到作用。
(4)变量i,不能正确编译程序,导致相应的错误,如图6所示:
图6错误信息
(5)调用延时函数时延时较短,导致看不清灯的闪烁效果,以为程序出错了。
4.解决方案
(1)将循环次数减少依次,就不会使循环多执行一次,让灯多亮一个。
(2)把A:单灯左移和b:单灯右移的两段程序换一下位置,在把相应的数据改一下。
(3)将第一个for循环语句去掉。
(4)在主函数中定义一个unsignedchari,重新编译错误消失。
(5)在相应的延时基础上增加延时,让LeD灯能多亮会,肉眼清楚看到效果。
源程序代码如下:
#include\//片内寄存器定义#include\//c51内部函数库
5
最后,小编希望文章对您有所帮助,如果有不周到的地方请多谅解,更多相关的文章正在创作中,希望您定期关注。
谢谢支持!。