基于单片机AT89C51的花样跑马灯设计报告

合集下载

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

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

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(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单片机,结合中断技术实现对跑马灯的控制,加深对单片机中断系统、定时器/计数器以及程序设计方法的理解和掌握。

二、实训内容1. 硬件设计- 主控制器:AT89C51单片机- 驱动电路:ULN2003A驱动器- 显示电路:8个LED灯- 控制电路:按键开关2. 软件设计- 编写程序实现跑马灯的基本功能,包括:- 跑马灯模式:LED灯依次点亮,形成跑马灯效果。

- 定时控制:通过定时器实现LED灯点亮时间的控制。

- 中断控制:通过外部中断实现按键控制跑马灯模式的切换。

三、实训步骤1. 硬件连接- 将AT89C51单片机的P1.0至P1.7引脚连接至ULN2003A的输入端,用于驱动LED灯。

- 将按键开关连接至单片机的P3.2和P3.3引脚,用于控制跑马灯模式。

- 将ULN2003A的输出端连接至LED灯的正极,负极接地。

2. 程序设计- 初始化配置:- 初始化定时器T0,设置定时时间为50ms。

- 初始化外部中断0和外部中断1,配置中断触发方式为下降沿触发。

- 跑马灯控制:- 设置定时器T0中断,当定时器溢出时触发中断,实现LED灯的点亮和熄灭。

- 在中断服务程序中,通过移动LED灯的位置,实现跑马灯效果。

- 按键控制:- 当按下P3.2引脚对应的按键时,切换跑马灯模式。

- 当按下P3.3引脚对应的按键时,停止跑马灯运行。

3. 程序调试- 编译程序,将生成的HEX文件烧录至AT89C51单片机。

- 连接调试器,观察程序运行情况,确保跑马灯控制功能正常。

四、实训结果与分析1. 跑马灯效果通过实验,成功实现了跑马灯的基本功能,LED灯依次点亮,形成跑马灯效果。

定时器T0的设置保证了LED灯点亮时间的控制,中断技术实现了按键控制跑马灯模式的切换。

2. 中断控制外部中断0和外部中断1的配置保证了按键控制功能的实现。

当按下按键时,中断服务程序会根据按键的引脚和状态切换跑马灯模式或停止跑马灯运行。

实验报告跑马灯

实验报告跑马灯

实验报告一:实验名称跑马灯电路二:实验目的(1)掌握proteus软件的使用方法;(2)调试跑马灯电路的汇编语言;(3)绘制跑马灯原理图,实现电路的实现;三:实验要求跑马灯电路,即实现p1口上的8个发光二极管循环闪亮的电路。

四:实验仪器计算机,keil c51软件,proteus软件。

五:参考程序ORG 0000H ;程序入口AJMP MAIN ;转主程序ORG 30HMAIN:MOV R2,#16 ;将16送给R2MOV A,#0FEH ;将0FEH送给累加器ALOOP:MOV P1,A ;循环,将累加器A的值送给p1LCALL D1 ;长调子程序D1RL A ;累加器循环左移DJNZ R2,LOOP ;R2减1非0则转移到LOOPD1: MOV R4,#10 ;将10送给R4D2: MOV R5,#100 ;将100送给R5D3: MOV R6,#249 ;将249送给R6DJNZ R6,$ ;R6减1不为0,则原地等待DJNZ R5,D3 ;R5减1不为0,则转到D3DJNZ R4,D2 ;R4减1不为0,则转到D2RET ;返回主程序END六:试验步骤(1)进入keil c51系统的操作环境,并建立一个工程,输入汇编程序,对程序进行编译和链接:(2):调试无误后运行程序并检查运行结果,检查正确后生成hex文件:(3):在软件proteus中,绘制电路图,找到此实验需要用到的主要元器件及其符号:1:单片机AT89C51;2:电阻RES 10k;3:电容 CAP 30uF;4:晶振 CRYSTAL ;5;排阻 RESPACK-8;6:开关 BUTTON;7:发光二级管 LED;(4)绘制电路仿真图,然后将生成的hex文件下载到AT89C51中,并开始仿真,结果如下:七:实验结果程序仿真完成后,发光二级管会有规律的从左向右循环闪亮,直到时间结束后才会停下。

基于单片机AT89C5控制的花样调速流水灯课题设计报告

基于单片机AT89C5控制的花样调速流水灯课题设计报告

基于单片机AT89C5控制的花样调速流水灯课题设计报告宁波技师学院课程设计报告论文题目花样调速流水灯专业班级学生姓名学号指导教师宁波技师学院电气技术系2013 年9月目录第1章系统设计 (1)1.1 数码管显示方案 (1)1.2 按键输入方案 (1)第2章硬件电路设计 (2)2.1电路原理 (2)2.2系统工作流程 (2)第3章软件设计 (3)3.1系统资源分配 (4)3.2软件模块设计 (6)第四章调试¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨94.1 正常现象¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨104.2出现的故障¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨11第5章总结 (7)参考文献 (7)附录1硬件电路图 (8)附录2软件代码 (14)第1章系统设计1.1 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

花样跑马灯设计报告

花样跑马灯设计报告

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

基于AT89C51的跑马灯

基于AT89C51的跑马灯

综合电子课程设计报告设计题目:基于AT89C51的跑马灯专业:电子信息工程班级:学号:姓名:指导教师:日期: 2010年6月30日目录一、设计任务与要求1.设计任务2.设计要求3.设计目的二、设计方案三、程序设计四、电路原理图1.电路原理图2电路PCB板五、单片机机箱测试六、心得体会七、参考文献一设计任务与要求1.设计任务选择采样AT89C51、发光二极管、晶振等器件,使用C语言实现各种跑灯动态显示效果设计。

2.设计要求实现8个LED的全亮、全灭、交错显示等。

可结合灯的排布以及程序设计实现各种跑马灯动态显示效果。

3.设计目的通过本课程设计掌握单片机系统设计思路和基本步骤,熟练用protel99软件画原理图和PCB板二设计方案在日常生活中,我们总能看到花样百出的流水灯光,但随着电子技术的飞速发展,人们对灯的花样要求也越来越高,如交错、全亮、全灭显示等,因此跑马灯得到广泛的应用。

设计流程三、程序设计程序如下:#include <reg51.H>#defineuint unsigned int#define uchar unsigned charuchar code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};uchar code aa[]={0xE7,0xDB,0xBD,0x7E};uchar code bb[]={0xE7,0xC3,0x81,0x00};uchar code CC[]={0x0F,0xF0,0xAA,0x55};uchar code dd[]={0xFF,0x00,0xff,0x00,0xff,0x00};uchar code ee[]={0x7E,0x3C,0x18,0x00,0xff,0xE7,0xC3,0X81,0x00};uint t=200,s=200;/************************************************** 函数名称:delay(uint t)延时函数入口参数t返回参数:***************************************************/ void delay(uint t){uint i;while(t--){for(i=0;i<125;i++);}}/*************************************************** 函数名称:keyboard()键盘函数入口参数:返回参数:t***************************************************/ keyboard(uint a){int temp;if(P2^0==0){P2=0xaf;delay(20);if(P2^0==0){temp=a;temp-=40;a=temp;while(temp<00?1:0){return s;}return a;}/*else return s;*/}}/**************************************************** 函数名称:diaplay()显示函数入口参数:返回参数:****************************************************/ void display(void){int i;for(i=0;i<=7;i++){P1=0XFF;P0=table[i];t=keyboard(t);delay(t);}for(i=7;i>=0;i--){P1=0XFF;P0=table[i];t=keyboard(t);delay(t);}for(i=0;i<=7;i++){P1=0XFF;P0=aa[i];t=keyboard(t);delay(t);}for(i=0;i<=7;i++){P1=0XFF;P0=bb[i];t=keyboard(t);delay(t);}for(i=0;i<=7;i++){P1=0XFF;P0=CC[i];t=keyboard(t);delay(t);}for(i=0;i<=7;i++){P1=0XFF;P0=dd[i];t=keyboard(t);delay(t);}for(i=0;i<=7;i++){P1=0XFF;P0=ee[i];t=keyboard(t);delay(t);}}/************************************************** 函数名称:主函数入口参数:返回参数:***************************************************/ void main(void){while(1){display();}}从表中很清楚看到我们的跑马灯结构和它每一种工作方式的如何实现的,它是靠一个12MHZ的晶体振荡器来实现分频和延时,并通过数学矩阵来对每一种方式下的发光二极管进行控制。

单片机花样走马灯课程设计

单片机花样走马灯课程设计

单片机花样走马灯课程设计以下是为大家整理的单片机花样走马灯课程设计的相关范文,本文关键词为单片机,花样,走马灯,课程,设计,花样,走马灯,设计,目的,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。

花样走马灯一设计目的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中存放,引用数组1aa就可实现单灯右移。

单片机实训报告跑马灯

单片机实训报告跑马灯

一、实训背景随着科技的发展,单片机作为一种重要的嵌入式系统控制单元,在工业控制、智能家居、物联网等领域得到了广泛的应用。

为了提高学生对单片机程序设计的理解和实践能力,本次实训选择了跑马灯程序设计作为实训项目。

二、实训目的1. 熟悉单片机的基本结构和编程方法。

2. 掌握Keil C51集成开发环境的使用。

3. 学习跑马灯程序的设计与实现。

4. 培养动手实践能力和团队协作精神。

三、实训内容本次实训主要分为以下几个部分:1. 电路设计:设计跑马灯的电路,包括单片机、LED灯、电阻、按键等元件。

2. 程序设计:编写跑马灯的程序,实现LED灯的正序、倒序、闪烁等功能。

3. 程序调试:在Keil C51集成开发环境中进行程序调试,确保程序正常运行。

4. 实验报告撰写:总结实训过程中的经验和收获,撰写实验报告。

四、电路设计跑马灯电路主要包括以下元件:1. 单片机:选用AT89C51单片机作为控制核心。

2. LED灯:使用8个LED灯作为显示元件。

3. 电阻:用于限流,防止LED灯烧毁。

4. 按键:用于控制跑马灯的运行模式。

电路连接方式如下:1. 将8个LED灯的正极依次连接到单片机的P1口。

2. 将8个LED灯的负极依次连接到地线。

3. 将按键的一端连接到单片机的P3.0口,另一端连接到地线。

五、程序设计跑马灯的程序采用C语言编写,主要功能包括:1. 正序跑马灯:LED灯依次点亮,从D1到D8。

2. 倒序跑马灯:LED灯依次点亮,从D8到D1。

3. 闪烁跑马灯:LED灯快速闪烁。

程序流程如下:1. 初始化单片机P1口为输出模式。

2. 根据按键输入选择跑马灯的运行模式。

3. 根据选择的模式,依次点亮LED灯。

4. 延时一段时间,然后继续点亮下一个LED灯。

5. 重复步骤3和4,直到所有LED灯点亮完毕。

程序代码如下:```c#include <reg51.h>#define LED P1void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}void main() {unsigned char i;LED = 0x01; // 正序跑马灯while (1) {for (i = 0; i < 8; i++) {delay(500); // 延时LED = (0x01 << i); // 点亮下一个LED灯}}}```六、程序调试在Keil C51集成开发环境中,将程序代码编译生成HEX文件,然后将HEX文件烧录到单片机中。

跑马灯课程设计说明书模板

跑马灯课程设计说明书模板

机械课程设计LED控制系统设计学院(部):机械工程学院专业班级:机设**级**班学生姓名:***指导教师:***2011年01 月04 日摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广,发展很快。

而51单片机是各单片机中最为典型和最有代表性的一种。

本实验是基于AT89C51单片机芯片作为核心控制器,通过硬件电路的制作以及软件程序的编制设计制作出一个8只LED,每次点亮一只,先把左边的第一只点亮,2秒后点亮左数的第二只灯,第一只熄灭,再过2秒点亮左数的第三只灯,第二只熄灭,……亮灯按此顺序由左向右移动。

当亮灯移到右侧后,开始与上述反方向移动,即灯亮由右向左移动的重复循环系统。

本设计基于单片机技术原理。

程序设计和原理图构成了本次设计的重点,应此在设计前必须了解相关知识点和软件才能调试成功。

目录I 摘要一、绪言(一)设计要求二、系统设计(一)硬件电路设计(二)汇编语言程序设计结束语参考文献附录绪言单片机诞生于20世纪70年代,像美国F8单片微型计算机。

所谓单片机是利用大规模集成电路技术把中央处理单元(Center Processing Unit,也即常称的CPU)和数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成一个最小的计算机系统,而现代的单片机则加上了中断单元,定时单元及A/D转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛。

随后Intel公司推出了影响面更大、应用更广的MCS-48系列单片机。

MCS-48系列单片机的推出标志着工业控制领域进入到了智能化嵌入式计算机系统的探索阶段。

在对MCS-48探索成功的基础上,Intel公司很快推出了完善的典型MCS-51系列单片机。

此系列单片机的推出,标志着单片机的发展进入了体系结构的完善阶段。

此外,MCS-51系列单片机还在完善的结构总线和完善的指令系统这两方面确定了典型的通用总线型单片机的体系结构。

单片机跑马灯实验报告

单片机跑马灯实验报告

单片机跑马灯实验报告单片机跑马灯实验报告引言:单片机是一种集成电路,具有微处理器核心、存储器、输入输出接口和定时计数器等功能,广泛应用于各个领域。

而跑马灯实验是单片机学习中的基础实验之一,通过控制LED灯的亮灭顺序,实现类似跑马灯效果。

本报告将详细介绍单片机跑马灯实验的设计原理、实验步骤以及实验结果。

一、设计原理:单片机跑马灯实验的设计原理基于单片机的IO口控制和定时器的应用。

在单片机中,IO口可以通过设置高低电平来控制外部设备的工作状态,而定时器可以实现对时间的精确控制。

通过将多个LED灯连接到单片机的不同IO口上,并利用定时器控制LED灯的亮灭顺序和时间间隔,就可以实现跑马灯效果。

二、实验步骤:1. 准备工作:a. 准备单片机开发板、杜邦线、LED灯等实验器材;b. 连接电路:将多个LED灯通过杜邦线连接到单片机的不同IO口上;c. 上电测试:将开发板连接到电源,确认电路连接无误。

2. 编写程序:a. 打开单片机开发环境,选择合适的单片机型号;b. 编写程序代码:根据实验要求,编写控制LED灯亮灭顺序的程序代码;c. 调试程序:通过编译、下载和运行,检查程序是否可以正常工作。

3. 实验操作:a. 将已编写好的程序下载到单片机开发板中;b. 上电运行:通过上电启动单片机,程序开始运行;c. 观察实验现象:观察LED灯的亮灭顺序和时间间隔,验证跑马灯效果。

三、实验结果:经过实验操作,我们成功实现了单片机跑马灯效果。

LED灯按照预先设定的顺序依次亮起,并在一定时间后熄灭,随后下一个LED灯亮起,如此循环往复,形成了跑马灯效果。

通过调整程序代码中的参数,我们还可以改变跑马灯的亮灭顺序和时间间隔,实现不同的效果。

四、实验总结:通过这次单片机跑马灯实验,我们深入了解了单片机的IO口控制和定时器的应用。

通过编写程序代码,我们成功实现了跑马灯效果,并通过调试参数,改变了跑马灯的亮灭顺序和时间间隔。

这次实验不仅巩固了我们对单片机的基础知识的理解,还培养了我们的实际操作能力。

51单片机的音乐跑马灯设计

51单片机的音乐跑马灯设计

摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。

近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。

本设计使用AT89C52芯片,利用P0的8个端口连接8个发光二极管,P1的8个端口连接8个发光二极管,通过P0.0到P0.7的值和P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。

设计的中断程序要对多个按键动作进行响应,灯光变换的花样有15种,用模式按钮切换。

按下模式按钮键,程序将按十五种模式切换,每按一次模式按钮键,切换一次跑马灯模式,而加速按钮和减速按钮可以改变闪烁速度;最后一种模式为音乐模式,加速按钮可切换音乐。

在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。

当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。

此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。

关键词:音乐跑马灯;AT89C52单片机;74LS245驱动芯片;LED发光二极管1 设计概述 (1)1.1设计目的 (1)1.2设计作用 (1)1.3设计要求 (1)1.4系统设计框图 (1)2元器件介绍 (3)2.1AT89C52单片机 (3)2.2驱动芯片74LS245 (3)2.3其他元件及功能 (4)3 硬件电路设计 (6)3.1单片机最小系统 (6)3.2LED显示部分 (7)3.3按钮控制部分 (7)3.4数码管显示电路 (8)3.5蜂鸣器部分 (8)3.6系统总电路图 (9)4 软件设计 (10)4.1 程序流程图 (10)4.2 程序设计 (10)5 结束语 (32)参考文献 (33)1 设计概述1.1设计目的利用所学单片机的理论知识进行软硬件整体设计,培养学生分析、解决问题的能力,锻炼学生理论联系实际、综合应用的能力。

基于AT89C51单片机的跑马灯电路课程设计

基于AT89C51单片机的跑马灯电路课程设计

目录1 实验目的 (1)2 元器件清单及简介 (1)3 设计原理及分析 (1)3.1 主要设计要求 (1)3.2 实验总流程图 (2)3.3 实验总图及说明 (3)4 实验中的问题与改进 (3)5 总结 (4)5.1 四级调速 (4)5.2 跑马灯闪烁方向的改变 (5)5.3 跑马灯循环闪烁灯的个数的改变 (6)6 实验分析与心得 (7)参考文献: (9)附录............................................... 错误!未定义书签。

基于AT89C51单片机的跑马灯电路课程设计1实验目的了解AT89C51管脚的基本功能,学会运用Proteus 7.7设计电路,学会运用汇编语言编写程序,来实现跑马灯的左右转换、0.1ms,0.25ms,0.5ms,1ms的四级变速、灯的闪烁个数为1,2,3,4等功能。

使用KEIL C51设计单片机程序,生成HEX文件,将程序烧录到AT89C51芯片中。

然后在实验电路中运行,调试。

2元器件清单及简介3设计原理及分析3.1主要设计要求1.灯的循环左右移动。

2.灯循环闪烁的个数可由1变到4。

3.灯循环闪烁的速度可变,分别是现0.1ms,0.25ms,0.5ms,和1ms的循环转变。

4.能在仿真图和面包板上进行实物运行并实现以上功能。

并能尽量节省器材。

3.2实验总流程图图1实验流程图3.3实验总图及说明图2 实验总图1.右边与P0口相连的8个灯采用上拉电阻方式,采用此方式是因为P0口驱动能力较大,且内部无上拉电阻,因此采用低电平驱动时,需加上拉电阻;且防止因电流过大而烧毁二极管。

2.左边依次与P1.0-P1.5的开关K0、K1、K2、K3、K4、K5,右边与P2.0-P2.3依次相连开关为K6、K7、K8、K9。

3.K0、K1控制灯的闪烁方向;K2、K3、K4、K5控制跑马灯闪烁的速度;K6、K7、K8、K9控制跑马灯灯闪烁的个数。

4.当有开关按下时相应的P口被置0,定时器中扫描P口程序扫描到相应P口为低电平,从而转到相应子程序执行,从而达到1所说功能。

跑马灯的实训设计报告

跑马灯的实训设计报告

一、实训目的1. 熟悉单片机的硬件结构和基本工作原理;2. 掌握单片机编程方法,实现跑马灯功能;3. 提高实际操作能力和问题解决能力。

二、实训内容1. 跑马灯电路设计;2. 单片机编程实现跑马灯功能;3. 跑马灯功能测试与调试。

三、实训原理跑马灯是一种常见的电子玩具,主要由单片机、LED灯、按键等组成。

通过单片机控制LED灯的亮灭,实现跑马灯效果。

本实训采用AT89C51单片机作为核心控制单元,通过编程实现跑马灯功能。

四、实训步骤1. 跑马灯电路设计(1)硬件选型:选用AT89C51单片机作为核心控制单元,8个LED灯作为显示单元,2个按键作为控制单元。

(2)电路连接:将AT89C51单片机的P1口与LED灯的正极相连,LED灯的负极通过限流电阻连接到地。

将两个按键分别连接到单片机的P3.0和P3.1口。

2. 单片机编程实现跑马灯功能(1)初始化:设置P1口为输出端口,P3.0和P3.1口为输入端口。

(2)跑马灯程序编写:```c#include <reg51.h>#define LED P1void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 1275; j++); }void main() {unsigned char i = 0;while (1) {LED = 0x01; // 点亮LED1delay(500);LED = 0x02; // 点亮LED2delay(500);LED = 0x04; // 点亮LED3delay(500);LED = 0x08; // 点亮LED4delay(500);LED = 0x10; // 点亮LED5delay(500);LED = 0x20; // 点亮LED6delay(500);LED = 0x40; // 点亮LED7delay(500);LED = 0x80; // 点亮LED8delay(500);for (i = 0; i < 8; i++) {LED = ~(0x01 << i); // 倒序点亮LEDdelay(500);}}}```3. 跑马灯功能测试与调试(1)测试:将编写好的程序烧录到AT89C51单片机中,观察LED灯的跑马灯效果。

51单片机走马灯实验报告

51单片机走马灯实验报告

微机原理及单片机应用实验实验报告实验跑马灯一、实验内容开关控制输出方式,共四种,开关拨到k1时奇数灯亮,开关拨到k2时偶数灯亮,开关k3时奇数偶数灯轮流亮,开关拨到k4时从左到右依次亮,开关拨到k5时从右到左依次亮。

二、实验步骤①依次L1-L8接入P1.0-P1,7,将P3接入高低电平开关②编程③实现三、实验原理图四.实验程序清单ORG 0000HPX00: MOV P1,#0FFH KEY : MOV A,#0FEHPO00: JB P3.0,PO01JNB P3.0,PO02PO01: MOV A,#055HMOV P1,ALJMP PO00PO02: JB P3.1,PO03JNB P3.1,PO04PO03: MOV A,#0AAHMOV P1,ALJMP PO00PO04: JB P3.2,PO05JNB P3.2,PO06PO05:MOV A,#0FEHK1:MOV P1,AJNB P3.2,LASTAJMP W1W1:RL ASJMP K1C1:MOV R6,#0A0HMOV R7,#0FFHK2:MOV R7,#0FFHK3:DJNZ R7,K3DJNZ R6,K2LJMP W1PO06:JB P3.3,PO07JNB P3.3,PO08PO07:MOV A,#7FHK4:MOV P1,AJNB P3.3, LASTAJMP W2W2: RR ASJMP K4C2: MOV R6,#0A0HMOV R7,#0FFHK5:MOV R7,#0FFHK6:DJNZ R7,K6DJNZ R6,K5LJMP W2PO08:JB P3.4,PO09JNB P3.4,LASTPO09:MOV A,#55HMOV P1,AMOV R6,#0A0HMOV R7,#0FFHK7:MOV R7,#0FFHK8:DJNZ R7,K8DJNZ R6,K7MOV A,#0AAHMOV P1,AMOV R6,#0A0HMOV R7 ,#0FFHK9:MOV R7,#0FFHK10:DJNZ R7,K10DJNZ R6,K9LJMP PO08LAST:MOV P1,#0FFHLJMP PO00END五、实验总结参考8255交通灯实验,加上延时程序以及查询式的跳转方法实现跑马灯。

单片机跑马灯

单片机跑马灯

1、前言 (2)2、硬件电路设计 (2)2.1、AT89C51芯片分析 (2)2.2、电路连接图 (5)2.3、主控制系统 (5)2.4时钟振荡电路 (6)2.5、复位电路 (7)2.6、元件清单 (7)3、软件设计与流程图 (8)3.1、流程图 (8)4、调试总结 (10)跑马灯设计摘要:本文设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。

单片机上电后,当开关k1闭合时8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟,然后全亮,之后开始显示1~9。

当开关k2闭合时,8个灯依次从右向左亮。

当k3闭合时,8个灯全灭。

关键词:AT89C51芯片;跑马灯;单片机;1、前言AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,即单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

本文设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。

单片机上电后,当开关k1闭合时8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟,然后全亮,之后开始显示1~9。

当开关k2闭合时,8个灯依次从右向左亮。

当k3闭合时,8个灯全灭。

2、硬件电路设计2.1、AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51的芯片引脚图如下:图1 AT89C51引脚图各引脚的说明和功能分析如下:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

基于单片机AT89C51控制的花样调速流水灯课题设计报告.

基于单片机AT89C51控制的花样调速流水灯课题设计报告.

宁波技师学院课程设计报告论文题目花样调速流水灯专业班级学生姓名学号指导教师宁波技师学院电气技术系2013 年9月目录第1章系统设计 (2)1.1 数码管显示方案 (2)1.2 按键输入方案 (1)第2章硬件电路设计 (2)2.1电路原理 (2)2.2系统工作流程 (2)第3章软件设计 (3)3.1系统资源分配 (4)3.2软件模块设计 (6)第四章调试¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨94.1 正常现象¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨104.2出现的故障¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨11第5章总结 (7)参考文献 (7)附录1硬件电路图 (8)附录2软件代码 (14)第1章系统设计1.1 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占用I/O口线多,每一个LED都要占用一个I/O口,硬件开销大,电路复杂。

单片机花样流水灯设计实验报告

单片机花样流水灯设计实验报告

单片机花样流水灯设计实验报告* * 大学物理学院单片机花样流水灯设计实验课题: 花样流水灯设计班级: 物理 *** 姓名: ***学号:【摘要】当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。

制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。

本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。

本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。

该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

关键字:AT89C51 单片机流水灯数码管2【概述】1. 单片机及其发展概况单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。

单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。

2. Protues仿真软件简介Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。

利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。

【实验设计目标】设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

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

基于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)电源及电源复位引脚:(1)V(40脚):正常操作时接+5V直流电源。

