文档库 最新最全的文档下载
当前位置:文档库 › 8086和825574LS373控制LED流水灯课设

8086和825574LS373控制LED流水灯课设

8086和825574LS373控制LED流水灯课设
8086和825574LS373控制LED流水灯课设

课程设计任务书

专业自动化班级** 姓名** 设计起止日期2013.12.16~2013.12.20

设计题目:多路流水灯控制程序的设计

设计任务(主要技术参数):

按要求设计出模拟多路流水灯控制系统。通过8086系统总线单元和输入输出并行接口8255单元、74LS373以及LED显示单元进行连接,并应用所设计的程序使连接好的线路工作正常。

指导教师评语:

成绩:签字:

年月日

1 引言

随着科学技术的不断发展 ,在高精尖科技的面前微型计算机的应用是无处不在的,所以要学好微机原理及其应用。对于本次课程设计,按要求通过汇编语言设计出模拟热水器控制系统。根据提供的8086系统总线单元、输入输出并行接口8255单元、74LS373以及LED 显示进行连接,并应用所设计的程序使连接好的线路工作正常。

本次课程设计的题目为“多路流水灯控制程序的设计”,并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。

应用程序设计的具体内容如下:

在本实验中要求用8255A 的B 口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,故基本的接线。在PA 0-PA 7口分别对应的接八个发光二极管。在

PB 0-PB 7口分别对应的接八个发光二极管。使16只彩灯从左往右依次点亮然后熄灭。使

16只彩灯从右往左依次点亮后熄灭。使16只彩灯闪烁。接着重复以上动作,这样一直循环下去。

2 设计方案论证

2.1设计原理

本次课程设计的内容为模拟流光灯控制系统设计与实现。根据需要,需选择的芯片有74LS373变换芯片,8255可编程并行接口。

1)设计题目分析

编写程序,使用8255的A 口和B 口均为输出,实现16位流水灯显示效果

2)功能扩展

i :将流水灯设计成可以正着流水,也可以倒着流水

ii :通过开关对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速

3)总体方案设计分析

要求用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C口的地两位接两个开关,实现两个扩展功能的控制。

i:基本流水灯显示电路

A口和B口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A口进行赋值,用BL对B口进行赋值,通过演示一段时间再对BH BL进行移位和输出,实现流水灯的效果。

ii:正反方向选择

把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时B口与A口相反。

iii:快慢速度控制

把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。

2.2设计环境及设备

PC机一台、windows XP系统、实验箱,导线若干。

8255并口:用做接口芯片,与数码管相连。

74LS373:用于锁存数据。

LED:用作彩灯。

2.3模拟流光灯工作原理

1)左向移动流水灯

(1) 现象

左向移动流水灯的实验现象是首先最左边的灯亮,然后是最左边的灯灭,此时左起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。

(2) 原理

左向移动流水灯是根据发光二极管的显示原理,首先点亮最右的二极管,然后进位置一,通过带进位的循环左移指令编写程序以实现模拟流水灯的左向移动。

2)右向移动流水灯

(1) 现象

右向移动流水灯的实验现象是首先最右边的灯亮,然后是最右边的灯灭,此时右起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。

(2) 原理

右向移动流水灯是根据发光二极管的显示原理,首先点亮最左的二极管,然后进位置一,通过带进位的循环右移指令编写程序以实现模拟流水灯的右向移

图1设计系统框图

3 系统硬件设计

3.1 8086简介

