搜档网
当前位置:搜档网 › 裸机定时器中断控制LED灯程序设计实验报告

裸机定时器中断控制LED灯程序设计实验报告

裸机定时器中断控制LED灯程序设计实验报告
裸机定时器中断控制LED灯程序设计实验报告

裸机定时器中断控制LED灯程序设计

一、实验要求:基于mini2440开发板,设计裸机定时器中断控制LED灯闪烁的程序。

二.设计目的

1,巩固学习嵌入式软件方面的基本知识,进一步熟悉基本概念。

2,熟练常用控件,文件,图形等方面的操作了解基本的流程。

3,运用所用学的嵌入式知识,编写出较为实用的小软件,增进对一些实际问题的软,硬件知识的掌握。

4,培养查阅资料,独立思考问题的能力。

三. 实验步骤:

四.基本思路及关键问题的解决方法;

基本思路:

1. 按照步骤程序设计原理说明,使用”CodeWarrior for ARM Developer Suite”软件编写程序并进行编译,建立一个新的文件单击【File】菜单中的【New File】选项,然后出现下面的对话框,输入文件名(加上后缀“.c”),单击保存按钮,在编译过程中如果出现错误,修改程序直到没有错误为止,编译过程中出现警告一般可以不必考虑,但特殊时也要通过修改程序消除警告。程序编写完成后,将程序所在文件保存到2440test.mcp中,如图所示:

2.用开发板测试程序代码:

(1)首先设置开发板的拨动开关S2 为Nor Flash 启动,连接好附带的USB 线和电源(可以不必连接串口线)。

(2)设置超级终端

(3)开机进入BIOS 模式,此时开发板上的绿色LED1 会呈现闪烁状态,其启动界面,如下图:

输入”d”

(4)安装USB 下载驱动

(5)点击DNW 程序的“USB Port” “Transmit”,选择这个2440test.mcp文件,接着点“打开”,这样就开始下载了

五.流程图及电路原理图

1.绘制所需的流程图,如图所示:

六.课程设计心得体会

此次课程设计中我们的收获:

我了解到了和小组成员合作的愉快,我意识到了知识的乐趣性,并感觉到当知识运用于实践的时候是一件多么幸福的事情。我也发现自己的知识功底还远远不够。平时不仅要将知识点理解掌握,还得勤动手做实验。在以后的学习中我会更努力,在掌握理论知识的基础上,提高自己的动手能力。

七.源程序

#define GLOBAL_CLK 1

#include

#include

#include "def.h"

#include "option.h"

#include "2440addr.h"

#include "2440lib.h"

#include "2440slib.h"

#include "mmu.h"

#include "profile.h"

#include "memtest.h"

void Clk0_Enable(int clock_sel);

void Clk1_Enable(int clock_sel);

void Clk0_Disable(void);

void Clk1_Disable(void);

volatile U32 downloadAddress;

void (*restart)(void)=(void (*)(void))0x0; volatile unsigned char *downPt;

volatile U32 downloadFileSize;

volatile U16 checkSum;

volatile unsigned int err=0;

volatile U32 totalDmaCount;

volatile int isUsbdSetConfiguration;

#define GPB5_out (1<<(5*2)) //led1

#define GPB6_out (1<<(6*2)) //led2

#define GPB7_out (1<<(7*2)) //led3

#define GPB8_out (1<<(8*2)) //led4

#define led1_on ~(1<<5)

#define led2_on ~(1<<6)

#define led3_on ~(1<<7)

#define led4_on ~(1<<8)

#define led1_off (1<<5)

#define led2_off (1<<6)

#define led3_off (1<<7)

#define led4_off (1<<8)

void __irq Timer0_handle();

extern void MMU_Init();

void Main(void)

