实验一 按键实验

合集下载

综合实验一——按键控制流水灯实验(查询方式)

综合实验一——按键控制流水灯实验(查询方式)

北京科技大学微型计算机原理实验报告学院:____自动化学院________________专业、年级:_自动化1101_ ______________ 姓名:__廖文骏_ ________________学号:_ 20111002124 ____________ 指导教师:___ _____王粉花____________2013年12 月综合实验一按键控制流水灯实验(查询方式)实验学时:2学时一、实验目的1.掌握ATmega16 I/O口操作相关寄存器2.掌握CodeVision AVR软件的使用3. 复习C语言,总结单片机C语言的特点二、实验内容1. 设计一个简单控制程序,功能是8个LED逐一循环发光0.5s,构成“流水灯”。

2. 用两个按键K1和K2控制流水灯(中断方式):(1)当按下K1时,流水灯从左向右流动;(2)当按下K2时,流水灯从右向左流动。

三、实验所用仪表及设备硬件:PC机一台、AVR_StudyV1.1实验板软件:CodeVision AVR集成开发软件、SLISP下载软件四、实验原理ATmega16芯片有PORTA、PORTB、PORTC、PORTD(简称PA、PB、PC、PD)4组8位,共32路通用I/O接口,分别对应于芯片上32根I/O引脚。

所有这些I/O口都是双(有的为3)功能复用的。

其中第一功能均作为数字通用I/O接口使用,而复用功能则分别用于中断、时钟/计数器、USRAT、I2C和SPI串行通信、模拟比较、捕捉等应用。

这些I/O口同外围电路的有机组合,构成各式各样的单片机嵌入式系统的前向、后向通道接口,人机交互接口和数据通信接口,形成和实现了千变万化的应用。

每组I/O口配备三个8位寄存器,它们分别是方向控制寄存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx(x=A\B\C\D)。

I/O口的工作方式和表现特征由这3个I/O口寄存器控制。

AVR通用I/O端口的引脚配置情况:I/O口引脚配置表表中的PUD为寄存器SFIOR中的一位,它的作用相当AVR全部I/O口内部上拉电阻的总开关。

数码管及按键实验报告模板(1)

数码管及按键实验报告模板(1)

数码管及流水灯实验报告成员:2012年11月一、实验要求:1.实验1:在开发板上调试利用按键控制数码管从1累加到F变化(S2加、S3减)(不同分组按键利用IO口不同);2.实验2:利用开发板进行秒表设计(显示分、秒,分辨率0.1s,如0.58.5)(参考P189程序);二、硬件原理图1. 硬件原理图A到F秒表2.原理图分析:实验一原理LED数码管是由4个发光二极管中的7个长条形发光二极管(俗称7笔段),按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管dp放在右下方,用来显示小数点,。

只要控制7笔段按一定的要求亮与灭,就能显示出十六进制0~F。

实验二原理以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。

电平信号按照dp,g,e…a 的顺序组合形成的数据字称为该字符对应的段码三、软件设计系统1. 软件设计思想与流程图软件流程图如下(标准流程图画法)……:实验一、A到F实验二、秒表2.软件代码:实验一、秒表#include <avr/io.h> //IO定义#include <util/delay.h> //延时库文件const unsigned char led_7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//段码列表,共阳极,0~9的代码列表const unsigned char position[4]={0xEF,0xDF,0xBF,0x7F};//位输出代码,分别定义PD5~Pd0单一输出“0”的状态unsigned char time[3]; //时、分、秒计数unsigned char dis_buff[4]; //显示缓冲区,存放要显示的6字符的段码unsigned char time_counter; //1s计数器unsigned char point_on=0; //秒显示标志void display(void){unsigned char i;for(i=0;i<=3;i++) //显示循环开始{PORTB = led_7[dis_buff[i]]; //段码写入PORTAif(point_on && (i == 1||i == 3))PORTB &= 0x7F; //小数点显示PORTD = position[i]; //位信号写入PORTD_delay_ms(1); //点亮延时PORTD = 0xFF; //清除位信号}}void time_to_disbuffer(void){/* unsigned char i,j=0;for(i=0;i<=2;i++);{dis_buff[j++] = time[i] % 10;dis_buff[j++] = time[i] / 10;}*/dis_buff[0] = time[0] / 10;dis_buff[1] = time[1] % 10;dis_buff[2] = time[1] / 10;dis_buff[3] = time[2] % 10;}void main(void ){PORTB =0xFF; //IO初始化DDRB =0xFF;PORTD =0xFF;DDRD =0xFF;time[2] = 11;time[1] = 00; time[0] = 23; //时间初值time_to_disbuffer(); //将时间值装载至缓冲区while (1) //循环开始{display(); //调用显示函数if (++time[0]>=99) //次数计数{time[0] = 0; //重置计数point_on= ~point_on; //小数点位求反if (++time[1] >=60) //秒数目达到60后进位重置{time[1] = 0;if (++time[2] >= 60) //分计数达到60后进位重置{time[2] = 0;}}}time_to_disbuffer(); //时间装载至缓冲区_delay_ms(5); //延时}}实验二、0到F#include <avr/io.h> //IO定义#include <util/delay.h> //延时库文件const char led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//段码列表,共阳极,0~F的代码列表int main(void){char i=0; //定义iPORTB=0xc0; //定义输入端的初始值,0xFF表示高电平DDRB=0xff; //定义DB口为输入端PORTD=0xef; //定义输出端的初始值,0x70表示低电平DDRD=0xff; //定义DD口为输出端while(1){if((PINC&(1<<PC3))==0) //显示循环开始{_delay_ms(10);if((PINC&(1<<PC3))==0) //检测PC3是否按下{if(i<16){PORTB=led[i];i++;}if(i>=16)i=0;}}while(!(PINC&(1<<PC3))); //再次放手检测if((PINC&(1<<PC2))==0) //显示循环开始{_delay_ms(10); //点亮时间if((PINC&(1<<PC2))==0) //检测PC2是否按下{if(i<16){PORTB=led[i];i--;}if(i>=16)i=0;}}while(!(PINC&(1<<PC2))); //再次放手检测}}四. 成员分工及完成情况五. 意见及建议实验报告、编译工程文件、仿真文件打包提供电子版。