Intel8086是16位的微处理器(其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB【2】。

(1)8086的主要特性

Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:

(a)8086CPU数据总线为16位,8088CUP数据总线为8位。

(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。

(c)有16位的端口地址,可以寻址64KB的I/O端口。

(d)有99条基本指令,指令功能强大。

(e)有9种基本寻址方式。

(f)可以处理内部和外部中断,外部中断源多达256个。

(g)兼容性好,8086、8085在源程序一级兼容。

(h)8086/8088标准主频为5MHz,8086/8088-2主频为8MH【3】。

(i)支持单处理器或多处理器系统工作。

(2)8086CPU寄存器结构

8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器【8】。

通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。

指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS【4】。

3.2 8255简介

8255可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式

沈阳大学

1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚图如图2所示。

图2 8255内部结构及引脚图

具体的各引脚功能如下【3】:

D0~D7为双向数据信号线,用来传送数据和控制字。

RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR 信号。

WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。

CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。

A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控

制寄存器,它们可由程序寻址.A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如表1所示。

表1 8255的寻址方式

A1 A0 选择

0 0 A口

0 1 B口

1 0 C口

1 1 控制寄存器

通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。

RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B 口,C 口均被定为输入状态。

PA0~PA7为A口的8条输入输出信号线。

PB0~PB7为B口的8条输入输出信号线。

PC0~PC7,8条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线【7】。

8255 工作方式控制字和C口按位置位/复位控制字格式如图3所示。

图3 置位/复位控制字格式

8255的寻址:8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出。

如表2为方式0下系统的输入输出组合,其中分为A,B组,A组分为A口和C口,B组分为B口和C口。

表2 方式0下,8255的16种输入输出组合

A 组B组

A口(PA0---PA7)C口(PC4---PC7)B口(PB0---PB7)C口(PC0---PC3)入入入入

入入入出

入入出入

入入出出

入出入入

入出入出

入出出入

入出出出

出入入入

出入入出

出入出入

出入出出

出出入入

出出入出

出出出入

出出出出

3.3 74LS373主要功能

74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片

图4 内部结构和引脚

3.4LED介绍

制造LED的材料不同,可以产生具有不同能量的光子,借此可以控制LED所发出光的波长,也就是光谱或颜色。历史上第一个LED所使用的材料是砷(As)化镓(Ga) ,其正向PN结压降(VF,可以理解为点亮或工作电压)为1.424V,发出的光线为红外光谱。另一种常用的LED材料为磷(P)化镓(Ga),其正向PN结压降为2.261V,发出的光线为绿光。同波长特性和大致分为紫红、纯红、橙红、橙、橙黄、黄、黄绿、纯绿、翠绿、蓝绿、纯蓝、蓝紫等,橙红、黄绿、蓝紫色较纯红、纯绿、纯蓝价格上便宜很多。三个原色中绿色最为重要,因为绿色占据了白色中69%的亮度,且处于色彩横向排列表的中心。因此在权衡颜色的纯度和价格两者之间的关系时,绿色是着重考虑的对象。

图5LED彩灯

4 模拟流水灯软件设计

4.1主程序设计

首先对8255进行初始化,然后开始读取阻值变化模拟温度,然后进行A/D转换,8086系统总线进行总控制,8255读取数据然后通过数码管显示进行温度读取,然后比较,再进一步判断。主程序流程图如图7所示。

图6 主程序流程图

4.2编程程序实现

CODE SEGMENT

ASSUME CS:CODE

START:

MOV AL,01H MOV BX,00FAH

MOV AH,0AH

JMP OBA0

OBA0:

MOV DX,00H

OUT DX,AL

JMP OBA1

OBA1:

MOV DX,02H

OUT DX,AL

MOV CX,9FFFH

LOOP $

ROL AL,1

DEC BX

CMP BX,00F2H

JZ OBA4

JMP OBA0

CHU:

MOV AL,00FEH

JMP OBA2

OBA2:

MOV DX,00H

OUT DX,AL

JMP OBA3

OBA3:

MOV DX,02H OUT DX,AL

MOV CX,9FFFH

LOOP $

DEC AH

CMP AH,02H

JZ START

ROR AL,1

JMP OBA2

OBA4:

MOV DX,00H

MOV AL,00FFH

OUT DX,AL

MOV CX,9FF0H

LOOP $

MOV CX,9FF0H

LOOP $

MOV DX,02H

OUT DX,AL

MOV CX,9F20H

LOOP $

MOV CX,9F20H

LOOP $

MOV DX,00H

MOV AL,0000H OUT DX,AL

;;

;;

MOV DX,02H

MOV AL,0000H

OUT DX,AL

MOV CX,9F20H

LOOP $

MOV CX,9F20H

LOOP $

;;;第二次

MOV DX,00H

MOV AL,00FFH

OUT DX,AL

MOV CX,9FF0H

LOOP $

MOV CX,9FF0H

LOOP $

MOV DX,02H

OUT DX,AL

MOV CX,9F20H

LOOP $

MOV CX,9F20H

LOOP $

MOV DX,00H

MOV AL,0000H OUT DX,AL

;;

;;

MOV DX,02H

MOV AL,0000H

OUT DX,AL

MOV CX,9F20H

LOOP $

MOV CX,9F20H

LOOP $

;;

JMP OBA5

OBA5:

MOV DX,00H

MOV AL,00FFH

OUT DX,AL

MOV DX,02H

OUT DX,AL

MOV CX,9FF0H

LOOP $

MOV CX,9FF0H

LOOP $

MOV DX,00H

MOV AL,0000H

OUT DX,AL

MOV DX,02H

OUT DX,AL

;第二次

MOV DX,00H

MOV AL,00FFH

OUT DX,AL

MOV DX,02H

OUT DX,AL

MOV CX,9FF0H

LOOP $

MOV CX,9FF0H

LOOP $

MOV DX,00H

MOV AL,0000H

OUT DX,AL

MOV DX,02H

OUT DX,AL

JMP CHU

CODE ENDS

END START

5 仿真图

图7仿真效果图

沈阳大学

6结果分析

本系统在硬件设计的基础上,在软件编程上选择查询方式,再进行相关的软件设计和开发,所设计系统测试结果满足设计要求。

在本系统设计中,用8255作为并行接口,通过外部程序扩展电路来实现大容量的软件程序的输入承载量,通过数据采集通道来实现对热水器内各处温度的检测,在键盘及显示电路一体化的情况下来实现对数据的输入及对采集到的数据进行显示。在CPU中把数据进行进一步处理后一方面送去显示,并判断是否需要报警;另一方面与给定值进行比较,然后根据偏差值进行控制计算。本设计一方面结合实际应用经验,力求做到较为系统和全面的介绍系统设计与实施技术;另一方面尽可能反应出温控系统的发展趋势,以及其先进性和实用性。

7 设计体会

通过近两个星期对本课设项目的制作,我充分锻炼了做自己的数电构建能力和操作能力,同时也清楚地看到了自己的知识薄弱的方面,各个知识点没有联会贯穿,有些芯片的掌握不够准确。为了理解各个芯片以及自己项目的功能我又特意重新看了遍教材,并且在网上搜寻了许多参考资料,这些都帮助我加深了对数电的理解。

在做此项目的过程中,我有充分体会到了实际操作以及与同学沟通的重要性。

如果没有同学的指点和交流,可能自己会在一些地方打转弯,浪费掉很多时间。同学间的协作以及在各自方案上的互通有无对自己思路的发散,自己项目的借鉴都起到了极大地作用。通过这次课程设计,可以很好的把各个章节的模块融合到一起,对以后的学习,设计很有帮助。

最后,感谢指导老师及各位同学在方案设计时提供的各种帮助。

课程设计说明书N O.15

参考文献

[1]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2010.3:299-319

[2]范立南,张乐.微型计算机原理及应用[M].北京:清华大学出版社,2012.1:12-54

[3]杨立,邓振杰,荆淑霞.微型计算机原理与接口技术[M].北京:中国铁道出版社,2009.3:45-89

[8]王永山,杨宏五,杨婵娟.微型计算机原理与应用[M].西安:西安电子科技大学出版社,2009.3:172-253

[9]赵全利.微型计算机原理及接口技术[M].北京:机械工业出版社,2009:61-132

[10]杨记文.汇编语言程序设计教程[M]清华大学出版社,1012,4:51-70

沈阳大学

实验五 流水灯与中断控制

一、实验设备 (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.wendangku.net/doc/f610155929.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

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 )实时时钟,可以设定当前时间,完成钟表功能(四位数码管

定时器控制流水灯

成绩 信息与通信工程学院实验报告 (操作性实验) 课程名称:微机原理与微控制器应用 实验题目: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灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。 七、实验结论与感悟(或讨论)

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)。

单片机课程设计 外部中断控制流水灯变化

单片机课程设计报告 设计题目:外部中断控制流水灯变化 姓名

一.设计目的 通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3口的俩管脚P3.2和P3.3第二功能,即外部中断来使CPU响应,达到控制流水灯的目的。 二.设计要求 主程序实现8个灯从P2.0到P2.7依次亮灭,灯与灯 之间间歇约0.5秒.当P3.3口是低电平时,灯从P2.7到P2.0依次亮灭,灯与灯之之间间歇约0.5秒.循环3次返回主程序.当P3.2口是低电平时,灯全灭,当P3.2口是高电平时,返回主程序.当同时使P3.2和P3.3为低电平时,灯全灭,因为外部中断0的优先级高于外部中断1的优先级. 三.MCS-51的硬件结构: 四.P3口的状态 P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设

置第二功能。 五.中断传送方式: 中断方式则是在外设为数据传送做好准备之后,就向CPU发出中断请求信号(相当于通知CPU)。CPU接收到中断请求信号之后立即作出 响应,暂停正在执行的原程序(主程序),而转去外设的数据输入输出 服务,待服务完之后,程序返回。CPU再继续执行被中断的原程序。六.外部中断 外部中断是指从单片机外部引脚输入请求信号。输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为 外部中断源,从引脚INT0、INT1输入。 外部中断请求、有两种触发方式:电平触发及跳变(边沿)触发。 这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。 七.电路原理逻辑图如下:

八.实验硬件电路图如下

九.程序流程图如下 十.程序清单 ORG 0000H AJMP START ORG 0003H AJMP SER ORG 0013H AJMP SER1 ORG 0030H START: MOV IE,#85H ;外部中断0和1都开

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用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

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) 置计数初值。

定时器控制流水灯

(操作性实验) 课程名称:微机原理与微控制器应用 实验题目: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灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。 七、实验结论与感悟(或讨论)

单片机复习与流水灯 定时器程序

1、单片机的基本结构及其特点。 2、8051单片机基本性能。 3、8051单片机的时钟和基本时序周期。 4、8051单片机存储器结构特点。EA端口的作用。 5、8051单片机堆栈指针以及复位后的状态。 6、P0-P3口的相同之处和不同之处。P3口的每一位都有第二功能。复位后的状态 7、复位方式和程序执行方式 8、C语言相比于汇编语言的优点。 9、C51逻辑运算符和位操作。 10、中断的概念和各个中断源、中断优先级。 11、注意定时器中断请求标志位和串口中断请求标志位的对比。 12、对于IP,复位后的状态以及硬件优先级顺序。 13、中断响应后完成的操作。 14、中断函数和子函数的不同之处。 15、课本P181-P183:关于定时器/计数器的基本概念。 16、编程题:定时器方式1的1s定时。P186-P187 17、编程题:流水灯。

#include //实现8个LED轮流点亮 #define uchar unsigned char #define uint unsigned int void delay( uint num)//延时函数 { uint i,j; for(i=0;i>1; c=a | b; return c; } void main() {

uchar i,temp=0x01; for(i=0;i<8;i++) { P2=temp; delay(100); temp=cir(temp); } } 利用定时器1方式1实现1S定时,晶振频率为12Mhz #include #define uchar unsigned char #define uint unsigned int sbit LED=P2^7; uchar i,time; bit flag; void delay(uint m) { while(m--); }