{

//U32 mpll_val=0;

ChangeMPllValue(92,4,1);

ChangeClockDivider(12,12);

//rCLKDIVN&=~0x7;

//rCLKDIVN|= 0x3;

MMU_Init();

rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out; //设置GPB5-8为输出rGPBDAT=led1_off|led2_off|led3_off|led4_off; //led灭

//配置中断寄存器

rSRCPND = rSRCPND | (0x1<<10);

rINTPND = rINTPND | (0x1<<10);

rINTMSK = ~(0x1<<10); //打开定时器0中断

rTCFG0|=0xf9;//预定标值=249

rTCFG1|=0x01;//定时器0进行4分频,f=50M/(249+1)/4=50KHZ

rTCNTB0=25000;//定时时间=25000*(1/f)=0.5s

rTCON|=(1<<1); // 手动更新

rTCON=0x09; // 自动加载,清“手动更新”位,启动定时器0

pISR_TIMER0 =(U32)Timer0_handle;

//装入定时器0中断函数地址 pISR_TIMER0=(U32)Timer0_handle;

while(1);

}

void __irq Timer0_handle() //中断服务函数

{

static unsigned int count;

count++;

ClearPending(BIT_TIMER0);//清SRCPND,INTPND的定时器0中断标志位if(count%4==1) //第一次进入中断,led1亮,其他灭

{

rGPBDAT=led2_off|led3_off|led4_off;

}

if(count%4==2) //第二次进入中断,led2亮,其他灭

{

rGPBDAT=led1_off|led3_off|led4_off;

}

if(count%4==3) //第三次进入中断,led3亮,其他灭

{

rGPBDAT=led1_off|led2_off|led4_off;

}

if(count%4==0) //第四次进入中断,led4亮,其他灭

{

rGPBDAT=led1_off|led2_off|led3_off;

}

}

八.参考文献

[1]嵌入式系统设计与开发实例详解----------基于ARM的应用.北京航空航天大学出版社

[2]嵌入式系统原理及接口技术.清华大学出版社

[3]单片机原理与应用设计.电子工业出版社

实验五 流水灯与中断控制

一、实验设备 (1)PC一台 (2)单片机多功能试验板一块 (3)KEIL uVision 4.22 集成开发环境、STC-ISP烧录软件、串口调试助手(电子工程基础实验QQ群文件共享) 二、实验目的 (1)了解单片机的4组I/O端口 (2)掌握通过串口通信控制LED灯的方法 (3)复习巩固C语言知识 三、实验要求与任务 使用KEIL uVision 4软件新建一个C51内核工程,步骤如下: (1)在”Soruce Group 1”新建C程序文件,文件名:main.c (2)在工程中新建两个组,名称分别为com和myled. (3)在工程文件对应的目录下,再新建两个目录,com文件夹和myled文件夹。 (4)在工程中新建四个文件,分别名称com.c, com.h, myled.c, myled.h,前两个文件保存在com文件夹中,后两个文件保存在myled文件夹中。 (5)将共享资料的“单片机开发板资料\学习版资料\例程\LED\driver”目录及文件拷贝到工程文件所在的目录中,并在工程中新建driver组,把driver文件夹下的 两个文件添加进去。(提示,我们要使用它提供的延时函数) 文件的组织结构如下图: 实验任务: 通过串口助手输入分别输入字符‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,分别完成以下功能: 输入’0’,打开led1到led5共5个灯,它们处于常亮状态。 输入’1’,关闭led1到led5共5个灯。 输入’2’,led1到led5这5个灯间隔0.5秒轮流点亮(流水灯效果)。

输入’3’,led1、led3、led5这3个灯间隔0.5秒轮流点亮(流水灯效果)。 输入’4’,led2、led4这3个灯间隔0.5秒轮流点亮(流水灯效果)。 四、示例代码 1. 实例代码 https://www.sodocs.net/doc/1a9015810.html,.c文件(不需要修改,可参考主程序中如何调用它里面的函数)

(完整word版)51单片机流水灯

51单片机的流水灯控制 班级:100712 姓名:全建冲 学号:10071047