按键显示电路实验报告(3篇)

按键显示电路实验报告(3篇)

第1篇一、实验目的1. 熟悉按键电路的基本原理和设计方法。

2. 掌握按键电路的搭建和调试方法。

3. 了解按键电路在实际应用中的重要性。

4. 提高动手实践能力和电路分析能力。

二、实验原理按键显示电路是一种将按键输入转换为数字信号,并通过显示设备进行显示的电路。

本实验主要涉及以下原理:1. 按键原理:按键通过机械触点实现电路的通断,当按键被按下时,电路接通,产生一个低电平信号;当按键释放时,电路断开,产生一个高电平信号。

2. 译码电路:将按键输入的信号转换为相应的数字信号,以便后续处理。

3. 显示电路:将数字信号转换为可视化的信息,如LED灯、数码管等。

三、实验器材1. 电路板2. 按键3. 电阻4. LED灯5. 数码管6. 电源7. 基本工具四、实验步骤1. 按键电路搭建(1)根据电路原理图,在电路板上焊接按键、电阻、LED灯等元器件。

(2)连接电源,确保电路板供电正常。

2. 译码电路搭建(1)根据电路原理图,在电路板上焊接译码电路所需的元器件。

(2)连接译码电路与按键电路,确保信号传输正常。

3. 显示电路搭建(1)根据电路原理图,在电路板上焊接显示电路所需的元器件。

(2)连接显示电路与译码电路,确保信号传输正常。

4. 电路调试(1)检查电路连接是否正确,确保无短路、断路等问题。

(2)按下按键,观察LED灯或数码管显示是否正常。

(3)根据需要调整电路参数,如电阻阻值、电源电压等,以达到最佳显示效果。

五、实验结果与分析1. 实验结果通过实验,成功搭建了一个按键显示电路,按下按键后,LED灯或数码管能够正确显示数字信号。

2. 结果分析(1)按键电路能够正常工作,实现电路通断。

(2)译码电路能够将按键输入转换为相应的数字信号。

(3)显示电路能够将数字信号转换为可视化的信息。

六、实验总结1. 通过本次实验,掌握了按键电路的基本原理和设计方法。

2. 提高了动手实践能力和电路分析能力。

3. 了解了按键电路在实际应用中的重要性。

按键计数蜂鸣器实验报告(3篇)

按键计数蜂鸣器实验报告(3篇)

第1篇一、实验目的1. 了解按键电路的工作原理。

2. 掌握蜂鸣器的工作原理及其控制方法。

3. 学习使用C语言进行嵌入式编程。

4. 培养动手实践能力和团队合作精神。

二、实验原理1. 按键电路:按键电路由按键、上拉电阻和下拉电阻组成。

当按键未被按下时,上拉电阻将输入端拉高;当按键被按下时,下拉电阻将输入端拉低。

2. 蜂鸣器电路:蜂鸣器是一种发声元件,其工作原理是利用电磁铁的磁力使振动膜片振动,从而产生声音。

蜂鸣器的控制主要通过改变输入信号的频率来实现。

3. 计数原理:通过按键输入信号,实现计数器的计数功能。

当按键被按下时,计数器加一;当按键被连续按下时,计数器的计数值随之增加。

三、实验器材1. 单片机开发板(如STC89C52)2. 按键3. 蜂鸣器4. 电阻5. 接线6. 电脑7. 调试软件(如Keil uVision)四、实验步骤1. 设计电路图:根据实验要求,设计按键、蜂鸣器和单片机的连接电路图。

2. 编写程序:使用C语言编写程序,实现按键计数和蜂鸣器控制功能。

3. 编译程序:将编写好的程序编译成机器码。

4. 烧录程序:将编译好的机器码烧录到单片机中。

5. 调试程序:通过调试软件对程序进行调试,确保程序正常运行。

6. 测试实验:将单片机连接到实验电路中,进行按键计数和蜂鸣器控制测试。

五、实验代码```cinclude <reg52.h>define uchar unsigned chardefine uint unsigned intsbit key = P3^2; // 按键连接到P3.2端口sbit buzzer = P1^0; // 蜂鸣器连接到P1.0端口uchar count = 0; // 计数器void delay(uint t) {uint i, j;for (i = 0; i < t; i++)for (j = 0; j < 127; j++);}void buzzer_on() {buzzer = 0; // 使蜂鸣器发声}void buzzer_off() {buzzer = 1; // 使蜂鸣器停止发声}void main() {while (1) {if (key == 0) { // 检测按键是否被按下delay(10); // 消抖if (key == 0) {count++; // 计数器加一buzzer_on(); // 使蜂鸣器发声delay(500); // 发声时间buzzer_off(); // 停止发声}}}}```六、实验结果与分析1. 当按键未被按下时,蜂鸣器不发声。

单片机按键实验实训报告

单片机按键实验实训报告

一、实验目的1. 理解单片机按键的工作原理和电路连接方法;2. 掌握按键消抖原理及其实现方法;3. 学会使用单片机编程控制按键功能,实现简单的输入控制;4. 提高单片机实验操作能力和编程能力。

二、实验仪器及设备1. 单片机开发板(如STC89C52);2. 按键;3. 万用表;4. 电脑;5. Keil C编译器。

三、实验原理1. 按键原理:按键是一种电子开关,按下时导通,松开时断开。

在单片机应用中,按键常用于输入控制信号。

2. 按键消抖原理:由于按键机械弹性,闭合和断开时会有一连串的抖动。

若直接读取按键状态,容易导致误操作。

因此,需要进行消抖处理。

3. 消抖方法:主要有软件消抖和硬件消抖两种方法。

