当前位置:文档之家› 第13课,用外中断方式读按键,控制灯的亮灭

第13课,用外中断方式读按键,控制灯的亮灭

第13课,用外中断方式读按键,控制灯的亮灭
第13课,用外中断方式读按键,控制灯的亮灭

第05课,标记的用法,用一个按键控制1个LED灯的亮灭

第5课,标记的用法,用一个按键控制1个LED灯的亮灭,按键去抖 这一课,我们学习怎么用一个按键K1控制1个LED灯的亮和灭两种状态。按一次K1灯亮,再按一次K1灯灭。再按一次又亮,再按一次又灭。 我们学习一下用一个bit变量来做一个标记,然后在按键的控制下,这个标记会变化,再根据这个标记的值,LED也输出不同的状态。 因为按键按下时可能会有抖动的情况,每次按下时,可能会发生了人难以觉察到的多次抖动,相当于一下子按下了很多次。这会导致程序无法识别出您真正的按键意图。 但是抖动一般都是发生在刚按下键和松开键的时候,所以,我们只要避开这一段时间,等键稳定按下或者松开时,再去读它的值,一般就可以正确读取了。 所以,当读到第一次按键的值时,要延时等待一会,再处理。在松开后,也延时一会,免得检测到松开的抖动以为又有按键。(注,更复杂的应用,需要在按下延时之后重新验证按键,为了简化和方便理解,这个例程里没有这样做。) 另外,因为程序是循环运行的,当一次按键处理后,又会再循环回来继续检测,如果您的按键这时还没有松开,又会被读到一次新的按键,并做处理。所以我们还要做一个特殊的处理,识别到一个按键并处理完成之后,还要等待这个按键松开后,再继续循环运行。 看程序:

请根据例程里的注释理解程序。 请编译,进入仿真,全速运行,看结果。 全速后,由于light变量初始化时默认为0,所以灯是亮的。按下K1,松开后,灯灭了;再按一次K1,松开后,灯灭了。 这个例子里,我们只用一个按键就控制了灯的亮灭,这种方法可以节省了硬件资源,也就是节省了硬件成本。在实际项目设计中,有成本优势,产品就更具竞争力。所以我们应该多学习类似的可以节省资源的方法。 作业: 改为4个按键,分别控制4个LED的亮和灭。相当应用到多个房间的单键开关灯共用一个cpu处理。

粤教粤科版小学科学四年级上册科学《控制灯泡的亮与灭》练习

4.4 控制灯泡的亮与灭 一、填空题。 1、在电路中接入()就可以控制灯泡的亮与灭。 2、在串联电路中,一个开关可以控制()灯泡的亮与灭。 3、在并联电路中,一个开关可以控制()灯泡的亮与灭。 4、开关的功能是()和()电路。 5、开关安装在电路的不同位置,控制用电器的结果有可能()。 二、判断题。 1、开关是电路中控制电流通断的元件。() 2、在同一个电路中,一个开关只能控制一个灯泡的亮与灭。() 3、控制灯泡的亮与灭,只有串联电路可以。() 4、生活中常见的漏电保护开关是控制开关。() 5、遥控器不是开关。() 三、单选题。 1、一旦电器发生事故,首先利用()断开电路。 A、开关 B、电线 C、灯泡 2、下列材料能用来制作小开关的是()。 A、塑料和铁片 B、塑料盒铜片 C、铜片和铝片 3、为了使电筒的亮度增大,可以让电池的连接方式为()。 A、串联 B、并联 4、我们教室里的灯管,一个开关控制一个灯管,请问这是()连接方式。 A、串联 B、并联 C、无法判断 四、简答题。 1、生活中的电路开关有哪些类型? 2、电路中的开关有什么作用? 4.4 控制灯泡的亮与灭答案

一、填空题。 1、开关 2、多个 3、一个 4、连接断开 5、不同 二、判断题。 1、√ 2、× 3、× 4、√ 5、× 三、单选题。 1、A 2、B 3、A 4、B 四、简答题。 1、答:除了我们常见的手动开关外,还有声控开关、触摸开关、光控开关、和红外线开关等。 2、答:开关是用来接通或切断电路的,是电路中不可缺少的控制部件;开关给人们生活带来很大便利,并能有效地节约能源。 粤教版四上科学

实验五 流水灯与中断控制