一、设计要求 用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。 二、电路原理图 原理图分析: 本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uint i=0; uchar a=0xfe; void main() { TMOD=0x01;//设置工作方式为定时器0,16位手动重装初值 TH0=(65536-46080)/256;//50毫秒定时赋初值 TL0=(65536-46080)%256; TR0=1;//启动定时器0 while(1) { If(TF==1)//读溢出标志位 { TH0=(65536-46080)/256;//重新赋初值 TL0=(65536-46080)%256;

i++; if(i==10)//500毫秒定时 { i=0; P1=a;//P1端口赋值 a=_crol_(a,1);//循环左移 } TF=0;//清除定时器溢出标志 } } } 程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否则定时器无法再次溢出,利用标志i读取10次即可达到500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。 2.中断定时器控制 #include

LED灯实验报告

mcs-51单片机接口技术实验 适用:电气类专业本科学生 实验报告 实验一熟悉proteus仿真模拟器,led花样表演 一、实验目的 掌握以下方法: 1.在proteus的环境下,设计硬件原理图; 2.在keilc集成环境下设计c51语言程序; 2.在proteus的环境下,将硬件原理图与软件联接仿真运行。 二、实验环境 1.个人微机,windows操作系统 2.proteus仿真模拟器 3.keilc编程 三、实验题目 基本题:使用8051的并口带动8个led发光二极管显示一种花样表演。提高题:使用一个键切换实现3种以上花样表演。 四、实验类型: 学习、模仿与简单设计型。 五、实验步骤: 0、进入isis,先选择需要的元件,然后设计电原理图,保存文件; 1、在keilc软件集成环境下编写源程序,编译工程文件; 2、将所设计的硬件原理图与目标代码程序相联接; 4、按play键,仿真运行程序。 附,可能用到的元件名称: cpu:at89c51或任一种mcs-51家族cpu; 晶振:crystal; 电容器:capacitors,选22pf 电解电容:cap-elec或genelect10u16v 复位电阻:minres10k 限流电阻:minres330r 按键:button led:led-blue/red/yellow或diode-led (一)接线图如下: (二).基础花样 (四)程序流程图 (五)c程序 #include <> #define uint unsigned int #define uchar unsigned char const tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, /*正向流水灯*/ 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,};/*反向流水灯*/ const tab2[]={0xff,0x00,0xff,0x00,0xff,0x00,}; void delay() { uint i,j; for(i=0;i<256;i++) for(j=0;j<256;j++)

C51单片机实验报告流水灯交通灯定时器双机交互时钟

C51单片机实验报告流水灯交通灯定时器双机交互时钟学号:31100800 班级:自动化10 班姓名:张指导老师:胡 2019.12 单片机核心板实验要求 一、流水灯实验 1 、实验目的: 1 ) 简单I/O 引脚的输出 2 ) 掌握软件延时编程方法 3 ) 简单按键输入捕获判断2 、完成功能要求 1 ) 开机是点亮1 2 发光二极管,闪烁三下2 ) 按照顺时针循环依次点亮发光二极管 3 ) 通过按键将发光二极管的显示改为顺逆时针方式 二、定时器或实时时钟实验 1 、实验目的 1 ) 数码管动态显示技术 2 ) 定时器的应用 3 ) 按键功能定义2 、完成功能要求 1 ) 通过按键可以设定定时时间,启动定时器,定时时间到,让1 2 个发光二极管闪烁,完成定时 器功能。 2 ) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别 显示分钟和秒)。 上述二个功能至少完成一种功能。 三、双机通信实验 1 、实验目的 UART 串行通信接口技术应用2 、完成功能要求 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 四、交通灯实验 1 、实验目的