CC(20脚):接地端。

(2)VSS(9脚):复位信号输入端。

在该引脚上输入一定时间(约两个(3)RST/VPD,即备用电机器周期)的高电平将使单片机复位。

该引脚的第二功能是VPD源输入端。

当主电源发生故障,降低到低电平规定值时,可将+5V备用电源端,以保护片内RAM中的信息不丢失,使复电后能继续正常运自动接入VPD行。

(31脚):访问程序存储器控制信号/编程电源输入。

当EA保(4)EA/VPP持高电平时,访问内部程序存储器,访问地址范围在0~4KB内;当PC(程序计数器)值超过0FFFH,即访问地址超出4KB时,将自动转向执行外部程序存储器内的程序;当EA保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H地址开始)。

由此可见,对片内有可用程序存储器的单片机而言,EA端应接高电平,而对片内无程序存储器的单片机,可将EA接地。

对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(V)。

PP2)时钟振荡电路引脚XTAL1和XTAL2:(1)XTAL1(19脚):外接石英晶体和微调电容引脚1。

它是片内振荡电路反向放大器的输入端。

采用外部振荡器时此引脚接地。

(2)XTAL2(18脚):外接石英晶体和微调电容引脚2。

它是片内振荡电路反向放大器的输出端。

采用外部振荡器时此引脚为外部振荡信号输入端。