一、实验设备 (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/0c13441980.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灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。 七、实验结论与感悟(或讨论)

控制一个LED灯的亮和灭

江苏省盐城技师学院 教案首页 编号:YJQD-0507-07 版本:B/O 流水号:编制:审核:批准:授课日期 班级 课题:控制一个LED灯的亮和灭 教学目的、要求:1、学习用查表方法使端口P1作单一灯变化。 2、熟练掌握延时子程序的编写与调用。 教学重点、难点:查表程序的使用。 授课方法:任务驱动型教学、启发式教学、实验教学 教学参考及教具(含电教设备):多媒体设备、高职高专规划教材《单片机原理与控制技术》、DVCC系列单片机微机仿真实验系统实验指导书。 授课执行情况及分析: 板书和教学设计: 课题:控制一个LED灯的亮和灭 一、知识回顾 二、任务引入 三、任务分析 四、相关知识 (1)查表程序的使用 (2)89C51单片机各引脚功能(3)流程图的绘制方法五、任务实施 六、任务拓展 七、巡回指导 八、结束指导

课题:控制一个LED灯的亮和灭 课前准备: 1、DVCC系列单片机微机仿真实验系统; 2、安装有DVCC实验系统软件的计算机。 3、万用表及常用电工工具,通用检测电源。 组织教学: 检查学生人数、标志牌佩戴、工作服及工具准备情况。 知识回顾(复习提问): 1、P1口的作用? 2、软件延时程序的编写方法? 任务引入: 在P1端口上接8个发光二极管L1~L8,左移2次,右移2次,闪烁2次(延时0.2S)。 任务分析: 1、硬件图

2、流程图 开始 置DPTR 取码值 是否结束 输到P1 DPTR+1=DPTR 延时0.2S 相关知识: 1、查表程序的使用 2、89C51的各引脚功能 3、流程图的绘制方法 任务实施:(示范操作) 1、查表指令功能说明 (1)利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。

(完整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

单片机按键的解决方法

单片机按键的解决解决方案 1、单片机上的按键控制一般采用两种控制方法:中断和查询。中断必须借助中断引脚,而 查询按键可用任何IO端口。按键较少时,一个按键占用一个端口,而按键较多时,多采用矩阵形式(如:经常用4个端口作为输出,4个端口作为输入的4X4矩阵来获得16个按键);还可以用单片机的AD转换功能一个引脚接多个按键,根据电阻分压原理判断是哪个按键按下。 2、中断形式 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器. 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组 第0组:所有4bit用于指定响应优先级; 第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级; 第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级; 第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级; 第4组:所有4位用于指定抢占式优先级。 所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级。 有几点需要注意的是: 1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果; 2)抢占式优先级别相同的中断源之间没有嵌套关系; 3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。 GPIO外部中断: STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间智能使用一个,如:PA0,PB0,PC0,PD0,PE0,PF0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能使用了,在此情况下我们使用类似于PB1,PC2这种末端序号不同的外部中断源,每一组使用一个中断标志EXTI x.EXTI0~EXTI4这5个外部中断有着自己单独的中断响应函数。EXTI5~EXTI9共用一个中断响应函数,EXTI10~EXTI15共使用一个中断响应函数。 对于中断的控制,STM32有一个专用的管理机构NVIC.中断的使能,挂起,优先级,活动等等都是由NVIC在管理的。 编写IO口外部中断步骤及其注意事项:

定时中断流水灯程序电路图

实验设计 题目: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

open,close控制小灯亮灭

实验名称:open/close控制小灯亮灭 一.实验目的 通过该实验实习,进一步熟悉KDS嵌入式开发系统环境和C语言以及调试方式;加强串口通信(SCI)基本原理及编程原理;理解课本中的程序代码;分别运用查询方式、中断方式实现通信。 二.实验内容 通过串口调试器发送open/close控制小灯亮灭 三.实验过程 1.m ain.c函数 //说明见工程文件夹下的Doc文件夹内Readme.txt文件 //========================================================= #include "includes.h" //包含总头文件 int main(void) { //1. 声明主函数使用的变量 uint_32 mRuncount; //主循环计数器 //2. 关总中断 DISABLE_INTERRUPTS; //3. 初始化外设模块 light_init(RUN_LIGHT_BLUE, LIGHT_OFF); //蓝灯初始化 light_init(RUN_LIGHT_RED, LIGHT_OFF); //蓝灯初始化 uart_init(UART_0,MCGIRCLK, 9600); //串口0时钟MCGIRCLK(4000Khz) uart_init (UART_1,BUSCLK, 9600); //串口1、2使用总线时钟24000Khz uart_init (UART_2,BUSCLK, 9600); //波特率使用9600 uart_send_string(UART_0, "Hello Uart_0!\r\n"); //串口发送初始化提示 uart_send_string(UART_1, "Hello Uart_1!\r\n"); uart_send_string(UART_2, "Hello Uart_2!\r\n");//只插了串口2,所以在串口调试器中只有Hello Uart_2! //4. 给有关变量赋初值 mRuncount=0; //主循环计数器 //5. 使能模块中断 uart_enable_re_int(UART_0); //使能串口0接收中断

第四单元第21课控制灯泡的亮与灭教学设计

第四单元第21课控制灯泡的亮与灭教学设计 第21课《控制灯泡的亮与灭》教 学设计 一、教材分析 本课是粤教科技版《科学》四年级上册第4单元“简单电路” 的第3课。本课活动是通过研究开关的作用,让学生认识到开关可 以连接和断开闭合电路,知道开关是控制电路的元件。 本课共由2个活动组成。活动1“开关的作用”,主要是把开关接入一个简单电路中,控制灯泡的亮与灭,认识到开关的作用 是连接和断开电路。活动2“开关加在哪里”是让学生在有两个灯 泡的不同方法连接的电路中,同时控制两个灯泡的亮与灭时需要 把开关安装在不同位置。 二、学情分析 四年级的学生已经在生活中对开关有了比较多的了解,有动手操作开关的基础,对开关的作用有了基本的感性认识,但开关 控制电路的原理是什么,这一点学生一般没有去了解。对于在只 有一个灯泡的简单电路中接入开关,学生能很快理解并掌握。但

是增加一个灯泡后变成两个灯泡的电路,如何同时控制两个灯泡 的亮与灭,或者分别控制每个灯泡的亮与灭,这需要教师引导学 生根据前一课的学习基础进行思考,激发他们从闭合回路方面去 寻找连接方法。同时在前面的学习中经历过画电路图,学生有能 力将连接的方法用简图画出来。 三、教学目标 1.知道开关能连通和断开电路。 2.观察常用的各种开关,了解控制电路的方法。 3.养成节约用电的习惯。 四、教学重、难点 教学重点:通过用开关来控制电路的探究活动,认识开关如何 控制电路。 教学难点:在有两个灯泡的不同方法连接的电路中,同时控制两个灯泡的亮与灭时开关加在哪里。

2 粤教科技版《科学》四年级上册教学设计 五、教学准备 教具准备:多媒体教学仪器、实物投影、教学课件等。学 具准备:灯泡、导线、电池、开关、学生活动册等。 六、教学过程 (一)任务驱动 设置情境:几个小朋友在玩电灯笼,其中波波自己制作的电灯笼中的灯泡一直在亮着。 问题:能不能在这个电灯笼加一个开关? 交流:对教科书中妍妍提出的问题进行思考。 任务:在电路中接入开关,控制电路中灯泡的亮与灭。 (二)活动探究 1.活动1:开关的作用 出示:没有开关的电路图。 提示:在电路中接入开关,通过开关可以控制开关的亮与灭。任 务:尝试将开关接入电路中,了解控制电路的方法。 活动:以小组为单位将开关接入电路中。 汇报:可以在电路中接入开关控制灯泡的亮与灭。开关处于“开”的状态,灯泡不亮; 开关处于“闭”的状态,灯泡就亮。 小结:开关能通过让电路形成闭合或断开的状态来控制电路。 2.活动2:开关加在哪里 提示:电源、灯泡、开关连接好后,当开关处于闭合状态时,电路构成了闭合回路,当开关处于打开状态时,电路就断开了。 任务:若要控制同一电路中的两个灯泡的亮与灭,如何在电路中连接开关?出 示:电路元件图。 要求:先在图上画一画连接起来方法再尝试动手操作,可以最后把电路是怎么连接的用简图画下来。完成学生活动手册内容。 活动:学生以小组为单位研究怎么连接导线。 汇报:利用实物和电路的连接简图这两个内容,分别从不同的连接方法汇报如何连接导线。 评价:根据学生是否能说明白怎么控制两个灯泡是否能同时发光进行评价。根据学

单片机按键控制蜂鸣器发声程序

#include typedef unsigned char uint8; typedef unsigned int uint16; uint8 Count,i; sbit Speak =P1A2; //蜂鸣器器控制脚 sbit keyl =卩3人2;〃按键控制引脚 sbit key2 =P3A3; sbit key3 =P3A4; /* 以下数组是音符编码 */ uint8 code SONG[] ={ 0xff,0x39,0x30,0x33,0x30,0xff,0x30,0x30,0x00,}; void Time0_Init()// 定时器 T0 方式 1 ,定时 10ms { TMOD = 0x01; IE = 0x82; TH0 = 0xDC; TL0 = 0x00; void Time0_Int() interrupt 1 { TH0 = 0xDC; TL0 = 0x00; Count++; } void delay (uint8 k)// 按键防抖延时 { uint8 j; while((k--)!=0) { for(j=0;j<125;j++) {;} } } void Delay_xMs(uint8 x)// 发声延时 { uint8 i,j; for(i=0; i

Count = 0; // 中断计数器清 0 Addr = i *3; while(1) { Temp1 = SONG[Addr++]; if (Temp1 == 0xFF) //休止符 { TR0 = 0; Delay_xMs(100); } else if (Temp1 == 0x00) //歌曲结束符 { return; } else { Temp2 = SONG[Addr++]; TR0 = 1; while(1) { Speak = ~Speak; Delay_xMs(Temp1); if(Temp2 == Count) { Count = 0; break; } } } } }void keyscan (void)// 按键切换声音函数{ if(key1==0) { delay(10); if(key1==0) {

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

实验一流水灯实验 一、实验目的 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

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

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

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

用51单片机中断编写的4x4键盘程序

用51单片机中断编写的4x4键盘程序 应用查询扫描编写键盘程序,由于要给按键去抖动,程序变得比较复杂和冗长(详见2013年9月29日博文《MSP430和 AT89C51单片机4x4键盘C程序》),如果用中断编写,设置中断响应在下降沿时执行中断,则程序编写不用去抖动判断,所以相比较要简单很多!下面用汇编和C语言两种方式编写4X4键盘程序! 一、汇编程序 ORG 0000H LJMP MAIN ORG 0003h Ljmp ZD0

ORG 000Bh LJMP TZD0 ORG 0013h Ljmp ZD1 ORG 001Bh LJMP TZD1 ORG 0040H MAIN: Mov TMOD,#66h MOV TH0,#0ffh MOV TL0,#0ffh MOV TH1,#0ffh MOV TL1,#0ffh SETB EA SETB ET0 SETB TR0 SETB ET1 SETB TR1 SETB IT0 SETB IT1 SETB EX0 SETB EX1 xh: mov P1,#0feh

Lcall Delay mov P1,#0fdh Lcall Delay mov P1,#0fbh Lcall Delay mov P1,#0f7h Lcall Delay SJMP xh ZD0: JNB P1.0,dat1 JNB P1.1,dat2 JNB P1.2,dat3 JNB P1.3,dat4 dat1: mov P2,#06h ;1 sjmp ZD0R dat2: mov P2,#5bh ;2 sjmp ZD0R dat3: mov P2,#4fh ;3 sjmp ZD0R dat4: mov P2,#66h ;4 ZD0R: reti ZD1: JNB P1.0,dat5

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工作室”也就是“手把手教你学单片机”的视频后很清楚明了,之后好多东西也是从上边学到,就不再赘述了。 指导老师签字: 日期:

按键控制单片机PWM输出设计

学号1322010110 天津城建大学 单片机原理及应用A课程 设计说明书 按键控制单片机PWM输出设计起止日期:2016年05月30日至2016年6月10日 学生姓名 班级 成绩 指导教师(签字) 控制与机械工程学院 2016年6月10日

目录 第一章系统方案设计 (1) 1.1 PWM (1) 1.2 STC12C5A60S2简介 (1) 1.3 仿真工具介绍 (2) 1.3.1 Protues简介 (2) 1.3.2 Keil uVision3简介 (4) 第二章硬件电路设计 (5) 2.1 复位电路 (5) 2.2 时钟电路 (5) 2.3 按键中断 (5) 2.4 显示电路 (6) 第三章程序设计流程图 (7) 第四章系统仿真 (8) 4.1 仿真图 (8) 4.2 程序 (8) 4.3 PCB............................................................................................................... 错误!未定义书签。参考资料 .................................................................................................................... 错误!未定义书签。

第一章系统方案设计 1.1 PWM PWM的全称是Pulse Width Modulation(脉冲宽度调制),它是通过改变输出方波的占空比来改变等效的输出电压。 1.2 STC12C5A60S2简介 STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。 1)管脚说明: 1、P0.0~P0.7 P0:P0口既可以作为输入/输出口,也可以作为地址/数据复用总线使用。当P0口 作为输入/输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线A0~A7,数据线D0~D7 2、P1.0/ADC0/CLKOUT2 标准IO口、ADC输入通道0、独立波特率发生器的时钟输出 3、P1.1/ADC1 4、P1.2/ADC2/ECI/RxD2 标准IO口、ADC输入通道2、PCA计数器的外部脉冲输入脚,第二串口数据接收端 5、P1.3/ADC3/CCP0/TxD2 外部信号捕获,高速脉冲输出及脉宽调制输出、第二串口数据发送端 6、P1.4/ADC4/CCP1/SS非 SPI同步串行接口的从机选择信号 7、P1.5/ADC5/MOSI SPI同步串行接口的主出从入(主器件的输入和从器件的输出) 8、P1.6/ADC7/SCLK SPI同步串行接口的主入从出 9、P2.0~P2.7 10、P2口内部有上拉电阻,既可作为输入输出口(8位准双向口),也可作为高8位地址总线使用。 11、P3.0/RxD 标准IO口、串口1数据接收端 12、P3.1/INT0非 外部中断0,下降沿中断或低电平中断 13、P3.3/INT1 14、P3.4/T0/INT非/CLKOUT0 定时器计数器0外部输入、定时器0下降沿中断、定时计数器0的时钟输出 2)A/D转换器的结构: STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口,有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型IO口,用户可以通过软件设置将8路中的任何一路设置为A/D 转换,不须作为A/D使用的口可继续作为IO口使用。 单片机ADC由多路开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器以及ADC_CONTER

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

