0;i--)for(j=100;j>0;j--);}voidmain(){uchar" />
当前位置:文档之家› 按键控制流水灯开停

按键控制流水灯开停

按键控制流水灯开停
按键控制流水灯开停

#include "reg52.h"

#define uint unsigned int

#define uchar unsigned char

sbit P3_4 = P3^4;

sbit P3_5 = P3^5;

sbit P2_6 = P2^6;

sbit K1 = P3^3;

void delay_ms(uint x)

{

uint i,j;

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

for(j=100;j>0;j--);

}

void main()

{

uchar x;

uint s=1;

while(1)

{

if(K1==0)

{

delay_ms(10);

if(K1==0) s=0;

while(K1==0);

}

while(s==0)

{

while(K1 !=0)

{

P3_4=0;

delay_ms(500);

P3_4=1;

P3_5=0;

delay_ms(500);

P3_5=1;

P2_6=0;

delay_ms(500);

P2_6=1;

}

if(K1==0)

{

delay_ms(10);

if(K1==0) s=1;

while(K1==0);

}

}

}

}

按键控制单片机改变流水灯速度

按键控制单片机改变流水灯速度 /*程序效果:有三个按键,按下其中任意一个流水灯的速度改变 */#includereg52.h //52 系列单片机的头文件#define uchar unsigned char//宏定义 #define uint unsigned intuchar count=40,flag=0; //定义刚开始的流水灯的速度,后 一个为标志变量void main(){uchar i=0;//定义局部变量EA=1; //打开总 中断ET0=1; //打开定时器TR0=1; //启动定时器TH0=(65536-50000) /256; //装初值TL0=(65536-50000)%256; P2=0xfe; //点亮第一个数码管, 为下次循环做准备while(1){ if(flag) //flag 被置位{ flag=0;//清零,为下次做准备P2=~P2; //取反P2=1; //左移一位P2=~P2; //取反i++; if(i==8) //移到第八个数码管,则从新装初值{ i=0; P2=0xfe; } } P0=0xf0; //赋初值if((P00xf0)!=0xf0) //判断是否有按键按下{ if(P0==0x70) //按下第一个按键count=60; //给count 从新赋值 if(P0==0xb0) count=20; if(P0==0xd0) count=10;} }}void time0() interrupt 1 //定时器0{static uchar cnt; //定义静态变量TH0=(65536-50000)/256;TL0=(65536-50000)%256; cnt++; //计数if(cnt==count){ cnt=0; //清零flag=1; //置标志位}} tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

实验五 流水灯与中断控制

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

定时器控制流水灯

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

按键控制流水灯设计报告

按键控制流水灯设计报告 一、项目名称: 按键控制流水灯 二、目的: 通过对按键控制发光二极管项目的改变,设计出自己的方案,来加深对硬件技术的理解,同时锻炼关于硬件的编程技术,掌握keil等软件的使用。 三、硬件原理: 数码管与发光二极管硬件电路图: 芯片引脚电路图:

按键与导航按键:

四、软件原理: 变量Key1,Key2,Key3分别代表第一个、第二个、第三个按键,值为零时表示按下了该按键。那么可以写出一个判断条件,当这三个变量的值分别为1 时,就分别调用三个不同的函数,三个函数分别表示LED灯的三种不同的闪亮方式。 五、软件流程:

首先判断哪一个变量的值为1,即哪一个按键被按下,然后就调用相应的函数。 六、关键代码: void main() { Init(); P0=0x00; while(1){ //其他两个key通过中断实现 // if(Key3==0) // { // G_count=0; // while(G_count!=200);//延时10ms // while(!Key3)//等待直到释放按键 // { // P0=0x33; // } // } if(Key1==0)fun2(); if(Key2==0)fun3(); if(Key3==0)fun4();

} } 七、操作说明: 当把软件下载到电路板以后,给它插上电源,然后按下不同的按键,可以观察到LED灯亮。 八、存在的问题: 原先的main()函数中只有KEY3,并没有Key1和Key2,所以暂时不清楚如何感应到按键一和按键二什么时候按下。 九、后续设计计划: 可以设计更炫酷的亮灯方式。

(完整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流水灯设计 学生: 学号: 院(系):机电工程学院 专业: 指导教师: 2012年3月20日

1.设计目的: 1、通过本实验的设计初步了解单片机工作原理和各功能端口的相关设置; 2、掌握PROTEUS软件的安装和配置过程; 3、学会绘制电路原理图; 4、了解装载程序和调试; 5、PROTEUS VSM 与uVision3的联调; 6、用单片机仿真软件,并进行调试; 7、掌握单片机相应的编程步骤,了解走马灯相关的工作流程; 8、熟悉KEIL\PROTEUS等相关软件的使用。 2.任务要求:利用汇编语言(或C语言),实现8个单色LED灯的左、右循环显示,程序中运用定时中断。 3. 硬件电路图:

4.软件程序清单: ORG 0000H ;起始地址 LJMP MAIN ;转入主函数 ORG 000BH ;定时中断0入口地址 LJMP PE ;转入中断程序 ORG 0100H ;主程序入口 MAIN: ; MOV TMOD,#01H ;设置定时中断0的工作方式 MOV TL0,#0EFH ;添加初值 MOV TH0,#0D8H ; SETB EA ;开总中断 SETB ET0 ;开定时中断 SETB TR0 ;开始计时 MOV P0,#00H ;点亮所有灯 MOV R0,#0C8H ;设定定时次数,两百次10ms*200=2s QUAN: ; MOV A,R0 ; JNZ QUAN ; MOV A,#0FEH ; PAOMA: ;点亮第一个灯 MOV P0,A ; MOV R0,#32H ;设定定时次数50次。10ms*50=0.5s HJ: CJNE R0,#00H,HJ ;定时器重复50次,延时0.5秒 RL A ;循环左移进行跑马灯 LJMP PAOMA ; PE: ;定时器 MOV TL0,#0EFH ; MOV TH0,#0D8H ; DEC R0 ;用R0决定定时次数 RETI ; END

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

流水灯控制实验报告及程序

实验三流水灯控制实验 姓名专业通信工程学号成绩 一、实验目的 1.掌握Keil C51 软件与protues软件联合仿真调试的方法; 2.掌握如何使用程序与查表等方法实现流水效果; 3.掌握按键去抖原理及处理方法。 二、实验仪器与设备 1. 微机1台 2. Keil C51集成开发环境 3. Proteus仿真软件 三、实验内容 1.用Proteus设计一流水灯控制电路。利用P1口控制8个发光二级管L1—L8。P3.3口接一按 键K1。参考电路如下图所示。其中74LS240为八反响三态缓冲器/线驱动器。 2.用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的 次数,则其对应的流水效果如下: ① KEY=0: L1-L8全亮; ② KEY=1: L1-L8先全灭,然后自右向左单管点亮,如此循环; ③ KEY=2: L1-L8先全灭,然后自右向左依次点亮,如此循环; ④ KEY=3: L1-L8先全亮,然后自左向右依次熄灭,如此循环; ⑤ KEY=4: L1-L8先全灭,然后整体闪烁,如此循环; ⑥ KEY=5:自行设计效果。 以上移位及闪烁时间间隔均设置为0.3秒,按动5次按键后,再按键时,流水效果从头开始循环。 四、实验原理 1.按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号 波形如下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5~10ms。按键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。常用软件方法去抖动,即检测到按键闭合后执行一个5~10ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后,才能转入该键的处理程序。 2.74LS240:八反相三态缓冲器/线驱动器 引脚排列图:

单片机实验报告-流水灯-双机通信-交通灯-定时时钟

实验一流水灯实验 一、实验目的 1)简单I/O引脚的输出 2)掌握软件延时编程方法 3)简单按键输入捕获判断 二、实验实现的功能 1)开机是点亮12发光二极管,闪烁三下 2)按照顺时针循环依次点亮发光二极管 3)通过按键将发光二极管的显示改为顺逆时针方式 三、系统硬件设计 流水灯原理图 四、系统软件设计