1 )按键、数码管、发光二极管综合应用编程技术 2 )数据存储于EEPRO的技术 (也可以不使用) 3 )定时中断技术 4 )按键中断技术 2 、完成功能要求 1 )对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2 )设定参数掉电后不丢失(如果不使用EEPRO,此功能可以不实现)。 3 )紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。 实验一流水灯实验 一、实验目的 1 )简单I/O 引脚的输出 2 )掌握软件延时编程方法 3 )简单按键输入捕获判断二、实验实现的功能 1 )开机是点亮12发光二极管,闪烁三下 2 )按照顺时针循环依次点亮发光二极管 3 )通过按键将发光二极管的显示改为顺逆时针方式三、 系统硬件设计 1 )如单片机核心板所示的硬件电路。四、系统软件设计 设计思路: 1 )定义数组使得调用数组可以使led 灯能够顺时针和逆时针显示; 2 )将按键的输入端全部置零,做单独按键使用; 3 )利用“ while ”循环使得数码管可以闪烁三下; 4 )利用“ for ”循环使得小灯能够依次点亮一个周期; 5 )将以上思想汇总,编程,实现功能。程序详见附录。 五、实验过程中遇到的问题及解决方法 1 )刚开始不知道怎样只设置一个管脚(如POP),查阅相关资料后知道表示方法, 并学会了用“ sbit ”语句定义,方便多了。 2)对于C语言的很多东西都不知道,语句的用法也不清楚,重新看了C语言,用到什 么看什么很快就懂了。 3 )主程序中没有用延时程序和死循环导致led 不能点亮,请教同学以后才知道。 4 )对于按键只是不了解,看书又很模糊,看了网上“ KINGST 工作室”也就是“手把手教你学单片机”的视频后很清楚明了,之后好多东西也是从上边学到,就不再赘述了。 指导老师签字:日期: 实验二定时器或实时时钟实验 一、实验目的 1 )数码管动态显示技术 2 )定时器的应用 3 )按键功能定义二、实验实现的功能 1 )通过按键可以设定定时时间,启动定时器,定时时间到,让12个发 光二极管闪烁,完成定时器功能。 2 )实时时钟,可以设定当前时间,完成钟表功能(四位数码管

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED 灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。 二、硬件原理图 三、实验程序 ORG 00H AJMP START ORG 001BH AJMP INT ORG 0100H START: MOV SP,#60H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA

INT: PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#B0H MOV TH1,#3CH SETB TR1 DJNZ R1,EXIT MOV R1,#20 MOV DPTR,#DATA MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0 ANL 00,#07H EXIT: POP DPH

POP PSW POP ACC RETI DATA: DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END 四、实验功能 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去. 五、实验总结 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。 尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我

定时器控制流水灯

成绩 信息与通信工程学院实验报告 (操作性实验) 课程名称:微机原理与微控制器应用 实验题目:c51单片机的定时器实验指导教师: 班级: 学号:学生姓名: 一、实验目的和任务 1.掌握定时器中断的编程方法。 2.掌握keil C51集成开发环境在硬件仿真条件下各参数的设置。 二、实验仪器及器件 硬件:电脑一台、微机原理与单片机试验箱:51开发板、开关及LED显示单元、导线若干 软件:keil uVision4 三、实验内容及电路图 利用实验板上的八个LED灯作显示,利用定时器中断编写中断一次为50ms的定时程序,控制单片机定时器进行定时,总定时时间为0.75ms。

四、流程图与程序 #include "SST89x5x4.h" #include int temp=0x01,num=0; void T0Int() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num++; if(num==15) { num=0; P1=_crol_(temp,1);

temp=P1; } } void main() { EA=1; ET0=1; TMOD=0X01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TR0=1; while(1); } 五、实验结果 八个LED灯由左往右依次亮起,并且每个LED灯点亮时间大约为0.75m。

六、实验数据分析及处理 从实验现象来看,LED灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。 七、实验结论与感悟(或讨论)

单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器 指导教师: 专业班级: 姓名: 学号: 联系方式:

一、任务要求 实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。 实验内容:利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。 3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 4. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 使用按键(KINT)控制LED灯闪烁模式的切换。 二、设计思路 C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为 1.027s,可以满足0.5Hz是的定时要求。 基础部分: 给TMOD赋值10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。 要使闪烁持续10s,三种模式需要各循环40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。 为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

嵌入式系统流水灯、按键、定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式:◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。

由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。

LED调光实验报告