推荐-基于单片机AT89C51控制的中断控制流水灯课程设计

宁波技师学院 课程设计报告 设计课题:单片机——中断控制流水灯

摘要 随着计算机技术的迅猛发展,计算机越来越广泛地应用于人们工作和生活的各个领域。作为计算机领域里的一个重要方面单片机及其应用技术近年来也得到了长足的发展。 单片机被广泛地应用在工业自动化控制、智能仪器仪表、数据采集、通讯以及家用电器等领域。单片机以其与通用微机完全不同的发展模式,不断满足工业测控、恶劣环境下可靠运行的要求。、单片机已成为现代工业领域中不可缺少的重要角色。 单片机技术的发展速度十分迅速,速度更快、功能更强的16位、32位单片机以及陆续问世,但8位机,特别是新一代高档8位机具有优异的性能,已能满足大部分单片机应用领域的需要,另外,它还具有可靠性高、外围芯片配套、系统结构简单、应用软件丰富、技术成熟、开发应用方便等优点,在单片机市场中依旧据有一定地位。

目录

一总体设计方案 1.1系统设计方案 流水灯系统主要由:复位电路、晶振电路、数码管显示电路、LED灯指示电路、速度与方式选择电路等部分电路组成。 各器件的选用: 1 单片机的选用: 单片机芯片选用A T89C51。 2数码管的选用: 数码管选用共阳极数码管。 3晶振的选用: 晶振选用的是12MHZ。 1.2系统结构框图 框图如图1.2-1。 图1..2-1系统结构框图