五、实验过程中遇到的问题及解决方法 1)每次循环无论正转还是反转程序,总先是先执行P1口的8位led灯。 原因:在利用KEIL自带的库函数中的_crol_和_cror_时,在正转和反转程序中应该调换顺序的,开始没注意到。改正后显示正常。 2)在开始实验的时候实行的是一直循环的方式,利用按键嵌套。后来发现不理 想,每次按键按到三次以上后进入死循环。 解决方案:利用一个按键,显示一次。并加入按键释放,防止误动作。 指导老师签字: 日期:

实验一程序: /******************************************************************** ************** 工程说明:本工程主要完成了一下功能: 1,复位后演示所有功能 2,灯闪烁三次 3,流水灯正转 4,流水灯反转 函数说明: yanshi():演示程序 dengss():闪烁程序 right():正转程序 left():反转程序 scankey():按键扫描 ********************************************************************* **************/ #ifndef _led_h #define _led_h #define uint unsigned int #define uchar unsigned char uchar i,j,a,b,c,d; uchar flag=0;//亮灯判断标志 uchar aa,bb,cc,dd,ss; sbit H1=P3^6; sbit key1=P0^5; sbit key2=P0^6; sbit key3=P0^7; void delay(uint); //1ms延时 void yanshi(void);//演示所有亮灯方式 void dengss(void);//闪烁三次 void left(void); //左循环亮灯 void right(void);//右循环亮灯 void scankey(); //按键扫描 #endif