LED调光实验报告 高亮度发光二极管(LED)在各种领域应用普及,并要求LED具备有调光功能。在现在的几种调光技术中,从简单的可变电阻负载到复杂的脉冲宽度调制(PWM)开关,每一种方法均有其利弊。PWM调光的效率最高,电流控制也最精准。本文以LED驱动器LM3405为例,论述LED在调光时的特性,例如亮度与正向电流的关系、波长的变化(色移)和控制器的工作周期限制等。 由于LED的功率低于1 W,所以可用任何类型的电压源(开关器、晶体管)和串串联电阻建构一个电流源。对于少数光线输出端电流的改变而造成亮度和颜色的变化,人的肉眼是不容易察觉出来。不过,一旦将多个LED串联,该稳压器便必需担当电流源的角色。这是因为LED的正向电压VF会随正向电流IF变化,图1是LED波长随着正向电流IF变化图,而该变化对于每个LED都不相同的,即使是同一批产品也有区别。在较大的电流下,光线的强度变化通常约为20%。而 LED制造商一般都会采用较大的VF范围来增加亮度和颜色,因此上述情况尤其突出。然而,除了电流外,正向电压还会受到温度影响。假如只采用镇流电阻器,则光源的颜色和亮度变化很大,而唯一可确保色温稳定的方法是稳定前正向电流IF。 大部分设计人员只习惯为LED设计稳压器,但在设计电流调节器方面显然有不同的要求。电压输出必须要配合固定的输出电流。虽

然在大多数应用中, LED驱动器的输出电流可容许误差±10%,而直流电流的输出纹波更可高达20%,一旦纹波超出20%,人的肉眼便会察觉到亮度的变化,假如输出纹波进一步增加到40%,肉眼就无法承受。 一般而言,电流调节器的设计都需使用比较大的电感以使电感电流IL的变化少于20%。这里可采用LM3405,即使电感由于1.6 MHz 的高开关频率而变得较小,仍可发挥很好的效用。LM3405性能参数如下: 控制方法: 封装:电流模式 TSOT-6 最大输入电压: 15V 应用:工业照明 1A 1~22uF 4.7~10uH 驱动电流:输出电容:电感: 3、脉冲宽度调制调光技术

电工LED灯手工制作实验报告

浙江农林大学 天目学院 实习(课程设计)报告 课程电工及电子技术实习 系(部)工程技术系 指导老师 专业班级汽车服务101班 学生姓名 学号 一、原理图及原理说明

LED(Light Emitting Diode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片, 晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P 型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。 二、元器件清单 330欧姆电阻一个 105/400V电容一个开关一个

390欧姆电阻一个发光管一个整流二极管五个 发光二极管 18个开关按钮一个压簧一个 充电按钮一个充电插头一个插头支架一个 开关线路板一个充电线路板一个自功丝 4个 导线 8根 led线路板一个电瓶一个 镜片一个反光杯一个灯罩一个 装饰片一个外壳一套金属软管一个 三、调试 为了方便调试,LED 和电池夹可暂不安装,待调试结束后再另行安装。小夜灯控制电路和电源电路相互独立,这两部分电路的调试也应分开进行,以免彼此牵扯而影响电路测试和故障判断。 控制电路调试时先将 LED 的连接线按电路原理图焊接在控制电路板上,再在控制电路板上两电源输入端以及 RXD 和 TXD 端各焊接 1 根导线,分别与电源和编程电路相连。电路连接妥当后仔细检查几遍,确认无误后即可上电将程序下载至单片机内,之后重新上电对按键功能和 LED 状态进行全面测试。 电源电路调试时,在电源电路板上两电源输入端各焊接 1 根导线与电源相连,这里同样使用稳压电源来调试。检查电路时要特别注意以上几点。与调试控制电路一样,功耗问题不能轻易忽略,调试时要有足够的耐心,力争将功耗降至最低,这一点对调试采用电池供电的电路至关重要。四、心得体会 这是大学学习阶段一次非常难得的理论与实际相结合的机会,通过这次的设计,我摆脱了单纯的理论知识学习状态,.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。在制作过程中,不断调试和修改序,提高了对单片机的应用能力,分析问题和解决问题的能力。实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际问题的能力,同时也提高我查阅文献资料、设计手册以及设计规范等其他专业能力水平,提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。顺利如期的完成本次实习给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,通过对单片机的系统学习。对一些 LED的设计做了一些必要的改进。同时对自己的改进也做了真实的仿真。达到了预期的目的。但是在改进的过程里也发现了自己的很多的不足。这会在以后的学习生活里不断提高,逐步完善自己。

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________院(部)____________________________专业________________ 班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 01 信息科学技术学院 计算机科学与技术0961 2012 12 27

摘要 (2) 1、单片机概述 (2) 2、仿真软件介绍 (2) 3、需求分析 (2) 一、课程设计目的 (3) 二、课程设计要求 (3) 三、实验内容 (3) 1、设计任务与要求 (3) 2、系统分析 (3) 1).硬件电路设计(画出原理图、接线图) (4) 2)软件框图 (5) 3、用keil建项目流程 (7) 4、程序清单 (7) 4、系统调试 (9) 四、设计总结(结论) (10)