课程:微处理器原理与应用 课时: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)外部中断控制输出的流水灯电路简图

第21课控制灯泡的亮与灭教案教学设计

第21课控制灯泡的亮与灭教案教学设计 第21课《控制灯泡的亮与灭》教 学设计 一、教材分析 本课是粤教科技版《科学》四年级上册第4单元“简单电路” 的第3课。本课活动是通过研究开关的作用,让学生认识到开关可 以连接和断开闭合电路,知道开关是控制电路的元件。 本课共由2个活动组成。活动1“开关的作用”,主要是把开关接入一个简单电路中,控制灯泡的亮与灭,认识到开关的作用 是连接和断开电路。活动2“开关加在哪里”是让学生在有两个灯 泡的不同方法连接的电路中,同时控制两个灯泡的亮与灭时需要 把开关安装在不同位置。 二、学情分析 四年级的学生已经在生活中对开关有了比较多的了解,有动手操作开关的基础,对开关的作用有了基本的感性认识,但开关 控制电路的原理是什么,这一点学生一般没有去了解。对于在只 有一个灯泡的简单电路中接入开关,学生能很快理解并掌握。但

是增加一个灯泡后变成两个灯泡的电路,如何同时控制两个灯泡 的亮与灭,或者分别控制每个灯泡的亮与灭,这需要教师引导学 生根据前一课的学习基础进行思考,激发他们从闭合回路方面去 寻找连接方法。同时在前面的学习中经历过画电路图,学生有能 力将连接的方法用简图画出来。 三、教学目标 1.知道开关能连通和断开电路。 2.观察常用的各种开关,了解控制电路的方法。 3.养成节约用电的习惯。 四、教学重、难点 教学重点:通过用开关来控制电路的探究活动,认识开关如何 控制电路。 教学难点:在有两个灯泡的不同方法连接的电路中,同时控制两个灯泡的亮与灭时开关加在哪里。