二系统硬件设计 复位电路、晶振电路、数码管显示电路迪电路组成。 2.1晶振电路 图2.1-1晶振电路 内部方式时钟电路如图2.1-1所示。在XTAL2和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。

2.2复位电路 图2.2-1按键复位电路 按键手动复位有电平方式和脉冲方式。而此次选用的便是按键电平复位。按键电平复位是通过复位端经电阻与Vcc接通而实现的。电路如图2.2-1所示。

89C51单片机定时器控制的流水灯

89C51单片机定时器控制的流水灯 /*************************************************** Copyright: 2014-02-11.version1.0 File name: timer.c Description: 定时中断控制的流水灯 Author: lxl Version: version1.0 Date: 2014.02.11 History: 无 ****************************************************/ #include char a=0xff; int num=0; /************************************************* Function: init() Description: 定时中断初始化功能 Calls: 无 Called By: main() Table Accessed: 无 Table Updated: 无 Input: void Output: 无 Return: void Others: 无 *************************************************/ void init(void) { TMOD=0x01; EA=1; ET0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; } /************************************************* Function: main() Description: 程序的主函数 Calls: init() Called By: 无 Table Accessed: 无

单片机控制LED流水灯从中间向两边

单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这个程序实现的应该是这样的先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动;再从中间往两边流动; #include< reg52.h> #include< intrins.h> #define uint unsigned int #define uchar unsigned char void delay(); void main() { uchar temp,temp1,temp2,a,b; P3=0xff; while(1) { for(b=3;b>0;b--) { temp=0xaa; P1=temp; delay(); temp=0x55; P1=temp; delay(); } for(a=3;a>0;a--) { temp=0xfe; for(b=7;b>0;b--) { P1=temp; temp=_crol_(temp,1); delay(); P1=temp; delay(); } } temp1=0xfe; temp2=0x7f; for(a=8;a>0;a--) { temp=temp1&temp2; P1=temp; delay(); temp1=_crol_(temp1,1); temp2=_cror_(temp2,1);

} } void delay() { uint a,b; for(a=100;a>0;a--) for(b=600;b>0;b--); } 程序实现的第2种方法:下面是https://www.wendangku.net/doc/f610155929.html,单片机12群里的朋友木信大侠提出的,实现单片机led流水灯从中间向两边,从两边向中间的效果,下面的程序就是实现思路,这个是直接调用,应该明白吧,数组那其实也可以改一下,如采用一维数组,在多次调用;也可以采用二维数组。主要看个人喜好. ----------------------------------------------------- #include< reg52.h> unsigned char code TABLE[]={ 0xFF,0xE7,0xC3,0x81,0x00, //从中间向两侧点亮 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0x7E,0x3C,0x18,0x00, //从两侧向中间点亮 0xFF,0x7E,0x3C,0x18,0x00, 0xFF,0x7E,0x3C,0x18,0x00 }; unsigned char i; DELAY() { unsigned int s; for(s=0;s<30000;s++); } main() { while(1) { if(TABLE[i]!=0x01) { P1=TABLE[i]; i++; DELAY(); } else

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