3) ALE/PROG(30脚):低8位地址锁存控制信号/编程脉冲输入。

在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。

在访问外部程序存储器期间,ALE信号两次有效;而在访问外部数据存储器期间,ALE信号一次有效。

对于EPROM型单片机,在EPROM 编程期间,此引脚用于输入编程脉冲PROG。

4)PSEN(29脚):外部程序存储器的读选通信号输出端,低电平有效。

在从外部程序存储器取指令(或常数)期间,此引脚定时输出负脉冲作为读取外部程序存储器的信号,每个机器周期PSEN两次有效,此时地址总线上送出的地址为外部程序存储器地址;在此期间,如果访问外部数据存储器和内部程序存储器,不会产生PSEN信号。

5)并行双向输入/输出(I/O)口引脚:(1)P0口的P0.0~P0.7引脚(39~32脚):8位通用输入/输出端口和片外8 位数据/低8位地址复用总线端口。

(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。

(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。

(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。

2.2硬件原理框图2.3电路模块1)振荡电路晶振为单片机提供时钟信号。

设置为12MHz 。

2)跑马灯显示电路 X1 X2P0AT89C51RSTP2 1-8红色LED 9-16绿色LED晶振P0口连接1-8号红色LED灯,根据输出的高低电平控制灯的亮灭;P2口接9-16号绿色LED灯。

三.软件电路设计本课程设计是采用89C51单片机设计的花样跑马灯,通过keil进行c语言编程,通过protues进行软件硬件仿真。

仿真时可以观察到不同方式的跑马灯闪烁。

四.C语言源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff, 0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8, 0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff };uchar code Pattern_P2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff, 0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00, 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff };//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;while(1){ //从数组中读取数据送至P0和P2口显示for(i=0;i<136;i++){P0=Pattern_P0[i];P2=Pattern_P2[i];DelayMS(100);}}}五.仿真过程综述使用proteus isis进行硬件连接:AT89C51的X1,X2连接振荡电路作为时钟信号,P0口分别连接LED通过220欧的电阻到高电平,P2口分别连接绿色LED通过220欧电阻到高电平。

在RST上输入一定时间(约两个机器周期)的高电平将使单片机复位。

EA引脚连接低电平,实现编程。

硬件连接图跑马灯动作设计依次为:两盏灯从上向下,跑两次;中间向两边移动再收拢;中间向两边扩散再收拢;单数编号灯跳转双数编号灯;上下各亮三盏灯;上边亮四盏灯跳转下边四盏灯;三盏亮灯上下移动;全灯闪烁一次;下边亮四盏灯跳转上边四盏灯;一盏灯上下移动;一盏灯向下扩展全灯亮;全灯闪烁几次;过程重复。

绿灯和红灯闪烁情况相同,还可以根据创意改变LED灯的排序和闪烁花样,只要改变定义数组里的值,就能实现更多的花样跑马效果。

六.设计中的难点定时器中断延时程序设计:采用DelayMS ()函数进行的延时是不精确的,主要有以下两个原因。

(1)该类型的DelayMS ()函数采用的延时是通过对变量进行递减或递增实现的,很难计算精确的延时时间。

相关文档
最新文档