本实验采用软件消抖方法,即在读取按键状态后,延时一段时间再读取,若两次读取结果一致,则认为按键状态稳定。

四、实验步骤1. 硬件连接:将按键一端接地,另一端与单片机的某个I/O口相连。

2. 编写程序:使用Keil C编译器编写程序,实现以下功能:(1)初始化I/O口,将按键连接的I/O口设置为输入模式;(2)读取按键状态,判断按键是否被按下;(3)进行消抖处理,若按键状态稳定,则执行相应的功能。

3. 编译程序:将编写好的程序编译成HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 实验验证:观察实验现象,验证按键功能是否实现。

五、实验结果与分析1. 硬件连接正确,程序编译无误。

2. 实验现象:当按下按键时,单片机执行相应的功能;松开按键后,按键功能停止。

3. 分析:通过软件消抖处理,有效避免了按键抖动导致的误操作。

六、实验总结1. 本实验成功实现了单片机按键控制功能,掌握了按键消抖原理及实现方法。

2. 通过实验,提高了单片机编程和实验操作能力。

3. 在后续的单片机应用中,可以灵活运用按键控制功能,实现各种输入控制需求。

4. 本次实验为单片机应用奠定了基础,为进一步学习单片机技术打下了良好基础。

原创操作性条件反射实验有哪些

原创操作性条件反射实验有哪些

原创操作性条件反射实验有哪些引言操作性条件反射是一种学习型实验,旨在探究动物和人类在特定刺激和行为之间的关联。

通过这种实验,我们可以观察到动物或人类对于特定刺激作出的反应。

操作性条件反射实验在行为心理学领域被广泛使用,有助于了解行为形成和学习过程。

本文将介绍一些原创的操作性条件反射实验。

实验一:按键训练实验目的:观察小白鼠在按键训练过程中的学习和行为变化。

实验步骤:1.准备按键训练装置,包括一个小白鼠笼、一个装有食物的容器和一个可以记录按键次数的设备。

2.将小白鼠放入笼子中,并让其适应环境。

3.启动装置,保持食物容器空闲状态。

4.记录小白鼠按键的次数,并观察它们是否寻找食物。

5.当小白鼠按键时,立即给予食物奖励,并记录下按键的次数。

预期结果:随着实验的进行,小白鼠应该逐渐学会按键以获取食物,并且按键的次数会逐渐增加。

实验二:杠杆压力实验目的:观察小猫在杠杆压力实验中的学习和行为变化。

实验步骤:1.准备一个小猫笼子和一个带有杠杆的装置。

2.将小猫放入笼子中,并让其适应环境。

3.启动装置,杠杆初始位置在无压力状态下。

4.记录小猫用爪子触动杠杆的次数,并观察它们是否发展出一种特定的行为模式。

5.当小猫用爪子触动杠杆时,适时给予奖励,并记录下触动的次数。

预期结果:小猫在实验过程中会逐渐学会用爪子触动杠杆,并且触动的次数会逐渐增加。

实验三:音响刺激实验目的:观察人类在音响刺激实验中的学习和行为变化。

实验步骤:1.准备一个音响和一段特定的音乐或声音。

2.让参与实验的人类听一段音乐或声音,并记录他们的反应。

3.确定一个特定的行动作为回应刺激的指示,例如鼓掌。

4.给予参与者刺激后,记录他们的回应并观察他们是否能建立起刺激和回应之间的关联。

5.随着实验的进行,改变音乐或声音,观察参与者是否能根据刺激调整他们的反应。

预期结果:参与者在实验过程中应该能够建立起刺激和回应之间的关联,并且能够根据刺激调整他们的反应。

结论操作性条件反射实验是一种能够观察和学习动物和人类行为变化的重要方法。

按键控制实验报告

按键控制实验报告

按键控制实验报告一、实验目的1. 了解按键电路的基本原理及应用。

2. 能够通过按键控制单片机运行程序。

3. 学习编写按键程序及调试技巧。

二、实验器材1. MSP430F149开发板 1 块。

2. USB数据线 1 根。

3. LED灯 1 个。

4. 按键开关 1 个。

5. 跳线若干。

6. 电脑 1 台。

三、实验原理按键是一种常见的开关元件。

按键只有在按下时才能导通,断开时则不导通。

根据按键的工作方式不同,分为常开型和常闭型两种。

按键开关是一种组合开关,一般由机械开关、按键和外壳等部分组成。

按键开关可以用于各种电子设备中,如电视机、音响、电脑等。

按键开关的原理与按键相同,但是通常它还可以控制各种开关设备的功能,例如电灯、电机等。

MSP430F149开发板是使用MSP430系列单片机的开发板。

MSP430F149开发板主要由单片机、外设模块和相关的外围元器件组成。

它可以实现丰富的功能,如模拟和数字信号的处理和控制、定时和计数、通信等。

3. GPIO口MSP430F149开发板上的引脚可以配置为不同的功能,其中GPIO口是最常用的。

GPIO 口支持单片机外部输入和输出操作,一个GPIO口可以设置为输入模式,另一个可以设置为输出模式。

四、实验步骤1. 硬件连接将按键开关接在P1.3引脚和地上,将LED灯接在P1.0引脚和地上。

2. 程序编写将以下代码复制到Code Composer Studio软件的编辑器中。

3. 程序调试首先,连接MSP430F149开发板和电脑,并通过Code Composer Studio软件将代码下载到MSP430F149开发板中。

然后按下开发板上的按键开关,看到LED灯会闪烁。

程序运行正常。

五、实验结论通过本次实验,我们了解了按键控制程序的编写方法,学会了如何使用MSP430F149开发板控制LED灯的闪烁。

同时,我们也体验到如何使用Code Composer Studio软件编写、下载代码和调试程序。

单个按键中断实验报告

单个按键中断实验报告

一、实验目的1. 熟悉单片机中断系统的工作原理和中断响应过程。

2. 掌握使用外部中断实现单个按键控制的实验方法。

