单片机跑马灯实训报告
单片机跑马灯(流水灯)控制实验报告
单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。
实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。
2.编写程序:按照题目要求编写所需程序。
3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。
程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。
2. 在程序中,我们通过P2口控制LED灯的亮灭状态。
例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。
同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。
3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。
4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。
通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。
5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。
制作跑马灯的实训报告
一、实验背景随着科技的不断发展,电子技术在我们的日常生活中扮演着越来越重要的角色。
作为电子信息工程专业的学生,掌握电子电路的设计与制作技能是必不可少的。
本实训旨在通过制作跑马灯,让学生了解基本电子元件的原理和电路设计方法,提高学生的动手能力和创新思维。
二、实验目的1. 熟悉电子元件的使用方法和电路原理。
2. 掌握电路图的绘制和实际电路的制作。
3. 理解跑马灯的工作原理,并能够进行简单的故障排除。
4. 培养学生的团队协作能力和实践创新能力。
三、实验内容1. 基本跑马灯电路制作(1)材料准备:8个发光二极管(LED)、1个按键(K1)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:根据图1电路图,将LED按照顺序连接到面包板上,确保每个LED的正负极正确连接。
将按键K1连接到电路中,并设置合适的电阻以限制电流。
(3)程序编写:使用C语言或汇编语言编写程序,实现LED的顺序点亮和熄灭,模拟跑马灯效果。
2. 键控跑马灯电路制作(1)材料准备:8个发光二极管(LED)、2个按键(K1、K2)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在基本跑马灯电路的基础上,增加按键K2。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序的功能。
3. 多功能跑马灯电路制作(1)材料准备:8个发光二极管(LED)、3个按键(K1、K2、K3)、1个电阻、1个面包板、1个电源、连接线等。
(2)电路连接:在键控跑马灯电路的基础上,增加按键K3。
按下K1时,LED按正序点亮;按下K2时,LED按倒序点亮;按下K3时,LED全部熄灭。
(3)程序编写:在原有程序的基础上,增加按键判断逻辑,实现按键控制LED点亮顺序和熄灭的功能。
四、实验结果与分析1. 成功制作出基本跑马灯电路,实现了LED的顺序点亮和熄灭。
2. 成功制作出键控跑马灯电路,实现了按键控制LED点亮顺序的功能。
走马灯实验
1.实验步骤正确,完成了本实验的全部内容。很好( ) 一般( ) 否( )
2.实验数据全面,调试步骤准确,结果正确。很好( ) 一般( ) 否( )
3.实验报告格式规范,图表清晰。很好( ) 一般( ) 否( )
成绩
教师签名
张正明
批改时间
年月日
LJMP ZIT0
ORG 0100H
MAIN: MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R6,#50H
MOV R7,#0FEH
SETB ET0
SETB EA
SETB TR0
SJMP $
ZIT0: DJNZ R6,ZRET
MOV A,R7
SETB EX0
SETB IT0
MOV A,#0FEH
MOV R5,#00H
NEXT: CJNE R5,#00H,NEXT
MOV P1,A
ACALL DELAY
RL A
SJMP NEXT
DELAY: MOV R2,#5
DELAY2: MOV R3,#100
DELAY3: MOV R4,#100
DJNZ R4,$
DJNZ R4,$
DJNZ R3,DELAY3
DJNZ R2,DELAY2
RET
END
2.用P1口作为控制端口,使D1区的LED轮流点亮。用外部中断0控制走马灯的暂停和继续。
ORG 0000H
LJMPMAIN
ORG 0003
LJMP ZEX0
ORG 0100H
MAIN: MOV SP,#60H
SETB EA
单片机跑马灯实训报告
4、彩灯仿真图,如图4-4所示。
图4-4彩灯仿真图
5、彩灯布局图,如图4-5所示。
图4-5彩灯布局图
五、焊接电路
按电路装配图,如图5-1。按顺序将元器件焊接到万能板上,并用导线对其进行连接,然后对其进行检测。
图5-1电路装配图
六、程序流程:
实现小灯随开关闭合亮的程流程图,如图6-1所示。
九、实训总结
通过这一周单片机实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,本次系统以AT89C52单片机为核心部件,利用汇编软件编程,通过usb送电和8个发光二极管显示实现了基本跑马灯功能,能实现本设计题目的基本要求和发挥部分。
在这次实训中既锻炼了我们的焊接能力同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
3.彩灯原理图…………………………………………6
4.彩灯仿真图…………………………………………7
5.彩灯布局图…………………………………………8
五、焊接电路……………………………………………8
六、程序流程……………………………………………9
七、跑马灯程序…………………………………………10
八、下载调试程序………………………………………10
功能扩展
扩展功能要求(5%)
小组间的合作
团结、协作的情况(5%)
应用价值与创新
设计成果的应用价值与创新(5%)
纪律
实训全过程(10%)
实训报告
内容、格式(10%)
跑马灯中断控制实训报告
一、实训目的本次实训旨在通过使用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. 硬件选型跑马灯项目主要涉及硬件部分有:单片机、显示模块、按键模块、电源模块等。
考虑到成本和易用性,我选择了基于STC89C52单片机的硬件平台,该单片机具有丰富的外设资源,且价格低廉。
2. 软件设计跑马灯项目主要涉及软件设计,包括主程序、显示模块、按键模块等。
(1)主程序:负责跑马灯的基本功能,包括文字显示、滚动速度调整、按键控制等。
(2)显示模块:负责将文字显示在屏幕上,包括字体选择、颜色设置等。
(3)按键模块:负责实现按键功能,包括启动/停止跑马灯、调整滚动速度等。
3. 调试与优化在软件开发过程中,需要不断调试和优化程序,以提高跑马灯的性能。
主要优化方向包括:(1)优化程序结构,提高代码可读性和可维护性。
(2)优化显示模块,提高显示效果。
(3)优化按键模块,提高按键响应速度。
四、实现过程1. 硬件搭建首先,根据设计图纸,焊接电路板,连接单片机、显示模块、按键模块等硬件设备。
2. 软件编写(1)主程序:编写主程序,实现跑马灯的基本功能。
(2)显示模块:编写显示模块,实现文字显示、颜色设置等功能。
(3)按键模块:编写按键模块,实现按键控制功能。
3. 调试与优化在软件开发过程中,使用示波器、逻辑分析仪等工具进行调试,观察程序运行情况,发现问题并及时修改。
经过多次调试,跑马灯项目最终实现预期功能。
五、总结与反思1. 总结通过本次嵌入式实训,我掌握了跑马灯项目的开发过程,包括硬件选型、软件开发、调试与优化等。
单片机跑马灯实验报告
学号14142200277序号19单片机原理与接口技术实验报告实验项目序号一实验项目名称跑马灯实验姓名卢志雄专业电子信息工程班级电信14-2BF完成时间 2016年4月2日一、实验内容实验内容为3项,其中第1、2项必做。
1、基本的流水灯。
根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。
每点亮一个LED,采用软件延时一段时间。
2、简单键控的流水灯。
不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。
松手后,又按正序点亮流水灯。
3、键控的流水灯。
上电,不点亮LED,按一下K1键,按正序点亮流水灯。
按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。
二、电路原理图图1 跑马灯实验电路原理图三、程序流程图图2 简单键控的流水灯程序流程图四、源程序1、基本的流水灯#include<reg51.h>#define uint unsigned int#define uchar unsigned charvoid delay( j ) //延时函数data uint j;{ data uint i;while(j--)for(i=0;i<250;i++);}void main( ) //主函数{ data uchar a;a=1; //保证只有一个点亮while(1) //不断循环{ P2=~a; //低电平点亮a=a<<1; //左移一位,右补0if(a==0)a=1; //全0delay(2250);} //流动点亮延时}2、简单键控的流水灯#include<reg51.h>#define uchar unsigned char #define uint unsigned int void delay(uint i){ uchar t;while(i--){for(t=0;t<120;t++);}}void main(){ data uchar a;a=1;while(P2==0xff){ P0=~a;a=a<<1;if(a==0)a=1;delay(250);}while(P2==0xfe){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);}}3、键控的流水灯#include<reg51.h>#define uchar unsigned char #define uint unsigned int void delay(uint i){ uchar t;data uchar b=0xfb;while(i--){ if(P2==0xfe) b=0xfe;if(P2==0xfd) b=0xfd;if(P2==0xfb) b=0xfb;for(t=0;t<120;t++);}}void main(){ data uchar a;a=1;while(P2==0xfe){ P0=~a;a=a<<1;if(a==0)a=1;delay(250);while(P2==0xff){P0=~a;a=a<<1;if(a==0)a=1;delay(250);}}while(P2==0xfd){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);while(P2==0xff){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);}}while(P2==0xfb){ P0=0xff;}}五、实验结果1、基本的流水灯基本流水灯仿真图2、简单键控的流水灯简单键控的流水灯仿真图3、键控的流水灯键控的流水灯仿真图六、思考题回答1、采用I/O口作为输出口时要考虑哪些因素?为什么实验装置中LED要串联一个电阻?答:电压的大小(包括它能感知的最小电压作为高电平),电流的驱动能力等,同时也要要考虑它是否要加上拉电阻。
跑马灯单片机实训报告
一、前言随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。
为了提高我们的实践能力,加强理论知识与实际操作的结合,我们进行了单片机跑马灯实训。
通过本次实训,我们深入了解了单片机的基本原理,掌握了单片机的编程方法,并能够运用所学知识解决实际问题。
二、实训目的1. 熟悉单片机的硬件结构和工作原理。
2. 掌握单片机的编程方法,包括汇编语言和C语言。
3. 学会使用单片机进行简单的外设控制。
4. 提高动手能力和团队合作能力。
三、实训内容1. 实训设备(1)8051单片机开发板(2)LED灯(3)电阻(4)电源2. 实训步骤(1)搭建电路首先,我们需要搭建跑马灯的电路。
将LED灯串联,然后连接到单片机的P1口。
在LED灯的正极和负极之间串联一个电阻,用于限流。
(2)编写程序接下来,我们需要编写跑马灯的程序。
以下是用C语言编写的跑马灯程序:```c#include <reg51.h>#define LED P1void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 1275; j++);}void main() {while (1) {LED = 0x01; // 第一个LED灯亮 delay(500); // 延时LED = 0x02; // 第二个LED灯亮 delay(500); // 延时LED = 0x04; // 第三个LED灯亮 delay(500); // 延时LED = 0x08; // 第四个LED灯亮 delay(500); // 延时LED = 0x10; // 第五个LED灯亮 delay(500); // 延时LED = 0x20; // 第六个LED灯亮 delay(500); // 延时LED = 0x40; // 第七个LED灯亮 delay(500); // 延时LED = 0x80; // 第八个LED灯亮 delay(500); // 延时LED = 0x00; // 所有LED灯熄灭delay(500); // 延时}}```(3)编译程序将编写的程序导入到单片机开发板中,并下载到单片机中。
跑马灯实训报告
摘要:AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
关键字:AT89C51 兼容高效微控制器目录一、实训目的 (2)二、电路设计与生成 (2)1、设计跑马灯 (2)2、生成PCB板 (2)三、程序设计 (3)1、程序设计 (3)2、运行结果 (4)四、实训总结 (4)一、实训目的了解AT89C51管脚的基本功能,学会运用Protel 99 se设计电路,并生成PCB 板,印刷线路板。
使用KEIL C51设计单片机程序,生成HEX文件,将程序下载到单片机内并运行。
从而达到初步掌握简单单片机小程序的设计,制作,调试的目的。
二、电路设计与生成1、设计跑马灯利用单片机最小系统,使P1口八个发光二极管做跑马灯和流水灯显示。
设计的电路图如下:2、生成PCB板(1)保存电路图,单击菜单栏DESIGN项,选择其中的更新PCB;(2)在弹出的对话框中,单击preview change;(3)校对弹出界面中的相关元件的信息,再单击Execute,生成元器件;(4)最后对生成的元器件进行排版,生成如下图所示:三、程序设计1、程序设计#include"reg51.h"unsigned char tab[]={1,2,4,8,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,8,4,2,1};void delay(unsigned char n){ unsigned int d;unsigned char i;for(i=0;i<n;i++)for(d=0;d<30000;d++);}void main(){ unsigned char i,j;while(1){ for(j=0;j<5;j++){for(i=0;i<8;i++){P1=~tab[i];delay(10);}}for(j=0;j<5;j++){for(i=0;i<8;i++){ P1=~tab[8+i];delay(10);}}for(j=0;j<5;j++){for(i=0;i<8;i++){ P1=~tab[i];delay(20);P1=~tab[i+1];delay(20);P1=~tab[i+2];delay(20);}}for(j=0;j<3;j++){for(i=0;i<8;i++){ P1=~tab[i];delay(20);P1=~tab[i+2];delay(30);}}}}2、运行结果八个发光二级管顺时针依次发光,连续五次,再返向五次,完成基本的跑马灯显示,然后再依次亮三个,退一个再亮三个,逐个发光。
基于AT89S52单片机的多模式带音乐跑马灯设计实训报告
基于AT89S52单片机的多模式带音乐跑马灯设计实训报告一、实训目的和要求本次实训的目的是通过设计一个基于AT89S52单片机的多模式带音乐跑马灯,加深对单片机、音乐、跑马灯等知识的理解,提高实际动手能力和创新能力。
要求通过实训设计实现以下功能:1.实现多种跑马灯效果,包括顺序、逆序、左移、右移等;2.实现音乐播放功能,增加趣味性;3.设计合理的电路布局和编程结构,提高系统的稳定性和可靠性。
二、实训内容和方案设计1.系统硬件设计:(1)主控单板:采用AT89S52单片机作为主控制器;(2)驱动器:使用ULN2003芯片驱动数码管和LED灯;(3)时钟电路:使用晶振频率为11.0592MHz的电路;(4)音频输出电路:使用LM386音频放大器作为音频输出电路。
2.程序设计:(1)主程序框架设计:主程序采用无限循环方式,根据按键输入选择跑马灯模式;(2)跑马灯模式设计:根据不同模式选择,使用对应的跑马灯效果函数进行控制;(3)音乐播放设计:通过PWM脉冲宽度调制方式,实现音乐播放功能。
三、实训步骤和实施过程1.硬件部分:(1)按照设计方案进行电路布线和焊接;(3)连接数码管、LED灯和音频输出电路,进行功能测试。
2.软件部分:(1) 在Keil C中建立项目并编写主程序的框架;(2)编写跑马灯效果函数,实现不同的跑马灯模式;(3)编写音乐播放函数,通过PWM方式产生不同频率的方波实现音乐播放;(4)完善主程序框架,添加按键输入和模式选择功能。
四、实训结果和实验分析经过实际测试,多模式带音乐跑马灯设计实现了预期的功能,能够根据用户的选择进行不同的跑马灯模式和音乐播放。
实训过程中,需要注意以下问题:1.硬件部分需要精确连接,尤其是音频输出电路的设计,需要注意电路布线,以防止杂音和干扰。
2.在软件编程过程中,需要合理利用中断和定时器等功能,确保跑马灯的流畅切换和音乐的正常播放。
3.在调试过程中,可以逐步调试并测试每个模块的功能,确保整个系统的稳定性和可靠性。
跑马灯实验报告
跑马灯实验报告
实验题目:跑马灯实验
实验目的:通过搭建跑马灯电路,了解并掌握LED的使用方法。
实验器材:
1. Arduino UNO开发板
2. 面包板
3. 跑马灯电路板(包括LED灯和电阻)
4. 杜邦线若干
实验原理:
跑马灯实验是利用Arduino开发板来控制LED灯的亮灭,从而实现类似跑马灯效果。
Arduino将在不同的引脚上输出高电平或低电平的信号,通过连接到对应的LED灯,使其亮灭,从而实现不同的灯光变化。
实验步骤:
1. 将Arduino UNO开发板插入面包板中心位置,确保与面包板上电源和地线相连。
2. 在面包板上将跑马灯电路板与Arduino开发板连接起来。
跑马灯电路板上有多个LED灯和电阻,每个LED灯和电阻组合连接到一个引脚上。
3. 使用杜邦线将跑马灯电路板与Arduino开发板连接起来。
确保正极连接到正极,负极连接到负极。
4. 在Arduino开发板上打开Arduino IDE软件,编写控制LED灯亮灭的程序。
5. 将程序上传到Arduino开发板中,程序运行后,跑马灯电路板上的LED灯将会按照程序的设定亮灭。
实验结果:
根据实验所编写的程序,跑马灯电路板上的LED灯将会依次亮起,然后逐渐熄灭,再重复以上过程,实现类似跑马灯效果。
实验总结:
通过本次跑马灯实验,我了解并掌握了LED的使用方法和原理,掌握了Arduino开发板的基本使用方法和程序编写方法。
这对于我进一步学习和应用其他电子电路和Arduino的实验具有重要的基础作用。
同时,本次实验也增强了我的动手实践能力和对电路原理的理解能力。
3路跑马灯实验
单片机实验报告一一、 实验目的1. 掌握Keil 集成开发环境基本使用方法;2. 掌握学林51mini 仿真器和下载(编程)器的基本使用方法。
二、 实验主要仪器及环境:Keil ,51单片机,51mini 仿真器,计算机。
三、 实验内容p1口八个灯作3路跑马灯。
分别往端口送三个不同的数, 理解数字和端口的对应关系四、 实验步骤1)复位。
观察记录SFR 、IO 的状态以及第一条指令代码的地址,验证复位后51单片机的状态;2)全速运行。
观察记录LED 的运行情况,与前面下载到单片机运行的情况相比较。
3)复位,采用单步运行(F10),观察记录执行每一条指令后相关寄存器、IO 的变化情况。
4)复位,在延时程序处设置断点,运行到断点时,采用单步跟踪(F11),进入到延时程序,观察记录相关寄存器、IO 的变化情况。
5)修改程序,增大、减少延迟时间,仿真观察LED 变化情况,保存源程序。
五、 实验流程框图、实验程序1、实验流程框图如下:评 阅 开始D02和D05灯亮 延时 D01、D04和D07灯亮 延时 D00、D03和D06灯亮延时返回2、实验程序如下:ORG 0000H ;LJMP MAIN ;ORG 0080H ;MAIN: MOV P1,#0DBH ;11011011--零为亮ACALL DELay ;MOV P1,#06DH ;01101101ACALL DELay ;MOV P1,#0B6H ;10110110ACALL DELay ;AJMP MAIN ;delay: mov r7,#255 ;延时子程序d1: mov r6,#255d2: djnz r6,d2djnz r7,d1retEnd六、实验及程序的分析和讨论为实现3路跑马灯,本次实验三次灯亮灭的变换为一个周期。
MOV P1,#0DBH;11011011实现的是D02和D05灯亮,MOV P1,#06DH;01101101实现的是D01、D04和D07灯亮,MOV P1,#0B6H;10110110实现的是D00、D03和D06灯亮。
单片机内部结构测试报告-跑马灯
单片机内部结构测试报告姓名:苏汉生班别:09机械1班学号:0915020045指导老师:庞志目录1.跑马灯实验12.跑马灯实验23.跑马灯实验34.按键实验、蜂鸣器5.定时器数码管显示6.看门狗实验7.AD数模转换实验程序运行分析一、跑马灯实验11.测试程序名称:跑马灯实验12.程序功能介绍:跑马灯1的程序功能主要是控制LED灯闪亮的顺序,使八个LED灯按照程序设定闪亮。
但对按键和其他元件不起任何控制作用。
3.程序相关的电路图:8位流水灯电路4.程序总体(主函数)流程图:5(1)(3)1ms延时函数:(4)N ms掩饰函数:6.程序涉及的技术解析:unsigned charLED_table[]={0xFE,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF ,0x7F,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0 xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB,0xBD,0x7 E,0xFF,0x00};上述这个语句用到了一维数组,命名为LED_table,该数组一共有37个元素,每一个元素是一个十六进制的数,这些十六进制的数代表着开发板上的LED灯闪亮的规律(输出1为不亮,输出0为亮)。
PORTA = 0xFF;DDRA = 0xFF;DDRE=0XFF;PORTE=0XFF;上述语句是I/O口(端口A寄存器)的初始化,A口的8个脚控制开发板上的8个LED灯。
初始化A口设置为输出,8个引脚分别为1111 1111,LED等为全灭的状态。
单片机与LED灯之间连接了一个74HC573八进制3态非反转透明锁存器,E口2脚接在74HC573锁存器的使能端。
当锁存使能端为高电平1时,锁存对于数据是透明的(也就是说输出同步);当锁存使能端为低电平0时,符合建立时间和保持时间的数据会被锁存。
单片机跑马灯实验报告
单片机跑马灯实验报告摘要:本实验通过使用单片机来控制LED灯进行跑马灯效果的展示。
通过简单的电路连接和编程,我们成功实现了单片机跑马灯的功能。
实验结果表明,单片机跑马灯是一种简单而有效的显示系统,可广泛应用于娱乐和装饰等领域。
引言:跑马灯效果是一种常见且受欢迎的LED显示效果,它可以不断地循环显示LED灯的亮灭轮廓,给人们带来视觉上的愉悦。
单片机是一种可编程的微控制器,广泛应用于电子系统的控制和管理。
在本实验中,我们将利用单片机来实现跑马灯效果,通过编程控制LED灯的亮灭来模拟跑马灯的效果。
材料和方法:本实验所需材料如下:1. 单片机开发板2. LED灯3. 面包板4. 连接线实验步骤:1. 将单片机开发板放置在面包板上,确保连接稳固。
2. 将LED灯连接到面包板上,按照电路图正确连接。
3. 接通电源,将USB线连接到单片机开发板上。
4. 在计算机上打开开发板的编程软件。
5. 编写程序代码,实现跑马灯的效果。
6. 将程序代码下载到单片机开发板中。
7. 观察LED灯的亮灭情况,检查是否实现了跑马灯效果。
结果和讨论:经过实验,我们成功实现了单片机跑马灯的效果。
LED灯按照指定的顺序循环亮灭,产生出跑马灯的效果。
通过调整程序代码,我们可以控制跑马灯的速度和亮灭顺序,使其更加多样化和有趣。
单片机跑马灯是一种简单而有效的LED显示系统。
它可以应用于各种场景,包括室内和室外的装饰灯,新闻标语显示,广告牌等。
跑马灯效果不仅能够吸引人们的目光,还可以起到一定的宣传和广告效果。
总结:通过本次实验,我们了解了单片机的基本原理和应用,并成功实现了单片机跑马灯的效果。
单片机跑马灯具有简单、低成本、可编程等优点,适用于各种需要循环显示效果的场景。
未来,我们可以探索更多有趣的跑马灯效果,并将其应用于实际项目中。
在这个数字化时代,单片机跑马灯有着广阔的应用前景,希望能够为人们的生活和工作带来更多的灵感和乐趣。
单片机实训报告跑马灯
一、实训背景随着科技的发展,单片机作为一种重要的嵌入式系统控制单元,在工业控制、智能家居、物联网等领域得到了广泛的应用。
为了提高学生对单片机程序设计的理解和实践能力,本次实训选择了跑马灯程序设计作为实训项目。
二、实训目的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文件烧录到单片机中。
跑马灯实验报告
跑马灯实验报告单片机跑马灯(流水灯)控制实验报告单片机实验报告姓名:学号:一、实验实现功能:1:计数器功能2:流水灯二、具体操作:1、计数器功能数码管的动态显示。
每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。
2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms。
三、程序流程图四、程序#include <reg50 ;//LED 开关void delay(uint16 i); //延时函数声明void refresh ();// 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main()//主函数{TMOD = 0x01;//定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18;//定时器初值使每次循环为1msTR0 = 0;//定时器0开始作ET0 = 0; // 定时器中断关EA = 0;// 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10];//十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000];//千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000];//千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j;// 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++)//四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20);//延时消抖}}/*************定时器的中断服务函数**************/ void Timer0_Overflow() interrupt 1//定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1;//中断开放ET0 = 1; //定时器0中断开while(1){}}Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{ P0=~(1<<j++);//控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{ j=0;}。
stm32跑马灯实验报告
stm32跑马灯实验报告《STM32跑马灯实验报告》实验目的:本实验旨在通过使用STM32单片机,实现一个简单的跑马灯效果,以加深对STM32单片机的理解和掌握。
实验器材:1. STM32单片机开发板2. USB数据线3. LED灯4. 电阻5. 连线实验原理:STM32单片机是一款功能强大的微控制器,具有丰富的外设和强大的处理能力。
在本实验中,我们利用STM32单片机的GPIO(通用输入输出)功能,控制LED灯的亮灭,从而实现跑马灯效果。
实验步骤:1. 连接STM32单片机开发板和电脑,使用Keil或者其他编程软件进行程序编写。
2. 编写程序,通过控制GPIO口的高低电平,实现LED灯的跑马灯效果。
3. 将编写好的程序下载到STM32单片机开发板中。
4. 连接LED灯和STM32单片机的GPIO口,确保连接正确。
5. 通过电脑或者外部电源给STM32单片机供电,观察LED灯的跑马灯效果。
实验结果:经过实验,我们成功实现了STM32单片机的跑马灯效果。
LED灯在不同的GPIO口控制下,能够呈现出流畅的跑马灯效果,整个实验过程非常顺利。
实验总结:通过本次实验,我们进一步了解了STM32单片机的GPIO控制功能,掌握了如何通过编程实现LED灯的控制。
同时也加深了对STM32单片机的理解和应用能力。
在今后的学习和工作中,我们将进一步深入研究STM32单片机的应用,为实际项目的开发和应用打下坚实的基础。
通过这次实验,我们不仅掌握了STM32单片机的基本应用,还增强了对微控制器的理解和应用能力。
希望通过不断的实验和学习,我们能够更加熟练地运用STM32单片机,为未来的工程项目做出更大的贡献。
stm32跑马灯实验报告
stm32跑马灯实验报告STM32跑马灯实验报告引言:STM32是一款广泛应用于嵌入式系统开发的微控制器,具有高性能、低功耗和丰富的外设接口。
跑马灯实验是入门级的STM32实验项目,通过控制LED灯的亮灭顺序实现跑马灯效果。
本实验报告将详细介绍实验的目的、原理、实施步骤以及实验结果。
一、实验目的跑马灯实验旨在通过STM32的GPIO控制LED灯的亮灭,实现灯光在多个LED之间依次点亮和熄灭的效果。
通过这个实验,我们可以了解STM32的GPIO口的操作方式,掌握基本的STM32编程技巧。
二、实验原理STM32的GPIO口可以设置为输出模式,通过控制GPIO口的电平(高电平或低电平)来控制LED灯的亮灭。
跑马灯实验中,我们将多个LED连接到STM32的不同GPIO口上,通过依次改变GPIO口的电平状态,实现灯光在不同LED之间依次传递的效果。
三、实施步骤1. 准备材料:STM32开发板、杜邦线、若干个LED灯。
2. 连接电路:将多个LED分别连接到STM32的不同GPIO口上,确保极性正确。
3. 创建工程:使用Keil等开发环境创建STM32工程,并配置好相应的引脚。
4. 编写代码:在main函数中编写代码,通过设置GPIO口的电平状态实现跑马灯效果。
5. 编译烧录:编译代码生成可执行文件,并将其烧录到STM32开发板上。
6. 运行实验:将STM32开发板上电,观察LED灯的亮灭顺序是否符合预期。
四、实验结果经过实验,我们成功实现了跑马灯效果。
LED灯在不同的GPIO口之间依次点亮和熄灭,形成了流动的灯光效果。
通过调整代码中GPIO口的顺序和时间延迟,我们还可以改变灯光的流动速度和方向。
实验结果与预期一致,验证了我们的设计和实施的正确性。
五、实验总结通过这个实验,我们对STM32的GPIO控制和编程有了更深入的了解。
我们学会了如何通过改变GPIO口的电平状态来控制外部设备,掌握了基本的STM32编程技巧。
单片机跑马灯实验报告(二)
单片机跑马灯实验报告(二)引言概述:单片机跑马灯实验是一种常见的数字电路实验,也是学习单片机基础应用的重要内容。
本实验旨在通过控制单片机的IO口输出来实现多个LED灯的顺序闪烁,从而模拟跑马灯的效果。
本报告将从硬件组成、电路连接、程序设计、实验步骤和实验结果等方面进行详细阐述。
正文:1. 硬件组成:- 单片机 (例如STC89C52)- 电源 (5V 直流电源)- 电阻 (用于限流)- LED灯 (多个,不同颜色)- 连接线等2. 电路连接:- 连接单片机的引脚与LED灯、电阻等。
一般使用IO口输出来控制LED灯的开关状态,通过改变输出电平来控制灯的亮灭。
具体的连接方式可以根据单片机的datasheet或者开发板的示意图来确定。
3. 程序设计:- 使用C语言编写程序,通过编写程序控制单片机的IO口输出来实现LED灯的顺序闪烁。
基本的程序框架包括引入头文件、定义引脚、设置IO口状态、延时函数和主函数等。
4. 实验步骤:- 硬件连接完毕后,将程序通过编译、烧录等操作下载到单片机中。
- 运行程序,观察LED灯按照设定的顺序是否闪烁,是否达到跑马灯的效果。
- 可以通过改变程序中的一些参数,如延时时间、顺序等,来观察结果的变化。
5. 实验结果:- 根据实验步骤操作后,观察实验效果是否与预期相符。
- 分析实验结果,检查是否有异常情况,如LED灯不亮、顺序错误等,进行排查和修改。
- 还可进行一些扩展实验,如控制节奏变化、增加LED灯数量等。
总结:通过本次实验,我们成功实现了单片机跑马灯的效果,掌握了基本的硬件连接和程序设计方法。
在实验过程中,我们深入了解了单片机的IO口控制和LED灯驱动原理等知识。
通过不断练习和实验,我们能够熟练掌握单片机应用开发的基础技能,为日后深入学习和应用打下了良好的基础。
嵌入式跑马灯实验报告
嵌入式跑马灯实验报告嵌入式跑马灯实验报告引言:嵌入式系统是现代科技中的重要一环,它融合了计算机科学和电子工程的知识,被广泛应用于各个领域。
而跑马灯作为嵌入式系统中的一个经典实验,不仅能够帮助我们理解嵌入式系统的原理,还能够培养我们的动手能力和创新思维。
本篇实验报告将详细介绍嵌入式跑马灯实验的设计与实现过程,并总结实验中的收获和经验。
一、实验背景跑马灯是一种常见的电子显示器件,它能够按照一定的规律闪烁或滚动显示文字、图案等内容。
在本次实验中,我们将使用嵌入式系统来设计一个跑马灯,并通过编程控制其显示效果,从而加深对嵌入式系统的理解和应用。
二、实验材料1. 嵌入式开发板:我们选择了一款基于ARM架构的开发板,具有较高的性能和丰富的外设接口,适合进行跑马灯实验。
2. LED灯:我们使用了8个LED灯作为跑马灯的显示元素,通过控制每个LED的亮灭状态,实现跑马灯的效果。
3. 连接线:用于将开发板和LED灯进行连接,确保信号的传输和控制的准确性。
三、实验设计与实现1. 硬件连接:首先,我们将LED灯与开发板的GPIO口进行连接。
通过查阅开发板的引脚图,我们确定了每个LED灯对应的GPIO引脚,并使用连接线将它们相连。
2. 系统初始化:在嵌入式开发环境中,我们编写了初始化代码,用于配置GPIO 口的工作模式和初始化LED灯的状态。
通过设置引脚为输出模式,并将其电平置低,我们确保了LED灯的初始状态为熄灭。
3. 跑马灯效果实现:为了实现跑马灯的效果,我们编写了一个循环程序。
在每个循环中,我们通过改变LED灯的亮灭状态,实现灯光的闪烁。
具体而言,我们使用一个变量来表示当前亮灯的位置,然后将该位置对应的LED引脚电平置高,其他LED引脚电平置低。
随后,我们通过延时函数控制灯光的亮灭时间,再将亮灯位置变量进行更新,实现灯光的移动效果。
通过不断循环执行该程序,我们可以看到跑马灯的效果。
4. 实验调试:在实验过程中,我们发现了一些问题,例如灯光闪烁过快或过慢、灯光移动的不连续等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、了解跑马灯............................. .... . (2)二、AT89C52 单片机 ........................... .3三、识别与检测元器件 (4)四、电路设计...................................... (4)1. 单片机最小应用系统 (4)2. 复位电路图..................................... .53. 彩灯原理图 (6)4. 彩灯仿真图 (7)5. 彩灯布局图 (8)五、焊接电路 (8)六、程序流程 (9)七、跑马灯程序 (10)八、下载调试程序 (10)九、实训总结 (11)十、微控制器应用技术实训评价表 (12)、了解跑马灯在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面带地下,凡是能想象到的地方几乎都有使用单片机的需求。
现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而没有实现的项目,因此,单片机的应用大有想象和拓展空间。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保真安全等。
但是单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于单片机的应用正从根本上改变者传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件方法来实现了。
这种以软件取代硬件并提高系统系能的控制系统是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
在众多的微控技术实验中,老师为我们选择了用单片机制作8个灯的跑马机这一较为基本的科目,单片机使用我们熟悉的AT89C52型单片机,采用覆铜板手工焊制的方法来制作电路板,使用Proteus进行仿真。
本设计选择采用AT89C51单片机为核心。
AT89C51是一个低电压、高性能CMOS8 位单片机带有K字节的可反复擦写的程序存储器。
和128字节的存取数据存储器RAM这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。
片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O 口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。
另外,AT89C51还可以进行OHZ的静态逻辑操作,并支持两种软件的节电模式。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作并禁止其它所有部件的工作直到下一个复位。
、AT89C52单片机AT89C52共有40条引脚,引脚排列如图2-1所示:图2-1引脚排列图P0 口为了一个8位漏极开路双向I/O 口,每脚课吸收8TTL 门电流。
当PO 口的 管脚第一次写入1时,被定义为高阻输入。
PO 能够用于外部程序数据存储器,它可 被定义为数据/地址的第八位。
在FIASH 编程时,PO 口作为原码输入口,当FIASH 进 行校验时,PO 输出原码,此时PO 外部必须被拉高。
P1 口是一个内部提供上拉电阻的 8位双向I/O 口, 口缓冲器嫩接收输出4TTL 门电流。
P1 口管脚写入1后,被内部上拉高,可用作输入,P1 口被外部下拉为低电 平时,将输出电 流,这是由于内部上拉的缘故。
在 FLASH 编程和校验时,P1 口作为第八位地址接收。
(T2)P1, 0 C (T2EX )P1. 1 C Pl, 2 [ Pl. 3 C Pl.4 [ PL 5 [ Pl.6 C PL7 C RESET [ RXD/F3. 0 C JXD/P3, 1 C INT0/P3.2 C INT1/P3, 3 C T0/P3.4 C T1/P3, 5 [ WP3.6 C W/P3. 7 C XTAL2 [ XTAL1 C PDIP Vss C40 390 037 36 35 7 34*3 O '」0 0v 10 31 1130 12 29 1328 1427 fa 15 26 16 25 17 24 18 23 19 22 202101234567 nV nV D-D AAAAAAAA D ////////p 012345 6 7V c ......... coooooooo V p F F F p F p pN E SP3 2 1 JI JI iA D D D AAA 54 38 D Af,JJP2 口为一个内部上拉电阻的8位双向I/O 口,P2缓冲器可接收,输出4个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入是,“ 1” P2 口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址高八位。
在给出地址“ 1”时它利用内部上位优势,当对外部八位地址数据存储器进行续写时,P2 口输出其特殊功能寄存器的内容。
P2 口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL门电流。
P3 口写当入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。
P3 口也可作为AT89C51的一些特殊功能口:P3.0RXD(串行输入口);P3.1TXD (串行输出口);P3.2/INT1(外部中断0);P3.3/INT1(外部中断1);P3.4T0(记时器0 外部输入);P3.5T1 (记时器1外部输入);P3.6/WR (外部数据存储器写选通);P3.7/RD(外部数据存储器选通)。
三、识别与检测元器件AT89C52单片机、晶振12MHZ 2个瓷片电容30PF 1个10uF电解电容、9个发光二极管、排阻、按钮按键开关、USB接口。
四、电路设计1.单片机最小应用系统,如图4-1所示图4-1 最小应用系统2、RST端口为复位输入,复位电路图。
如图4-2所示。
R.IIkSD图4-2 复位电路图3、彩灯原理图,如图4-3所示。
-4-三h图4-3 彩灯原理图4、彩灯仿真图,如图4-4所示。
C11nFC2X1CRYSTALU1 19 IXTAL1 1nF18 XTAL2R9 _O10k RSTP0.0/A P0.1/AP0.2/A P0.3/ P0.4/A P0.5/P0.6/AP0.7/AD9D8 •超 f AD3 •草 少DL D331 2 3 4 5 6 7 8RN116"12 F"T o T"uF293031PSEN ALE EAP2.0/ P2.1/ P2.2/ P2.3/ P2.4/P2.5〃 P2.6/— P2.7/A153 Ai 30012345678P1.0 P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7P3.0/RXD ?P3.1/TXD 1 P3._2/I P3.3/I P3.4 P35 P3.6/ P3.7/4 LED-GREENAT89C51图4-4彩灯仿真图5、彩灯布局图,如图4-5所示。
图4-5彩灯布局图五、焊接电路按电路装配图,如图5-1。
按顺序将元器件焊接到万能板上,并用导线对其进行连接,然后对其进行检测。
图5-1电路装配图C3R1Y1 :U1六、程序流程:实现小灯随开关闭合亮的程流程图,如图6-1所示图6-1 流程图七、跑马灯程序:ORG 00H LJMP START ORG 30HSTART:MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A LJMP LOOP DELAY:MOV R5,#5 D1: MOV R6,#200 D2: MOV R7,#250 D3: DJNZ R7,D3DJNZ R6,D2 DJNZ R5,D1 RET END八、下载调试程序在计算机上进入单片机下载页面,将跑马灯程序进行编写,检查无错后,运行。
再 将程序下载到AT89C52单片机芯片中,最后把芯片插入跑马灯PCB 板上,用USE 数据线 连接,跑马灯正常运行。
分别对各模块进行调试,直至硬件电路全部调试成功。
调试成功后,发光二极管从上至下,红灯依次点亮。
当按 S1复位键时,将又从上至下依次点亮。
延时时间:T={ (2*250+1+2) *200+1+2}*5+1+2=503018um九、实训总结通过这一周单片机实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,本次系统以AT89C52单片机为核心部件,利用汇编软件编程,通过usb送电和8个发光二极管显示实现了基本跑马灯功能,能实现本设计题目的基本要求和发挥部分。
在这次实训中既锻炼了我们的焊接能力同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历使我终身受益,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。
这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。
十、微控制器应用技术实训评价表。