按钮控制流水灯C程序的编写

按钮控制LED——51单片机的 Proteus实验 实验原理 51单片机的一个I/O口接按钮,再通过另一个I/O口控制LED的亮、灭。 主要器件以及电路图 单片机——AT89C51,上拉电阻——pullup,按钮button,发光二极管——LED。 按钮控制LED汇编程序源码 ORG 0 START: MOV P1,#0 ;LED不亮

MOV P0,#0FFH ;P0口准备读数 ST1: JB P0.0,$ ;等待按钮抬起 JNB P0.0,$ ;等待按钮按下 ;以上两句使得只有按一下按钮才可能执行下面的语句 CPL P1.0 ;LED状态改变 SJMP ST1 ;返回 END 流水灯——51单片机的Proteus实验 实验原理 通过个51单片机的一个I/O口送不同的数字,实现8个LED的流水灯。本实验为移动一个不亮的LED。通过修改送给I/O口送的数字可以实现不同方式的流水灯。 主要器件以及电路图 单片机——AT89C51,8排电阻——RX8,发光二极管——LED。

流水灯汇编程序源码 org 0 sjmp start org 30h start: mov P1,#1 ;P1.0为1,不亮mov P1,#2 ;P1.1为1,不亮 mov P1,#4 ;以下原理同上 mov P1,#8 mov P1,#10h mov P1,#20h mov P1,#40h mov P1,#80h sjmp start delay: nop nop nop nop ret end

数码显示管——51单片机的Proteus 实验 实验原理 51单片机的一个I/O口接4个开关,再通过另一个I/O口控制7段数码显示管显示想要的数字。 主要器件以及电路图 单片机——AT89C51,共地的7段数码显示管——7SEG-COM-AN-GRN,开关——SW-SPST。 汇编程序源码 汇编后139字节。 org 0 sjmp START org 30h START: mov P1,#0FFh ;LED不亮 st1: mov P2,#0FFh ;准备读数(开关状态)

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

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

一.设计目的 通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过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都开

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

学号: 31100800 班级:自动化10班姓名:张 指导老师:胡 2012.12

单片机核心板实验要求 一、流水灯实验 1、实验目的: 1)简单I/O引脚的输出 2)掌握软件延时编程方法 3)简单按键输入捕获判断 2、完成功能要求 1)开机是点亮12发光二极管,闪烁三下 2)按照顺时针循环依次点亮发光二极管 3)通过按键将发光二极管的显示改为顺逆时针方式 二、定时器或实时时钟实验 1、实验目的 1)数码管动态显示技术 2)定时器的应用 3)按键功能定义 2、完成功能要求 1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。 2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。 上述二个功能至少完成一种功能。 三、双机通信实验 1、实验目的 UART 串行通信接口技术应用 2、完成功能要求 用两片核心板之间实现串行通信,将按键信息互发到对方数码管 显示。 四、交通灯实验 1、实验目的 1)按键、数码管、发光二极管综合应用编程技术 2)数据存储于EEPROM的技术(也可以不使用) 3)定时中断技术 4)按键中断技术 2、完成功能要求 1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2)设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。 3)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。

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

cc2530按键控制流水灯

cc2530按键控制流水灯 本次设计用LED1,LED2,LED3 灯及按键S1 为外设。采用P10、P11、P14 口为输出口,驱动LED1/LED2/LED3,P01 口为输入口,接受按键信号输入(高电平为按键信号)。 1.高性能 2.4G 射频模块Q2530RF Q2530RF是丘捷技基于TI公司第二代2.4GHz IEEE 802.15.4 / RF4CE/ZigBee的第二代片上系统解决方案CC2530 F256的全功能模块,集射频收发及MCU控制功能于一体。外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。模块引出CC2530所有IO口,便于功能评估与二次开发。 2.多功能开发板Q2530EB 多功能扩展板Q2530EB 可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC 5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键及指示灯,红外遥控信号接收/发射等模块。 所有的外设均通过SPI总线/UART /DEBUG等接口与射频模块Q2530RF 相连,并完全受Q2530RF 控制和访问。 多功能仿真扩展板Q2530EB 采用三种电源供电方式:DC 5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2 为电池供电,PIN2-PIN3 为外接直流电源或者USB接口供电。电源开关为P4。 Q2530EB 板卡背面的电池盒可放置3节5号干电池,输出电压3.4~4.5V,板载电源电路将其调整到+3.3V 稳定的直流电压输出供后级使用。当电池电压低于3.4V 时,应更换电池以保持模块正常工作。 Q2530EB 带有1个DC 5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。