3. 学习通过编程设置中断源、中断优先级和中断服务程序。

二、实验原理单片机的中断系统允许CPU在执行程序的过程中,暂停当前程序的执行,转而处理由外部事件引起的中断请求。

在本实验中,我们使用外部中断0(INT0)来实现单个按键的控制。

当按键按下时,通过外部中断0引脚(P3.2)向CPU发送中断请求。

CPU响应中断后,暂停当前程序的执行,转而执行外部中断0的中断服务程序(ISR)。

在中断服务程序中,我们可以根据按键的状态来执行相应的操作,例如点亮或熄灭LED灯。

三、实验设备1. 单片机开发板(如STC89C52)2. 按键3. LED灯4. 连接线5. 仿真软件(如Keil uVision)四、实验步骤1. 硬件连接:- 将按键的一个引脚连接到单片机的P3.2引脚(外部中断0)。

- 将按键的另一个引脚连接到地(GND)。

- 将LED灯的正极连接到单片机的P1.0引脚,负极连接到地(GND)。

2. 编写程序:- 使用Keil uVision软件编写程序。

- 初始化外部中断0,设置中断优先级和中断服务程序。

- 编写中断服务程序,根据按键状态控制LED灯的亮灭。

3. 编译程序:- 使用Keil uVision软件编译程序,生成可执行文件。

4. 下载程序:- 将编译好的程序下载到单片机开发板上。

5. 运行程序:- 观察按键按下时LED灯的亮灭状态,验证中断功能是否正常。

五、实验代码```c#include <reg52.h>#define LED P1_0#define BUTTON P3_2void main(void) {EA = 1; // 开启总中断EX0 = 1; // 开启外部中断0IT0 = 1; // 设置外部中断0为下降沿触发while (1) {// 主循环,等待中断}}void ext0_isr(void) interrupt 0 {LED = !LED; // 切换LED灯状态}```六、实验结果与分析1. 实验结果:- 按键按下时,LED灯亮;按键释放时,LED灯灭。

按键实验现象

按键实验现象

按键实验现象
1.按键状态显示:仅有1、2、3、4这四个开关能对LED灯进行控制。

而其他开关没有控制作用。

2.按键移位:开关1和2能对Led灯进行控制,并且按键一次,灯按顺序点亮一次。

3.按钮控制LED:只有开关1时才有第8盏灯点亮。

受按钮控制。

4.按下亮再按熄灭:长时间按按键,才会出现灯的点亮和熄灭。

5.读按键:按键一次,灯会按二进制递增点亮。

个人认为这个变化频率太快。

可以适当改进。

6.花样灯:此时开关1—4不处于控制状态。

按下开关5,灯从1到8依次点亮熄灭,呈现流水状态,最后停留在第8盏灯处。

按下开关6,偶次灯亮瞬间变化为奇数次灯亮,并呈现持久亮灯的现象。

按下开关7,所有灯熄灭。

按下开关8,灯从8到1依次点亮熄灭。

单片机按键实验报告

单片机按键实验报告

单片机按键实验报告篇一:单片机按键扫描实验报告键盘扫描一.实验目的(1)掌握矩阵键盘接口电路和键盘扫描编程方法。

(2)掌握按键值处理与显示电路设计。

二.实验任务(1)设计4*4键盘,编写各个键的特征码和对应的键值(0~F);(2)编程扫描按键,将按键对应的数字值使用数码管显示出来。

三.实验电路及连线方法1.采用动态显示连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。

由U15 输出段选码,U16 做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。

(实际电路连接是d7-d6-d5-d4-d3-d2-d1-d0?h-c-d-e-g-b-a-f)。

PW12 是电源端。

2.键盘电路连线方法:电路由16 个按键组成,用P1 口扩展4×4 行列式键盘。

J20 是键盘连接端,连接到P1 口。

J21 是行列键盘、独立键盘选择端,当J21 的短路片连接2-3脚时,构成4×4 行列式键盘;当J21 的短路片连接2-1 脚时,可形成3×4 行列式键盘,4 个独立式按键S4、S8、S12、S16,这4 个独立按键分别连接P1.4~P1.7;其他12 个键3×4 行列式键盘。

PW15 是电源端。

四.编程思路1.采用反转法识别按键的闭合。

2.采用动态显示将键值显示出来。

五.算法流程图六.资源分配1.用P1口进行查找按键2.用R3做键值指针3.用R1做动态显示为选码指针。

4.R5为延时指针。

七.程序设计KPIN:ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,AMOVP1,#0FHMOVA,P1ANLA,#0FHORLA,BCJNE A,#0FFH,KPIN1AJMP EXITKPIN1: MOVB,AMOVDPTR,#TABKPMOVR3,#0KPIN2: MOVA,R3MOVC A,@A+DPTRCJNE A,B,KPIN3MOVA,R3LOOP: MOVR1,#0FEH;键盘动态显示 LOOP1: MOVA,R3ANLA,#0FHMOV DPTR,#TABMOVC A,@A+DPTRCLRP2.0CLRP2.1MOVP0,ASETB P2.0NOPCLRP2.0LOOP2: MOVA,R1;位选码MOVP0,ASETB P2.1MOVR5,#250LOOP3: DJNZ R5,LOOP3CLRP2.1SJMP LOOPKPIN3: INCR3CJNE A,#0FFH,KPIN2EXIT: RETTABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBHDB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFHTAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FHDB 79H,33H,7CH,3BH,1BHEND八.调试出现的问题及解决问题1:程序正常运行,但按键显示出现乱码解决:动态显示笔形码错误,并改正。

按键的应用实验原理图解

按键的应用实验原理图解

按键的应用实验原理图解1. 简介按键是电子设备中常见的一种输入装置,它通过按压来产生开关信号,用于控制设备的启停、功能切换以及数据输入等操作。

本文将通过图解的方式介绍按键的应用实验原理,包括按键的基本原理、电路连接方式以及实验中常见的问题与解决方法。