单片机实验报告 姓名: 学号: 一、 实验实现功能: 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灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有彩灯控制器进行改进。流水彩灯控制器在我们日常生活中有重要的应用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。本次设计的流水彩灯控制器是其中较简单的,但这是复杂设计的基础。 设计要求: 1、在选择器件时,应考虑成本。 2、根据技术指标,通过分析计算确定电路和元器件参数。 3、画出电路原理图(元器件标准化,电路图规范化)。 技术指标: 1、用中规模计数器设计该12路流水灯控制电路; 2、要求每盏灯的点亮时间介于1s~1.2s之间; 3、要求用555定时器设计时钟脉冲,12路流水灯采用12个发光二极管代替。

二、方案设计 1原理框图 图1 12路流水灯设计原理图 该电路主要由555定时器、74LS161计数器和74HC154译码器和LED 发光二极管。由555定时器构成脉冲发生器,并由LED 发光二极管监视电路是否工作;将74SL161接成二进制计数器,74SL154的12个输出端依次与排成一排的12个LED 发光管相接。161芯片的QC 、QD 端接与非门然后与161的LOAD 端相接;且161的LOAD 端通过非门与154芯片的G1与G2相接。取74SL161的QD 、QC 、QB 、QA 接到74SL154的地址控制端D 、C 、B 、A , 12个发光二极管按一定方向循环亮灭。 2各模块组成及功能分析 1、振荡电路:由一个555芯片与滑动变阻器,电阻和电容组成。周期可调,控制计数器。 2、计数器:由一个74LS161芯片与两个非门组成,输出信号至译码器,控制LED 灯的亮灭的顺序。 3、译码器:由一个74HC154芯片组成,为4-16译码器,输出来自555芯片的信号到LED 灯。 4、显示部分:由12个发光二极管和电阻组成,通过发光二极管的亮灭情况判断电是否达到设计要求。 555多谐振荡电路 74LS161计数部分 LED 显示部分 74HC154译码电路部分