摘要 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。 关键字:单片机、LED流水灯 1、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3 新建工程:菜单“Preject->New Preject”,保存为*.uv2,选择芯片型号,copy否 新建文件:菜单“File->New”,保存为*.c,编写程序 将源文件添加到工程:在左侧project workspace的source group1点右键选择addfile加入*.c 设置工程:点菜单栏上的,选Target,设晶振值;选Output,点create Hex file以生成少些文件;选Debug,选择软件仿真(simulator)或硬件仿真(Keil Monitor)方式。 编译链接:点菜单栏上的进行编译,或点菜单栏上的进行编译链接,或点菜单栏上的进行重新编译链接,或点菜单栏上的停止编译。 编译链接后生成*.hex文件,可烧写到单片机。 (2).Proteus 使用Proteus仿真 点击单片机,在Program Files处选择*.hex文件,OK,进行仿真 RESPACK--8 排阻,就是好多电阻连载一起,有一个公共端,1端为公共端接VCC(上拉)或地(下拉) 一般接在51单片机P0口,因P0口内没有上拉电阻,不能输出高电平,所以要接上拉电阻。 3、需求分析

LED灯泡设计与制作实验报告

西安邮电大学 专业课程设计报告书 系部名称: 学生姓名:) 专业名称: 班级: 实习时间:2013年6月3日至2013年6月14日

LED灯泡设计与制作实验报告 【一】项目需求分析 课程设计分为三个独立模块 一、Tracepro学习及操作,完成LED建模与仿真; 二、LED灯泡驱动电路反向设计(完成驱动的原理图设计和PCB版的生成及仿真); 三、LED球形灯泡焊接制作。 【二】实施方案及本人承担的工作 实施方案: 一、第一步骤是安装tracepro软件,并了解其页面基本情况。 第二步骤是熟悉光学仿真软件Tracepro,完成LED灯珠的光学仿真设计。 第三步骤是掌握LED灯珠设计,并了解实际操作过程原理以及LED二次光学设计基本原理。 二、通过分析现有LED驱动电路,对其进行反向设计,画出其驱动电路,并理解其实现原 理。完成LED驱动电路原理图,并仿真得出其结果 三、焊接完成一个LED灯泡,并能点亮。 本人承担的工作: 在本次专业课程设计中,我和我的搭档从一开始就认真对待。所以每一部分的完成都是我们共同努力的结果。从最开始的LED灯外形的绘制,LED灯珠的光学仿真设计,驱动电路的设计,LED驱动电路原理图,PCB原理图并仿真,我们俩都有完成各自的,在之后的交流和共同学习下完成最好的一份。LDE灯的焊接是我们两共同努力完成的。

【三】程序框图 【四】实验结果 首先我们利用Tracepro光学仿真软件制作出了灯罩的实体图以及LED灯珠仿真,并实现了其光学仿真;其次用Protel 99SE软件制作出了驱动电路原理图以并生成PCB板然后做了仿真;最后在了解了LED灯的工作原理,掌握了它的驱动电路之后,我们焊接了自己的LED灯,并使其点亮。

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

单片机跑马灯(流水灯)控制实验报告

单片机实验报告 姓名: 学号: 一、 实验实现功能: 1:计数器功能 2:流水灯 二、 具体操作: 1、计数器功能 数码管的动态显示。每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。 2、流水灯 当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。 三、 程序流程图 开始 定时器T0 设置初值,启动定时器, 打开中断 复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开