2. 按键的基本原理按键是由按键开关和按键按下的方法组成的。

按键开关通常是由金属弹片和导电橡胶触点等元件组成,当按键按下时,金属弹片会与触点接触,形成导通通路,从而产生开关信号。

按键的按下方法通常有按压式、滑动式和旋转式等。

3. 按键的电路连接方式按键可以使用不同的电路连接方式,常见的有直接连接、分压电路连接和矩阵排列连接。

3.1 直接连接直接连接方式是指按键直接接入电路中,按键的两个引脚分别连接到电路的输入端和地端。

当按键按下时,输入端与地端之间形成导通通路,从而产生开关信号。

3.2 分压电路连接分压电路连接方式是指按键的一个引脚连接到电路的输入端,另一个引脚连接到电阻分压电路中。

当按键按下时,电阻分压电路中的电阻值发生变化,从而改变输入端的电压值,用于产生开关信号。

3.3 矩阵排列连接矩阵排列连接方式是指将多个按键连接成一个矩阵,通过行列扫描的方式来检测按键的状态。

矩阵排列连接方式可以节省引脚数量,适用于需要检测多个按键的场景。

4. 按键实验中常见的问题与解决方法在进行按键实验时,常会遇到一些问题,如按键失灵、按键抖动和按键反应不灵敏等。

下面将介绍这些问题的解决方法。

4.1 按键失灵按键失灵是指按键无法产生有效的开关信号。

可能的原因包括按键接触不良、按键损坏或者电路连接问题。

解决方法包括检查按键的引脚接触情况、更换按键或者修复电路连接问题。

4.2 按键抖动按键抖动是指在按键按下或松开的瞬间,由于机械弹簧的作用,按键产生多次开关信号。

解决方法包括使用软件延时或硬件滤波电路来抑制按键抖动。

4.3 按键反应不灵敏按键反应不灵敏是指按下按键后,对应的操作无法立即响应。

按键控制实验报告

按键控制实验报告

按键控制实验报告按键控制实验报告一、实验目的本实验旨在让学生掌握按键控制的基本原理和方法,学会使用按键控制模块实现简单的控制功能。

二、实验原理按键控制是通过检测按键的状态来控制电路的工作。

按键控制模块内部一般包含有按键输入电路和微控制器,通过微控制器检测按键的状态,从而控制输出电路的工作。

三、实验步骤1.准备实验器材:按键控制模块、LED灯、杜邦线、面包板等。

2.将按键控制模块连接到面包板上,并将LED灯连接到按键控制模块的输出端。

3.通过杜邦线将按键控制模块的输入端连接到面包板上的按键上。

4.给按键控制模块供电,并使用串口调试助手与微控制器进行通信。

5.编写程序,实现按键控制LED灯的亮灭。

具体程序代码如下:#include <reg52.h>sbit led = P1^0; // LED灯连接在P1.0口sbit key = P1^1; // 按键连接在P1.1口void delay(unsigned int t) // 延时函数{while(t--);}void main(){while(1){if(key == 0) // 检测到按键按下{delay(100); // 延时去抖动if(key == 0) // 再次检测按键状态{led = ~led; // 控制LED灯的亮灭while(key == 0); // 等待按键松开}}}}6.将程序下载到微控制器中,并运行程序。

此时,按下按键,LED灯的状态将会改变。

四、实验结果与分析通过本次实验,我们成功地实现了按键控制LED灯的亮灭。

按下按键时,LED 灯的状态会发生改变。

实验结果表明,我们的程序设计是正确的,按键控制模块也能够正常工作。

在实验过程中,我们也遇到了一些问题。

首先,在连接电路时,需要注意按键控制模块的输入输出端口的接线方式,以免出现错误。

其次,在编写程序时,需要考虑按键的去抖动问题,以避免按键的误判。

最后,在下载程序时,需要注意选择与微控制器型号相匹配的下载方式和下载口,以保证程序的正确下载和运行。

arduino学习笔记6-按键实验

arduino学习笔记6-按键实验

arduino学习笔记6-按键实验我们讲了数字IO口介绍以及做了流水灯演示(主要用到IO口的输出功能),这节课我们讲解一下IO口的输入功能,说到输入功能,最经典的例子莫过于按键实验。

按键开关:按键是一种常用的控制电器元件,常用来接通或断开‘控制电路’(其中电流很小),从而达到控制电动机或其他电气设备运行目的的一种开关。

按键开关一共有四个角,同侧角不相连在按键没有按下去的时候1,2号脚相连,3,4号脚相连。

按键按下去的时候,1,2,3,4号脚就全部接通。

一、实验现象当按住按键时点亮LED,当放开按键后熄灭LED。

二、实验器材:控制板、LED1个、电阻1个、按键1个、面包板和杜邦线。

三、实验所用函数及语句读数字引脚:int digitalRead (pin) ,返回引脚的高低电平. 在读引脚之前, 需要将引脚设置为INPUT模式。

if用于与比较运算符结合使用,测试是否已达到某些条件,如果圆括号中的语句为真,那就执行大括号中的语句。

如果不是,程序将跳过这段代码。