按键控制流水灯系统

设计摘要 本设计旨在于通过所学知识,设计一个简单的按键控制流水灯系统,满足一些基本控制功能。 本设计选用80C51芯片作为核心硬件,组合74LS138译码芯片,4×4键盘,74LS273锁存芯片以及其他必要元器件实现对8个发光二极管和2个数码管显示屏的功能控制。控制过程中用到了51单片机的定时/计数器和中断技术。 本次设计旨在于在理论学习单片机的基础上,通过实际系统的搭建,提高对所学知识的实际应用能力。设计中,我们主要做了方案设计,电路搭建,程序编写,控制仿真,报告撰写等一系列工作。 方案设计说明 设计要求: (1)利用按键控制流水灯的显示。 (2)利用3×3或者4×4键盘,控制数码管的显示。 (3)利用到定时/计数器。 (4)利用到中断技术。 设计功能: (1)按键0—7键为普通亮灭控制键,对应8个发光二极管,每个按键按一下,对应的灯亮,再按一次,对应的灯熄灭。

(2)按键8,12,13,14号键为功能控制键。 1)8键:按一下,8个灯逐个点亮,熄灭,循环左移三次。 2)12键:按一下,灯全部点亮,闪烁20次,返回原来状态。 3)13键:按一下,从左至右,每次点亮一个灯并保持,至灯全部点亮,再逐个熄灭。 4)14键:左右两侧灯逐对向中间点亮,熄灭,当灯对相遇后,向相反方向进行,循环两次返回。 (3)数码管显示为两位,一号为按键显示(显示被按下的键号),二号为功能号显示(显示执行的功能,从0—4分别对应1—7号键,8号键,12号键,13号键,14号键的功能) 功能实现方案: 51单片机的P0口(P0.0—P0.7)为低位地址总线,兼做数据总线,连接74LS273锁存器,输出的数据通过其锁存。 单片机P1口(P1.0—P1.7)用作通用I/O口,与键盘连接,其中,高四位(P1.4—P1.7)接为列控制线,低四位(P1.0—P1.3)接行控制线。 单片机P2口(P2.0—P2.5)为高位地址线,接外部74LS138译码芯片。P2口的P2.6引脚控制二极管的闪烁。P2.6口输出的脉冲,由单片机定时/计数器T0通过查询的方式所得到。(T0用于定发光二极管点亮与熄灭的延时时间,延时时间到,输出脉冲)

外部中断、定时(计数器)实验

课程:微处理器原理与应用 课时:4学时 教学环境:单片机实验室 教学方法:讲解相关内容,指导学生实验 实验二外部中断、定时/计数器实验 一、目的、任务和要求 1.1 实验目的 1. 掌握单片机中断系统的结构及工作原理。 2.掌握外部中断功能程序的一般结构和编程方法。 3.掌握单片机的定时/计数器的结构及工作原理。 4.掌握定时中断应用程序、计数器应用程序的典型结构和编程方法。 1.2 实验任务 1.对8051单片机的外部中断功能和I/O口功能,搭建一个外部中断控制输出的硬件电路,设计和调试通过相应的外部中断功能软件。 2.对8051单片机的定时/计数器功能和I/O口功能,搭建一个(种)或几个(种)应用定时/计数器的硬件电路,设计并调试通过相应的软件。 1.3实验要求 通过完成外部中断功能实验项目,掌握中断初始化的内容和中断子程序的结构,熟悉中断响应的过程和现场保护的意义,会正确运用堆栈指令作现场保护和现场恢复。 通过完成定时/计数器实验项目,掌握正确选择定时/计数器的工作方式和计数模式的方法,掌握定时/计数器的初值计算方法,会编写中断控制寄存器和定时器中断入口地址的初始化程序。 二、设备和器件 2.1实验设备 (1)微型计算机(PC机)(装配相关软件),(2)单片机实验箱或开发板。 2.2电路元器件 本实验采用Protues仿真软件搭建一个简单的单片机系统电路,进行电路仿真分析,不需要实际的元器件。若实验采用万能板(或面包板)搭建电路,则需要如下元器件:

LED发光二极管,510Ω限流电阻,小按键、软导线等。 学生可自己在课后搭建电路进行实验,并与仿真实验比较。 三、实验内容及步骤 3.1外部中断控制流水灯的实验内容及步骤 (1)根据实验任务作电路原理图设计、作电路布局设计、通过Protues仿真软件来完成单片机硬件系统的搭建。电路图如3.1所示。 (2) 通过“μVision4”软件编辑外部中断控制流水灯的程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。 (3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。 3.2 定时中断控制流水灯电路的实验内容及步骤 (1) 根据上面已搭建好的外部中断控制流水灯电路完成本任务。 (2) 通过“μVision4”软件编辑定时中断控制流水灯程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。 (3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。 3.3外部脉冲个数计数显示的实验内容及步骤 (1)根据实验任务作电路原理图设计、作电路布局设计、通过Protues仿真软件来完成单片机硬件系统的搭建。电路图如3.2所示。 (2) 通过“μVision4”软件编辑外部中断控制流水灯的程序,并将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。 (3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。 说明:单片机实验板使用STC89C51RC-RD+系列单片机,利用RS232串口和STC-ISP V33.exe通信软件(或开发板自带下载软件)来下载*.hex机器程序代码。 3.4 参考电路与程序代码 1参考电路 (1)外部中断控制输出的流水灯电路简图

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

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--); }

开关键盘控制流水灯设计

开关/键盘控制流水灯设计 摘要 目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的流水灯,主要介绍了利用89C51制作一简易流水灯的软硬件设计过程,可实现花样流水灯的效果,重点给出了其软件编程的思想方法。 关键词:89C51单片机,霓虹灯,开关/按键

目录 1绪论 (1) 2硬件设计 (1) 2.1芯片介绍 (1) 2.2电源 (2) 2.3时钟 (2) 2.4控制线:控制线共有4根 (2) 2.5 I/O线 (3) 2.6晶振电路 (3) 2.7 LED灯电路 (6) 3程序设计 (7) 3.1 程序流程图 (7) 3.2程序设计 (7) 总结 (13) 参考文献 (14)

1绪论 目前,国内外对于单片机流水灯的研究,大多是利用89c51单片机,软硬件相结合,构造成最简单的流水灯.城市夜景中,变幻多姿的霓虹灯历来是一道亮丽的风景。利用单片机的自动控制功能,设计出相应不同的电路,可以实现彩灯不同模式的流水效果。本设计通过对器件选择和线路连接进行分析讨论,结合相应的软件设计,达到相应的设计要求. 2硬件设计 2.1芯片介绍 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机. 从图1中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

推荐-基于单片机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所示。

定时器控制流水灯

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

花样流水灯设计

一、原理图设计的目的: 利用AT89C51,通过控制按键来实现六种流水灯花样的转换,实现花样流水灯的设计,同时通过外部中断0,来控制流水灯的速度。 二、各器件的功能作用: 1、AT89C51 AT89C51有40个引脚,每个引脚都有其功能。本次设计中,利用P0口当输出口,输出低电平来驱动发光二极管点亮。利用P1.0~P1.5六个引脚,通过按键接地,然后采用扫描的方式,判断哪个引脚所接按键按下,从而来控制六种流水灯的花样。利用P3.2引脚外接按键接地,通过控制按键来减慢流水灯的速度,利用P3.3引脚外接按键接地,通过控制按键来提高流水灯的速度。利用P3.7输出低电平,导通三极管Q1,从而给八个发光二极管的阳极加高电平,一旦P0口输出低电平就可以驱动发光二极管。 2、八个发光二极管: 通过八个发光二极管来实现流水灯的变化,用低电平驱动发光二级管亮,同时,用高电平使其熄灭 。 3、按键

通过P1.0-P1.5外接的按键来实现流水灯各种花样的变化,当按键按下时,驱动一种流水灯花样的闪烁。同时,利用按键来提供外部中断,当按下按键时,产生一个外部中断,向CPU申请中断,CPU 响应其中断,因此可以用按键来实现提高流水灯闪烁的速度。 通过在RST口处加上一个按钮手动复位电路,利用复位按钮可以使运行中的流水灯复位到初始的状态。 4、排阻 因为P0口作为输出口时需要外接上拉电阻 三、设计原理图:

四、程序如下: #include //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数 void delay(uint);//声明延时函数 void main(void) { uint i; uchar temp; TCON=0x05; IE=0x85; PX1=1; PX0=0; while(1) { temp=0x01; for(i=0;i<8;i++) //8个流水灯逐个闪动 {

相关主题
文本预览
相关文档 最新文档