四、程序 #include typedef unsigned char uint8; typedef unsigned int uint16; //类型定义 sbit P2_1 = P2^1; sbit P2_2 = P2^2; sbit P2_3 = P2^3; sbit P2_4 = P2^4; //位声明四个数码管开关 sbit Key2 = P3^2; sbit Key3 = P3^3; //位声明2个按键K2和K3 sbit Ledk = P2^0 ; //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; //定时器初值使每次循环为1ms TR0 = 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]; //千位

LED小灯实验报告

led流水灯的设计报告 课程名称: led流水灯设计学院:大数据与信息工程学院专业:姓名:学号:年级:任课教师: 一、实验的背景和意义 单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把cpu随机存储器ram、只读存储器rom、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。 本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的i/o引脚。系统已采用mcs —51系列单片机为中心器件来设计led流水灯系统,实现led左循环显示,并实现循环的速度可调。二、设计目的 1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2.掌握汇编语言程序和c语言程序设计方法。 3.培养实践技能,提高分析和解决实际问题的能力。三、设计任务及要求 1.用个发光二极管作为显示电路 2.实现led动态显示 3.能连续循环显示 四、设计思路 led流水灯实际上是一个带有八个放光二极管的单片机最小应用系统,即为由晶振led 灯、电阻、电容器、电源等电路和必要的软件组成的单个单片机。 如果要让接在p1.0口的led1亮起来,那么只需要把p1.0口的电平变为低电平就可以了;相反,如果要让接在p1.0口的led1熄灭,那么只需要把p1.0口的电平变为高电平就可以了;同理,接在p1.1—p1.7口的其他7个led的点亮的熄灭的方法同led1。因此,只要使接在单片机上的八个led灯在接通电源后除了最右端一个其余都亮,一秒后倒数第二个熄灭其余都亮,如此循环往复,就可以达到流水的效果。 在此我们还需注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令时的时间很短,我们在控制二极管亮灭的时候应该延迟一段时间,否则我们就看不到“流水”的效果了。 五、模块介绍 采用at89c51作为主控芯片,将p1分别接8个led实现显示,采用汇编语言编程和c 语言实现。方案框图如下: 图2.1 六、元件清单 硬件设计主要是介绍构成此led流水灯单灯左移电路的硬件,对原理图、电阻电容模块的主要原件,及电路设计加以解释说明,模块化的加以说明,才不会相互混淆便于准确的说明。 at89c51单片机简介 1、主要特点有: at89c51是4k字节闪速存储器,128字节内部ram,32个i/o口线,2个16位定时器/

C51单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201学年第1 学期) 课程名称:单片机技术 开课实验室: 年月日

一、实验目的 1. 掌握定时器 T0、T1 的方式选择与编程方法,了解中断服务程序的设计方法, 学会实时程序的调试技巧。 2. 掌握 LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别就是外部中断请求 0、外部中断请求 1、定时器/计数器 0 溢出中断请求、定时器/计数器 0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器 TCON 与 SCON 中。当中断源请求中断时,相应标志分别由 TCON 与SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器 IE、IP、TCON (用六位)与 SCON(用二位), 分别用于控制中断的类型、中断的开/关与各种中断源的优先级别。中断程序由中断控制程序(主程序)与中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过 interrupt m 进行修饰。在 C51 程序设计中,当函数定义时用了 interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段与尾段,并按 MCS-51 系统中断的处理方式自动把它安排在 程序存储器中的相应位置。 在该修饰符中,m 的取值为 0~31,对应的中断情况如下: 0——外部中断 0 1——定时/计数器 T0 2——外部中断 1 3——定时/计数器 T1 4——串行口中断 5——定时/计数器 T2 其它值预留。 89C51 单片机内设置了两个可编程的 16 位定时器 T0 与 T1,通过编程,可以设定为定时器与外部计数方式。T1 还可以作为其串行口的波特率发生器。 2. 定时器 T0 由特殊功能寄存器 TL0 与 TH0 构成,定时器 T1 由 TH1 与TL1 构成, 特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行。定时器的中断由中断允许寄存器 IE,中断优先权寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为 000BH,T1 的中断入口地址为 001BH。 定时器的编程包括: 1) 置工作方式。 2) 置计数初值。

相关主题