使用格式如下:if (条件){// 添加执行部分}【比较运算符】x == y (x 等于 y)x != y (x 不等于 y)x < y (x 小于 y)x > y (x 大于 y)x <= y (x 小于等于 y)x >= y (x 大于等于 y)与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。

代码是这样:if (条件){// 动作A}else{// 动作B}else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。

每一个测试一个接一个地执行直到遇到一个测试为真为止。

当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构体的下一行。

如果没有一个测试被验证为真,默认执行else语句块。

缺省的else语句块,将被设为默认行为并执行。

注意:一个else if语句块必须与else同时使用。

独立按键实验总结范文

独立按键实验总结范文

一、实验背景在单片机实验中,独立按键实验是一个基础且重要的实验项目。

通过本实验,我们能够了解独立按键的工作原理、硬件连接以及软件编程方法,从而为后续的单片机应用开发打下坚实的基础。

二、实验目的1. 掌握独立按键的工作原理及硬件连接方法;2. 学会编写独立按键的软件程序,实现按键控制LED灯的亮灭;3. 熟悉单片机编程过程中的延时函数、状态判断等基本操作。

三、实验内容1. 独立按键的工作原理独立按键是一种电子开关,通过内部金属片的接触与断开来控制电路的连通与断开。

在未按下按键时,内部金属片不接触,电路断开;当按下按键时,内部金属片接触,电路导通。

按键的内部结构如图1所示。

2. 独立按键的硬件连接本实验使用了一个独立按键和一个LED灯作为实验对象。

按键的一端接地,另一端连接到单片机的P3.0口,LED灯的正极连接到单片机的P1.0口,负极连接到地。

电路连接如图2所示。

3. 独立按键的软件编程(1)编写延时函数延时函数用于实现按键消抖处理。

以下是一个10ms延时的函数实现:```cvoid delay10ms(unsigned int ms){unsigned int i, j;for(i = 0; i < ms; i++)for(j = 0; j < 123; j++);}```(2)编写按键检测函数按键检测函数用于检测按键是否被按下。

以下是一个按键检测函数的实现:```cunsigned char checkKey(void){if(P3_0 == 0) // 检测按键是否被按下{delay10ms(500); // 延时消抖if(P3_0 == 0) // 再次检测按键是否被按下return 1; // 按键被按下}return 0; // 按键未被按下}```(3)编写主函数主函数用于实现按键控制LED灯的亮灭。

以下是一个主函数的实现:```cvoid main(void){while(1){if(checkKey()) // 检测按键是否被按下{LED = !LED; // 切换LED灯状态delay10ms(500); // 延时消抖}}}```四、实验总结通过本次独立按键实验,我们掌握了以下知识点:1. 独立按键的工作原理及硬件连接方法;2. 独立按键的软件编程,包括延时函数、按键检测函数以及主函数;3. 按键消抖处理的重要性及实现方法。

实验1 计算机开、关机及键盘指法

实验1 计算机开、关机及键盘指法

实验一计算机开、关机与键盘指法一、实验目的与要求1. 熟悉计算机的开机、关机方法。

2. 了解计算机键盘的组成及各键的功能和使用方法。

3. 掌握正确的键盘输入指法。

二、实验项目1. 开启、关闭计算机及计算机的热启动与复位启动。

2. 指法练习。

三、实验过程及方法1. 开、关机的正确顺序开机时,先打开计算机外部设备的电源,例如显示器、打印机等,再打开计算机主机电源,即按下主机箱面板上的电源开关按钮“POWRE”;关机时,顺序正好相反,先关闭主机电源,再关闭外部设备电源。

值得注意的是,关闭主机电源时,尽量不要人工强行关闭。

正确的方法是在操作系统中选择“关闭”命令,则系统会自动关闭主机电源。

系统经过自检后,启动计算机的操作系统,例如进入Windows XP。

通过打开计算机主机电源启动系统的方式称为冷启动。

2. 计算机的热启动与复位启动频繁地开、关主机电源对计算机的使用寿命会有一定的影响,因此,在使用计算机的过程中,如果遇到异常情况,例如“死机”等,需要重新启动计算机,可以采用以下两种方式,在不关闭主机电源的情况下重新启动计算机:一是按下组合键Ctrl+Alt+Delete,这种方式称为热启动,屏幕上先出现一个对话框,要求用户选择“结束任务”,系统将重新启动计算机。

二是按主机箱面板上的“RESET”按钮,这种方式称为复位启动。

但复位启动对正在运行的系统有一定的影响,因此尽量避免复位操作。

在“死机”情况下如果利用热启动无法重新启动计算机,才应该使用复位启动。

3. 键盘操作的正确姿势使用键盘前,首先要注意正确的姿势,不正确的姿势一是影响输入速度,二是容易产生疲劳。

保持正确的姿势应该注意以下几点:(1)身体保持端正,两脚平放,腰部挺直,肩部放松。

(2)手腕平直,两臂自然下垂,两肘贴于腋边,手指弯曲自然适度。

(3)打字文稿放在键盘的左边,视线投放在文稿或屏幕上,不要频繁看键盘。

4. 键盘指法为了充分调动十个手指的作用,每个手指都有分工,负责击打固定的几个键位,从而实现盲打(不看键盘输入)。

按键输入实验

按键输入实验

7.1按键检测实验7.1.1单片机检测小弹性按键的原理单片机检测按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该O口是否变为低电平,当按键闭合肘,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。

去抖概念:(分为软件去抖和硬件去抖)按键是机械器件,按下或者松开时有固定的机械抖动。

什么是机械抖动?通常的按键开关为机械弹性开关,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动。

抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。

这是一个很重要的时间参数,在很多场合都要用到;实际上只进行一次按键操作,但有可能执行了多次按键结果,这就是抖动造成的,所以大多数产品实际使用中都使用了按键去抖功能。

按键的连接方法和按键在被按下时其触点电压变化过程下图:这个抖动时间虽然很短,不同按键抖动不同,但对应单片机来说,很轻松就能检测到,单片机的运行的速度是微秒us级别。

用示波器跟踪一个小的按钮开关在闭合时的抖动现象,得到如下图的波形。

观察波形可以帮助我们对抖动现象有一个直观的了解。

水平轴2ms/DIII,抖动间隙大约为10ms,在达到稳定状态前一共有6次变化,频率随时间升高。

硬件去抖最简单的就是按键两端并联电容,容量根据实验而定。

当然也有专用的去抖动芯片。

软件去抖使用方便不增加硬件成本,容易调试,所以现在大都使用软件去抖。

关于软件去抖,我们在这里也详细讲解一下原理 :1、检测到按键按下后进行5~10ms延时,用于跳过这个抖动区域2、延时后再检测按键状态,如果没有按下表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下。

按键反应心理实验报告

按键反应心理实验报告

本研究旨在探讨按键反应时间与心理因素之间的关系,通过实验测量被试者在不同心理状态下的按键反应速度,分析心理因素对反应速度的影响。

二、实验背景按键反应时间(Reaction Time,简称RT)是指个体从感知刺激到产生反应所经历的时间。

按键反应时间受到多种因素的影响,如个体生理、心理状态、环境刺激等。

本研究通过实验,探讨心理因素对按键反应时间的影响。

三、实验方法1. 实验对象:招募30名大学生作为实验对象,年龄在18-25岁之间,无心理疾病史。

2. 实验材料:电脑、键盘、计时器。

3. 实验程序:(1)实验前,对所有被试进行心理测试,了解其心理状态;(2)将被试分为三组,分别代表三种心理状态:放松状态、紧张状态、专注状态;(3)每组被试分别进行10次按键反应实验,每次实验中,电脑屏幕随机出现一个数字,被试需在看到数字后立即按下键盘上的相应数字键;(4)实验过程中,使用计时器记录被试的按键反应时间;(5)实验结束后,统计每组被试的平均按键反应时间。

4. 实验步骤:(1)被试进入实验室,安静地坐下,调整座椅高度,确保双脚平放在地面上;(2)实验员讲解实验目的、步骤和要求,并告知被试实验过程中要保持注意力集中;(3)被试进行心理测试,了解其心理状态;(4)被试分别进入放松状态、紧张状态、专注状态,进行按键反应实验;(5)实验结束后,收集实验数据,进行统计分析。

1. 三组被试的平均按键反应时间如下:(1)放松状态组:平均按键反应时间为0.546秒;(2)紧张状态组:平均按键反应时间为0.612秒;(3)专注状态组:平均按键反应时间为0.578秒。

2. 对三组被试的平均按键反应时间进行方差分析,结果显示,三组被试的平均按键反应时间存在显著差异(F(2,27)=5.32,p<0.05)。

五、讨论与分析1. 实验结果表明,心理状态对按键反应时间有显著影响。

在放松状态下,被试的按键反应时间较短;在紧张状态下,按键反应时间较长;在专注状态下,按键反应时间介于两者之间。

实验一 按键实验

实验一 按键实验

实验一 LED灯及按键实验一、实验目的1、了解KEIL软件和STC下载软件的操作方法。

2、学习用KEIL软件编写程序和STC软件下载程序的操作。

3、掌握单片机I/O口的应用,并学会简单的流水灯程序的编写。

4、理解独立按键的控制原理,能用独立按键控制led的亮灭。

二、实验设备1、单片机口袋机。

2、mini USB口下载线。

三、实验内容1、通过控制单片机I/O口的状态控制led灯的亮灭。

(LD0,LD1,LD2,LD3)2、控制四个led灯循环点亮。

3、通过口袋机上的按键(K0~K3)控制四个led灯亮灭,亮灭的形式可以多样化。

四、实验原理1、口袋机上的4个LED灯为共阳极的,实现LED流水灯时,单片机的I/O口可以控制LED灯的变化,本程序用到单片机的P3.7,P4.1,P4.2和P4.3口,分别对应口袋机的LD0,LD1,LD2,LD3。

现象为LED灯从右到左依次点亮并循环。

图1 LED接口原理图图2 LED原理图下面是P3口和P4口的I/O口的工作类型设定:2、按键(轻触开关)是一种广泛应用于各种电子设备的元件,比如我们最常用的电视机面板控制按钮,遥控器按钮。

其实就是一个常开的开关,按下后两个触点接触形成通路状态,松开时形成开路状态。

相关原理图如下:图1 按键原理图图2按键接线图五、实验步骤1、建立“TEST”文件夹,用于存放实验一的所有文件2、启动Keil uVision4 先建立一个空文件夹,之后建工程的时候把工程文件放在里面,以避免和其他文件混合,例如在桌面创建了一个“TEST”的文件夹。

双击桌面上的Keil uVision4图标打开软件3、点击“Project”选项,选择新建工程。

单击Project菜单,建立一个新工程。

在弹出的下拉菜单中选中New uvision Project选项。

4、给文件命名,例如“test”,将文件保存到“TEST”文件夹内新建的工程的文件的名字比如为“test”后缀必须是.uvproj用户可根据需要随便命名,保存到刚才新建的文件夹“TEST”下5、在该窗口选择CPU为“STC MCU”在弹出来的对话框中选择STCMCU Database6、选择单片机型号:“STC15W4K32S4”在弹出的对话框中可以看到里面全部都是STC的单片机,选择“STC15W4K32S4”单片机,右边栏是对这个单片机的基本说明,然后点击“确定”之后出现下图所示,Target就是刚才新建的工程7、点击“Files”选项,选择“New”新建文本,单击保存按键,将保存的文件后缀改为“.c”文件,则默认为该文件为用C语言编写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 LED灯及按键实验
一、实验目的
1、了解KEIL软件和STC下载软件的操作方法。

2、学习用KEIL软件编写程序和STC软件下载程序的操作。

3、掌握单片机I/O口的应用,并学会简单的流水灯程序的编写。

4、理解独立按键的控制原理,能用独立按键控制led的亮灭。

二、实验设备
1、单片机口袋机。

2、mini USB口下载线。

三、实验内容
1、通过控制单片机I/O口的状态控制led灯的亮灭。

(LD0,LD1,LD2,LD3)
2、控制四个led灯循环点亮。

3、通过口袋机上的按键(K0~K3)控制四个led灯亮灭,亮灭的形式可以多样
化。

四、实验原理
1、口袋机上的4个LED灯为共阳极的,实现LED流水灯时,单片机的I/O口可以控制LED灯的变化,本程序用到单片机的P3.7,P4.1,P4.2和P4.3口,分别对应口袋机的LD0,LD1,LD2,LD3。

现象为LED灯从右到左依次点亮并循环。

图1 LED接口原理图图2 LED原理图
下面是P3口和P4口的I/O口的工作类型设定:
2、按键(轻触开关)是一种广泛应用于各种电子设备的元件,比如我们最常用的电视机面板控制按钮,遥控器按钮。

其实就是一个常开的开关,按下后两个触点接触形成通路状态,松开时形成开路状态。

相关原理图如下:
图1 按键原理图图2按键接线图
五、实验步骤
1、建立“TEST”文件夹,用于存放实验一的所有文件
2、启动Keil uVision4 先建立一个空文件夹,之后建工程的时候把工程文件放在里面,以避免和其他文件混合,例如在桌面创建了一个“TEST”的文件夹。

双击桌面上的Keil uVision4
图标打开软件
3、点击“Project”选项,选择新建工程。

单击Project菜单,建立一个
新工程。

在弹出的下拉菜单
中选中New uvision Project选
项。

4、给文件命名,例如“test”,将文件保存到“TEST”文件夹内
新建的工程的文件的名字比如为
“test”后缀必须是.uvproj用户可根
据需要随便命名,保存到刚才新
建的文件夹“TEST”下
5、在该窗口选择CPU为“STC MCU”
在弹出来的对话框中选择STC
MCU Database
6、选择单片机型号:“STC15W4K32S4”
在弹出的对话框中可以看到里面全部
都是STC的单片机,选择
“STC15W4K32S4”单片机,右边栏是对
这个单片机的基本说明,然后点击“确
定”之后出现下图所示,Target就是刚
才新建的工程
7、点击“Files”选项,选择“New”新建文本,单击保存按键,将保存的文件
后缀改为“.c”文件,则默认为该文件为用C语言编写。

(若用到相对应的头文件,则需要新建后缀为“.h”的文件)
8、 回到编辑界面,此时我们的工程目录下还是空的,没有程序文件,我们需要
将程序文件添加到工程目录下,单击“Target1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下图所示菜单。

9、 然后单击“Add Files to Group ‘Source Group 1’…”,选择刚才保存
的源文件test.c ,单击“Add ”按钮,添加完毕后单击“Close
”按钮,关选择File--->new 选项新建一个文件如果使用C 语言编写,就加上.c 的扩展名,
如果使用汇编语言,就加上.asm 的扩展名,之后选择File--->Save 选项或者单
击按钮,保存到刚才创建的文件夹下,在弹出的对话框中填写文件名,可
根据需要随便命名,注意在填写文件名时一定要加上文件的扩展名,填写好
文件名之后单击“保存”按钮。

闭该窗口,文件已添加到工程当中,此时“Source Group”文件夹中多了一个子项“test.c”。

10、接下来还要设置一下,右键单击“Target 1”,在弹出的快捷菜单中选
择“Options for Target‘Target 1’”选项。

11、在弹出的“Options for Target‘Target 1’”对话框中有10个选项卡,
选中其中的第三个选项卡“Output”,中间的“Create HEX File”是生成Hex文件选项,一定要选中,如果编译之后没有生成HEX文件,就是因为这个选项没有被选中。

默认是不选中的。

最后单击“确定”按钮。

12、编写并编译程序。

在相对应的.c文件或.h文件空白区编写或复制一个
完整的C程序,然后选择菜单Project--->Built Target选项,或者单击工
具栏中的按钮,开始编译程序。

注:
第一个:它是编译当前界面所在的一个C文件
第二个:联合编译整个工程,发生修改的文件重新编译,并生成可执行文件
第三个:联合编译整个工程,所有文件都重新编译,并生成可执行文件
13、如果编译成功,开发环境下面会显示编译成功的信息,如果存在错误或警告,修改后再编译,直到通过为止。

14、下面是完成的主要程序代码:
#include"STC15Fxxxx.h"
sbit k0=P3^2;
sbit k1=P3^3;
void Delay300ms() //@24.000MHz {
unsigned char i, j, k;
_nop_();
_nop_();
i = 28;
j = 92;
k = 196;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
unsigned char sta=0;
P3M1&=0x73;
P3M0|=0x80;
P4M1&=0xf1;
P4M0|=0x0e;
P32=1;
P33=1;
while(1)
{
if(k0==0)
{
sta=1;
}
if(k1==0)
{
sta=2;
}
if(sta==1)
{
P37=0;
Delay300ms();
P41=0;
Delay300ms();
P42=0;
Delay300ms();
P43=0;
Delay300ms();
P37=1;
Delay300ms();
P41=1;
Delay300ms();
P42=1;
Delay300ms();
P43=1;
Delay300ms();
}
else if(sta==2) {
P43=0;
Delay300ms();
P42=0;
Delay300ms();
P41=0;
Delay300ms();
P37=0;
Delay300ms();
P37=1;
Delay300ms();
P41=1;
Delay300ms();
P42=1;
Delay300ms();
P43=1;
Delay300ms();
}
}
}
15、调试过程中出现了什么问题或困难以及如何解决的?
第一次做实验对于这些步骤并不熟悉,后来通过一边看指导书一边做实验逐渐熟悉了这些步骤;编译程序之后电脑显示程序有错误,通过吧自己敲的代码与指导书上的代码反复比对之后程序编译成功了。

16、有哪些问题或困难没有能够解决,需要留到下次课解决?
这节课第一次使用口袋机,对口袋机的使用方法和原理有了初步的了解,但是还是不够熟悉,需要多加练习。

对程序的掌握程度还是不够。

17、简单描述本次实验有什么收获和体会:
通过多次实验以及反复参考实验指导书,我初步掌握了解了KEIL软件和STC
下载软件的操作方法,也学会了用KEIL软件编写程序,但是对于程序的了解度还是有所欠缺,通过反复对比才解决了问题。

这次实验对于我独立解决问题的能力是一个很好的提高,也让我明白了什么叫一分耕耘一分收获。

张岳。

相关文档
最新文档