2 粤教科技版《科学》四年级上册教学设计 五、教学准备 教具准备:多媒体教学仪器、实物投影、教学课件等。学 具准备:灯泡、导线、电池、开关、学生活动册等。 六、教学过程 (一)任务驱动 设置情境:几个小朋友在玩电灯笼,其中波波自己制作的电灯笼中的灯泡一直在亮着。 问题:能不能在这个电灯笼加一个开关? 交流:对教科书中妍妍提出的问题进行思考。 任务:在电路中接入开关,控制电路中灯泡的亮与灭。 (二)活动探究 1.活动1:开关的作用 出示:没有开关的电路图。 提示:在电路中接入开关,通过开关可以控制开关的亮与灭。任 务:尝试将开关接入电路中,了解控制电路的方法。 活动:以小组为单位将开关接入电路中。 汇报:可以在电路中接入开关控制灯泡的亮与灭。开关处于“开”的状态,灯泡不亮; 开关处于“闭”的状态,灯泡就亮。 小结:开关能通过让电路形成闭合或断开的状态来控制电路。 2.活动2:开关加在哪里 提示:电源、灯泡、开关连接好后,当开关处于闭合状态时,电路构成了闭合回路,当开关处于打开状态时,电路就断开了。 任务:若要控制同一电路中的两个灯泡的亮与灭,如何在电路中连接开关?出 示:电路元件图。 要求:先在图上画一画连接起来方法再尝试动手操作,可以最后把电路是怎么连接的用简图画下来。完成学生活动手册内容。 活动:学生以小组为单位研究怎么连接导线。 汇报:利用实物和电路的连接简图这两个内容,分别从不同的连接方法汇报如何连接导线。 评价:根据学生是否能说明白怎么控制两个灯泡是否能同时发光进行评价。根据学

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