按键控制数码管和流水灯设计报告实验报告要点

摘要 单片机自20世纪70年代以来,以其极高的性价比,以及方便小巧受到人们极大的重视和关注。本设计选用msp430f249芯片作为控制芯片,来实现矩阵键盘对LED数码管显示的控制。通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的检测识别。用单片机的P3口连接4×4矩阵键盘,并以单片机的P3.0-P3.3口作键盘输入的列线,以单片机的P3.4-P3.7口作为键盘输入的行线,然后用P0.0-P0.7作输出线,通过上拉电阻在显示器上显示不同的字符“0-F”。在硬件电路的基础上加上软件程序的控制来实现本设计。其工作过程为:先判断是否有键按下,如果没有键按下,则继续检测整个程序,如果有键按下,则识别是哪一个键按下,最后通过LED数码管显示该按键所对应的序号。 关键字:单片机、流水灯、数码管、控制系统 SCM since the nineteen seventies, with its high price, and a convenient compact attention and great concern. Thisdesign uses msp430f249 chip as the control chip, to realize the control of the LED digital tube display matrix keyboard. Through the internal control single chip to realize the hardware design of the circuit, so as to re alize the detection and recognition of 4*4 matrix keyboard. 4 * 4 matrix keyboard connected with the MCU P3 port, and the MCU P3.0 P3.3 port for a keyboard input, MCU P3.4P3.7 port as the lines of keyboard input, and then use theP0.0 P0.7 as the output line, by a pull-up resistor display different characters "0F on display". Control with software programs based on the hardware circuit to realize the design. The working process is: first to determine whether a key is pressed, if no key is pressed, it will continue to test the whole procedure, if a key is pressed, the Keywords: SCM, water lights, digital tubes, control system 键盘控制流水灯和数码管实验报告 目录 一设计的目的 (2) 二任务描述及方案设计 (3) 1. 任务描述 (3)

TIMER0控制流水灯设计说明书

大连交通大学 摘要 自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。 本文主要讲的是单片机,课题名称为单片机TIMER0控制流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。本课题详细地介绍了一种由MCS-89C51集成块编程实现的控制电路,它完成了单片机流水灯控制功能,并给出了具体的硬件电路和相应的程序。这种控制电路可靠性,灵活性高,使用范围广,特别适合中小城市的交通灯、霓虹灯等的应用。而且,它对其他类似系统的开发具有一定的借鉴意义。 通过本次实训实习,其目的是让软件工程专业的毕业生通过自己动手制作一些实际电子产品,掌握一定的电子产品设计、制作技能和调试技术,巩固电子技术的理论知识,锻炼和提高学生的动手能力和综合运用知识解决实际问题的能力及实践动手能力。让学生完全体验电子产品开发的全过程,整个电路的制作、调试,让学生完全自己动手完成,真正受到工程实践的基本训练,培养成为电子信息领域内的高级应用型技术人才。 关键词:单片机;集成块;I/O口;接口技术信号灯。

绪论 (2) 第一章设计目的 (3) 1.1设计目的 (3) 1.2设计内容和要求 (3) 1.3设计思路 (3) 第二章设计原理分析 (4) 2.1总体方案设计分析 (4) 2.2TIMER0控制流水灯的系统设计 (5) 2.3TIMER0控制流水灯的功能要求 (5) 2.4定时器控制流水灯系统的基本构成及原理 (6) 第三章系统硬件电路的设计 (7) 3.1系统硬件总电路构成及原理 (7) 3.2主控制部分――AT89C51单片机简介 (7) 3.2.1 AT89C51的内部结构功能 (8) 3.2.2 51单片机的串行接口工作方式 (9) 3.3其它器件 (10) 3.3.1发光二极管 (10) 3.3.2晶体震荡器 (11) 3.4定时器控制16只流水灯控制系统原理图 (12) 第四章系统软件程序的简单设计 (13) 4.1程序框图 (14) 4.2程序流程图及程序 (15) 4.2.1程序流程图: (15) 4.2.2程序清单: (15) 4.2.3实验仿真结果图: (17) 结论 (18) 参考文献 (19)

相关文档
相关文档 最新文档