定时器控制数码管动态显示和流水灯

定时器控制数码管动态显示和流水灯
定时器控制数码管动态显示和流水灯

#include

#define uchar unsigned char

int tt0,tt1,num,num1,ge,shi,bai;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

uchar code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(int z)

{

int x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void initialize()

{

P0=~0x00;//P0口全部接高

P1=~0x00;//起初数码管一个都不亮

P2=0xff;//起初流水灯一个不亮

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

num=0;

num1=0;

tt1=0;

tt0=0;

}

void display(uchar ge1,uchar shi1,uchar bai1)

{

P1=table[ge1];

P0=~0x04;

delay(5);

P0=~0;

P1=table[shi1];

P0=~0x02;

delay(5);

P0=~0;

P1=table[bai1];

P0=~0x01;

delay(5);

P0=~0;

}

void main()

{

initialize();

while(1)

display(ge,shi,bai);

}

void time0() interrupt 1 {

TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt0++;

if(tt0==2)

{

tt0=0;

num++;

ge=num%10;

shi=num%100/10;

bai=num/100;

if(num==256)

num=-1;

}

}

void time1() interrupt 3 {

TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt1++;

if(tt1==2)

{

P2=table1[num1];

num1++;

if(num1==8)

num1=0;

tt1=0;

}

}

实验五 流水灯与中断控制

一、实验设备 (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.360docs.net/doc/7e14589287.html,.c文件(不需要修改,可参考主程序中如何调用它里面的函数)

基于plc控制的流水灯设计

课程设计任务书 题目:基于plc控制的流水灯课程设计专业:电气工程及其自动化 姓名: 胡进森 学号: 1002120121 班级: 10级电气工程(1)班 完成期限:2013年05月25日 指导教师签名: 课程负责人签名: 2013年04月15日

课程设计说明书 题目:基于plc控制的流水灯课程设计 姓名:胡进森 院(系):机电工程学院 专业班级:10级电气工程一班 学号:10102120121 指导教师:张国栋李好丽 成绩: 时间:2013 年05 月20 日至2013 年05 月25 日

目录 摘要 (1) 1.绪论 (3) 1.1 引言 (3) 1.2 采用流水灯的意义和目的 (3) 1.3 本次设计的主要内容 (3) 2. 流水灯系统的主要硬件设备的介绍 (4) 2.1可编程控制器的发展历史 (4) 2.1.1 可编程控制器的定义 (4) 2.1.2 可编程控制器的特点 (5) 2.1.3 PLC的基本结构和工作原理 (5) 2.2三菱FX系列PLC计数器(C) (9) 2.2.1内部计数器 (9) 2.2.2高速计数器(C235~C255) (9) 2.3三菱FX系列PLC定时器(T) (10) 2.3.1 通用定时器 (10) 2.3.2 积算定时器 (10) 2.4三菱FX系列辅助继电器(M) (10) 2.4.1通用辅助继电器(M0~M499) (11) 2.4.2断电保持辅助继电器(M500~M3071) (11) 2.4.3特殊辅助继电器 (11) 2.5三菱FX系列PLC输出继电器(Y) (11) 2.6三菱FX系列PLC输入继电器(X) (12) 3. 硬件电路设计及软件设计 (12) 3.1控制系统I/O点及地址分配 (12) 3.2电气控制系统原理图 (12) 3.3时序图 (13) 3.4梯形图 (13) 3.5指令表 (15) 4.系统调试 (16) 5.设计总结 (19) 6.参考文献 (21)

定时器数码管显示与花样流水灯设计报告

定时器数码管显示与花样流水灯设计报告 物理学院刘雄59 摘要:本次设计以单片机为核心,利用单片机定时器功能实现0到59秒在数码管上显示,通过按键控制花样流水灯的显示样式。本文将浅谈一下其实现的功能及具体模式。 关键词:单片机;数码管;LED; 引言:随着科技的发展和进步,自动控制系统日益完善,但是这些都离不开芯片,可以这样说没有芯片存在,就不可能有今天的科技成果。本设计将基于单片机AT89C51控制60秒定时器,同时通过程序编写实现流水灯显示。流水灯的样式变化多样,并通过按键可控流水灯显示样式,从而给人于美的感觉体验。 一,系统设计目的,功能。 1、目的。基于AT89S51芯片,熟悉芯片的使用,实验电路板的焊接,数码显示管的使用,C语言编程的设计。提高动手设计能力以及发现问题并且解决问题的能力。 2、功能。在使用12MHZ晶振的条件下,用T1产生50ms定时,两个7段LED数码管从“00”开始显示,每1s加1,到达“59”后,再从“00”开始,完成60s定时功能。通过按键控制8位流水灯的动态显示样式,按键一次,就有不同的显示样式,总共有4种动态显示样式,按键按下4次后回归到第一次的显示样式,就这样不断循环往复的过程,需说明,流水灯点亮的同时也不影响定时器计时。 3、用途。数码管计时器可用于十字路口作为交通灯使用,以便保障交通畅通有序,缓解交通车流。流水灯的变换样式显示,点缀多彩生活,降低人们的视觉疲劳,可以在车站,或用于广告制作使用。 二、硬件设计思想和电路原理图 1. 下图为数码管驱动显示电路原理图: 2.下图为硬件连接框架图

3、硬件连接原理图 三,详细说明如何使用硬件单元 1,七段数码管(共阴极)的使用。 该显示管总共有10 个引脚,包括a-g和dp以及二个位选为we1,we2。将a-f分别与4511芯片的QA-QG连接,we1,we2分别与AT89C51的引脚P3.2,P3.3连接。 数码管使用条件: a、段及小数点上加限流电阻; b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定

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

微机原理课程设计流水灯控制系统.doc

微机原理课程设计 流水灯控制系统 姓名 :XX 学院:物理电气信息学院 班级: 2010 电子 姓名 :12010245

流水灯控制系统 一、设计内容: 本课程设计选用8086 对 8255A的 A口控制来实现模拟流水灯功能的 实现。编写相关程序,通过proteus仿真软件来实现我名字“安亮” 两个字的闪烁,“安”字接 8255 的 A 口的 P0,“亮”字接 A 口的 P1。先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪 烁八次,再跳到开始,以此循环。 二、设计目的: 1、了解流水灯的基本工作原理 2、熟悉 8255A 并行接口的各种工作方式和应用 3、利用 8255A 接口,LED 发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。 三、实验原理 在 8086 系统中,采用 16 位数据总线,进行数据传输时,CPU

总是将低 8 位数据线上的数据送往偶地址端口,而过高8位数据线上 的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低 8 位数据线传送到CPU,从奇地址端口取得的数据总是通过高8 位数据线送到 CPU。在 8086 系统中,将 8255A的 A1端和地址总线的 A29255A 在对 CPU并且,相连, A1 端和地址总线的 A0 的 8255A 而将相连, 的端口进行访问时,将地址总线的 A0 位总是设置为 0。本课程设计通 过对 8255A 的 A 口控制来实现模拟流水灯功能的实现。“安”接 A 口 的 P0,“亮”接 A口的 P1,实现两个字按一定规律的一个闪烁。 8255 的内部结构 255A 内部结构由以下四部分组成:数据端口A、B、C;A组控制和 B 组控制;读 / 写控制逻辑电路;数据总线缓冲器。 端口 A:包括一个 8 位的数据输出锁存 / 缓冲器和一个 8 位的数据 输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过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单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (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.1第一种方案的论述 (1) 1.2第二种方案的论证 (1) 1.3第三种方案的论述 (1) 1.4最终方案的确定 (1) 第2章硬件设计 .................................................................................- 2 -2.1总体方案设计分析 .. (2) 2.2系统逻辑框图 (2) 2.3主要元器件简介 (2) 2.3.1 8086CPU ················································································································ - 2 - 2.3.2 地址锁存器74LS373的内部电路与工作原理····················································· - 4 - 2.3.3 可编程外围接口芯片8255A的简介···································································· - 5 -第3章软件设计 ·················································································- 9 - 3.1程序流程设计 (9) 3.1.1 主程序流程··········································································································· - 9 - 3.1.2 程序流程图········································································································· - 10 - 3.1.3 系统硬件连接图 ································································································· - 11 - 3.1.4 源程序设计(附录) ............................................................................................... - 11 -3.2设计最终理想结果及原理 (11) 3.2.1 左向移动流水灯 ································································································· - 11 - 3.2.2 右向移动流水灯 ································································································· - 11 -设计心得 ·····························································································- 12 -参考文献 ·····························································································- 13 -附录······································································································- 14 - - 1 -

定时器控制流水灯

成绩 信息与通信工程学院实验报告 (操作性实验) 课程名称:微机原理与微控制器应用 实验题目: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.硬件组成 2.1 总体方案设计分析 要求用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为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。 3硬件原理设计 A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIOR B该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7) C 8255模块选通线CA连到PC总线接口模块的IOY3 D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16 E 8255的PC0 PC1分别练到开关 K0 K1 F 软件流程框图及程序清单 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极

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

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

实验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,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

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

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________院(部)____________________________专业________________ 班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 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、需求分析

51单片机流水灯

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

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

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uinti=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

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用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页 1 绪论 1.1 课题背景及目的 今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,数字逻辑电路的发展也日趋迅速,通常流水灯的设计会选择单片机编程,虽然单片机具有体积小、功能强、成本低、应用面广等优点,但是,选择单片机更大的增加了设计费用,并且对设计者的编程语言要求高,而在数字电路中,中规模集成电路以其功能强大、种类繁多,得到广泛应用。很多中规模集成电路都具有通用性,它的应用已不仅仅局限于其本身所具有的功能。如本文所设计的流水灯电路,就是利用中规模集成电路的功能扩展,将移位寄存器构成移存型计数器,将其输出端接到多个LED指示上。利用数字电路来控制灯的状态,并显示设计结果。其主要的电路原理:整个流水灯电路由时钟产生,流水程序控制驱动及功率控制元件电源供给电路等电路组成。 1.2 课题研究方法 常见的流水灯控制系统中,是使用微机控制,设备复杂,成本较高;另外应用单片机控制,虽然简单,但系统智能化及传输可靠性低,且对语言的编程能力要求较高,均不理想。为了提高系统可靠性、实用性,从而研究了一种基于模拟电子技术和数字电子技术的循环控制系统。这种设计不仅仅应用到流水灯的控制,也在工业生产中提高自动化循环控制得到利用。为了发光二极管形成流水效果,将电源加在555定时器中,定时发送脉冲,通过CD4017循环计数,由CD4066控制开关,使发光二极管逐个接受高电平,循环亮起,设计中,选用四种颜色的发光二极管,从而形成更好的流水效果。 1.3 基本要求设计方案 (1)设计一个彩灯控制电路,使其能够产生一个控制信号控制彩灯实现灯光变换的功能。 (2)该彩灯控制电路,在完成基本变化的基础上,可以实现彩灯的流向性,间歇性变化的要求,从而使彩灯更加丰富化。

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

单片机实验报告 姓名: 学号: 一、 实验实现功能: 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]; //千位

CD4017流水灯

数字电路课程设计题目:CD4017流水灯 学院:测试与光电工程学院 专业名称:测控技术与仪器 班级学号:10081413 学生姓名:李陈伟 指导教师:金信鸿 二O一三年 6 月

测试与光电工程学院 课程设计任务书 测控技术与仪器系 100814班李陈伟学生: 课题名称: CD4017流水灯 课题要求: 1.要独立完成设计任务,通过课程设计,锻炼自己综合运用所学知识的能力,并初步掌握电子技术设计的方法和步骤。 2.熟悉电子线路Protel 99 软件及电子线路仿真Proteus软件的使用方法。 3.学会查阅资料和手册,学会选用各种电子元器件。 4.掌握常用的电子仪器仪表使用,如直流稳压电源、直流电压、电流表、信号源、示波器等。 5.学会掌握安装电子线路的基本技能和调试方法,善于在调试中发现问题和解决问题。 6.能够写出完整的课程设计总结报告。 主要参考资料: [1] 阎石主编数字电子技术基础第5版高等教育出版社 [2] 电子技术课程设计指导湖南大学彭介华主编高等教育出版社 [3] 数字电路实验与课程设计●修订版吕思忠施齐云编著哈尔滨工程 大学出版社 [4] Proteus教程——电子线路设计、制版与仿真朱清惠张凤蕊王志奎编 清华大学出版社 指导教师:金信鸿 时间: 2013年 5 月 29 日

CD4017流水灯 学生姓名:李陈伟班级:100814 指导老师:金信鸿 摘要: 随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。所以,多功能流水灯的设计具有相当的代表性,;利用单片机也可实现流水灯功能,但电路较复杂,费用较高,综合考虑,利用CD4017设计流水灯具有其优势。 多功能流水灯,就是要具有一定的变化各种图案的功能,主要涉及了数字电路中一些编码译码、计数器原理,555定时器构成时基电路,给其他的电路提供时序脉冲,设计过程中了解相关芯片(NE555、CD4017)的具体功能,引脚图,真值表。 本文用NE555定时器,CD4017十进制计数器,外加辅助电阻电容实现流水灯功能,利用protues仿真,焊接电路板,在制作的过程中,用到了万用表,本文着重分析NE555定时器发出方波脉冲的原理与CD4017计数器工作原理,同时也介绍制作中会遇到的问题以及解决方案,改变部分电阻,电容值探究电路运行的可靠性与实用性。 关键词:NE555,CD4017,Proteus仿真,原理 指导老师签字:

相关文档
最新文档