实验三 键盘及LED实验

合集下载

第三章——独立按键及矩阵键盘控制LED灯(2).讲述

第三章——独立按键及矩阵键盘控制LED灯(2).讲述

1. 键扫描 键扫描就是要判断有无键按下,当扫描到有键
按下时再进行下一步处理,否则退出键盘处理程序。 独立式键盘扫描只需读取IO口状态,而矩阵式键盘 描通常有两种实现方法:逐行扫描法和线反转法。 (1) 逐行扫描法。依次从第一至最末行线上发
出低电平信号, 如果该行线所连接的键没有按下
的话, 则列线所接的端口得到的是全“1”信号, 如 果有键按下的话, 则得到非全“1”信号。
8个共阴极的数码管,动态显示0-7
ORG 0000H MOV R0,#00H ;给R0赋值0 MOV DPTR,#TAB ; 把TAB 表的首地址给 DPTR MOV R4,#0FEH; ;给R4赋值0FE MOV A,R4; ;A为0FE 也就是1111 1110 PUSH ACC; ;将A入栈 DLO:MOV A,R0 MOVC A,@A+DPTR; ;查TAB表 MOV P0,A ; 把查的值给数码管的8个段 POP ACC; 将之前的A出栈 MOV P1,A; 将A的值给P1 也就是给P1 1111 1110 是那个为0的管亮 LCALL QF; 调用取反子程序 PUSH ACC; 将A入栈 INC R0; R0值加1 LCALL DELAY ; 调用延时程序 CJNE R0,#08H,DLO; 判断是否查完一便 表 没查完再跳到DLO MOV R4,#0FEH; 查完了重新给A赋值 MOV A,R4 PUSH ACC ; 再将A入栈 MOV R0,#00H; 给R0清0 SJMP DLO ;跳到DLO再显示 DELAY:MOV R1,#18 LP1:MOV R2,#200 LP2:MOV R3,#126 DJNZ R3,$ DJNZ R2,LP2 DJNZ R1,LP1 RET TAB:DB 3fH,06H,5bH,4fH,66H,6dH,7dh,07h QF: RL A ; 左移 RET END

单片机实训实验报告总结

单片机实训实验报告总结

一、实验背景与目的随着科技的不断发展,单片机作为一种微小的计算机系统,在工业控制、智能家居、汽车电子等领域得到了广泛的应用。

为了提高学生的实践能力和创新意识,本实训课程旨在通过实际操作,让学生掌握单片机的原理、编程和调试方法,培养学生的动手能力和团队协作精神。

本次实训以51单片机为核心,结合数码管、LED灯、按键等外围电路,设计了多个实验项目,包括LED流水灯、交通灯控制系统、简易计算器、温湿度监控系统等。

通过这些实验,使学生深入了解单片机的硬件结构和软件编程,提高学生的实际操作能力和问题解决能力。

二、实验内容与过程1. 实验一:LED流水灯(1)实验目的:掌握51单片机的I/O口编程,实现LED灯的流水效果。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口;② 编写程序:使用循环语句和延时函数控制LED灯的流水效果;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的流水效果。

2. 实验二:交通灯控制系统(1)实验目的:学习单片机在交通灯控制系统中的应用,实现红黄绿灯的变换及倒计时功能。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口,按键连接到外部中断INT0;② 编写程序:设置定时器中断,实现倒计时功能;编写外部中断程序,实现红黄绿灯的变换;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察交通灯的工作状态和倒计时效果。

3. 实验三:简易计算器(1)实验目的:掌握矩阵键盘扫描原理、LCD1602显示屏控制,实现基本的四则运算。

(2)实验步骤:① 硬件连接:将矩阵键盘和LCD1602显示屏连接到单片机;② 编写程序:实现矩阵键盘扫描、LCD1602显示控制和运算逻辑处理;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察计算器的工作状态和运算结果。

4. 实验四:温湿度监控系统(1)实验目的:学习单片机在温湿度监控系统中的应用,实现温度和湿度的实时显示。

(2)实验步骤:① 硬件连接:将温度传感器和湿度传感器连接到单片机,将LED灯连接到P1口;② 编写程序:实现温度和湿度的实时采集,并根据采集到的数据控制LED灯的亮灭;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的亮灭状态和数码管上的温度、湿度值。

实验三LED指示灯循环控制

实验三LED指示灯循环控制

实验三LED指示灯循环控制一、实验目的熟悉uVision4编译软件、掌握C51编程与调试方法二、实验原理实验电路原理图如教材219图A.34所示,图中8只LED指示灯接于P0口,切都有上拉电阻。

时钟电路、复位电路、片选电路与前面的实验电路相同。

在编程软件的配合下,要求实现如下功能8只发光二极管做循环点亮控制,且亮灯顺序为D1-D2-D3…-D8-D7…-D1,无限循环,两次亮灯的时间间隔约为0.5s,软件编程原理为首先使P0.0-1,其余端口-0,这样可使D1灯亮,其余灯灭;软件延时0.5s后,使P0口整体左移1位,得到P0.1-1,其余端口-0,这样可使 D2灯亮其余全灭;照此思路P0整体左移7次,再又移7次,如此无限往复即可实现上述功能。

三、实验内容 1、按照教材P219的图A.34,绘制实验三电路原理图;2、根据功能要求,编写C51程序;3、练习μVision4程序动态调试方法,并最终实现8个LED灯依次点亮的功能P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;4、观察仿真结果,完成实验报告。

四、实验步骤 (1) 在ISIS中绘制电路原理图,按照表A1将元件添加到编译环境中;(2) 在uVision4中编写C51程序;(3) 利用uVision4的编译调试功能检查语法和逻辑错误;(4) 下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。

五、实验要求提交的实验报告中应包括电路的原理图和实验结果分析。

Category Reference Value Microprocessor ICs U1 80C51 Miscellancous X1 CRYSTAL Capacitors C2~C3 CAP Capacitors C1/22uF CAP--ELEC Resistors R2~R8/200 RES Resistors R10~R17/100 RES Optoelectronics D1~D8 LED--YELLOW 1、电路分析及原理图图1 2、编程思路及C51源程序编程思路 1, P0口赋一初值,使D1灯亮,D2~D8灯灭 2,调用函数delay,传入参数值为50(ms) 3,采用while结构的无限循环体 4,由上向下循环控制(变量i的初值为1,终值小于8,增量为+1) 5,使P0中的数值向左移1位 6,调用函数delay,传入参数值为50(ms) 7,返回第二部继续进行如图2为本次实验源程序图2 调试运行图3 调试运行图4 4、仿真运行效果起始时的情况运行中的情况 5、实验小结 1,通过实验我们实现了最终实现8个LED灯依次点亮的功能P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;实验六键盘控制LED灯实验1 实验目的(1) 通过实验掌握中断式键盘控制与设计方法;(2) 熟练编写S3C2410中断服务程序。

嵌入式实验三 键盘检测控制实验

嵌入式实验三  键盘检测控制实验

2
ቤተ መጻሕፍቲ ባይዱ
嵌入式技术及应用 实验三
实验三 键盘实验
一、 实验目的 掌握单片机系统中矩阵键盘的编程控制方法,学会实时程序的调试技巧。
二、 实验原理 键盘是单片机应用中常用的输入设备,在应用系统中,操作人员可通过键盘
向系统输入指令、地址和数据,实现简单的人机通信。 键盘实际上是一组按键开关的集合,平时总是处于断开状态,当按下键时它
才闭合。按键在闭合和断开时,触点会存在抖动现象,抖动时间一般为 5-10ms, 如下图示:
键盘的处理主要涉及以下 3 个方面的内容: 按键的识别
所接 I/O 口线是高还是低电平(根据连接情况) 抖动的消除
硬件消抖 软件消抖(延时) 判断键值 独立式键盘 矩阵式键盘 实验板电路原理图如下:
1
嵌入式技术及应用 实验三
三、 实验内容 按下 16 个矩阵键盘依次在数码管上显示 1-16 的平方。如按下第一个显示 1,
第二个显示 4...
四、
实验步骤 1、 按实验内容要求在 µ Vision 中创建项目,编辑、调试、编译程序。 2、 将编译生成的目标码文件(后缀为.Hex)下载到实验板上。 3、 观察实验运行结果并记录。

单片机键盘显示实验报告

单片机键盘显示实验报告

单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。

四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。

编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。

注:①通过按键来选择加、减、乘、除四种运算方式。

②输入两个数字均为一位十进制数,可预先放在内存中。

㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。

输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。

2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。

其实这个问题确实不知道怎么回答。

LED 显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBH A DBH109H B F1H2EAH C B2H36BH D E9H459H E F2H573H F D2H否有否P1口置输入读P1口开 始显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00H P DAH实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H;用来存放两个数据MOV R4,#02HMOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取按键状态CPL A ;取正逻辑,高电平表示有键按下JZ KEY ;A=0时无键按下,重新扫描键盘LCALL DELAY1;消抖MOV A,P1 ;再次读取按键状态CPL AJZ KEY ;再次判别是否有键按下PUSH AKEY1:MOV A,P1CPL AANL A,#0FH ;判别按键释放JNZ KEY1 ;按键未释放,等待LCALL DELAY1;释放,延时去抖动POP AJB ACC.0,ADD1 ;K1按下转去ADD1JB ACC.1,SUB1 ;K1按下转去SUB1JB ACC.2,MUL1 ;K1按下转去MUL1JB ACC.3,DIV1 ;K1按下转去DIV1LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数MOV 43H,#049HLCALL DISPLAY ;显示加号MOV A,R3ADD A,R4DA AMOV R3,A ;相加结果放入R6ANL A,#0FHMOV R4,A ;结果个位放入R7MOV A,R3SWAP A ;半字节交换,高四位放入低四位ANL A,#0FHMOV R3,A ;结果的高位放入R6LCALL L;显示缓存区设置LCALL DELAY2;延时一秒后显示LCALL DISPLAYLJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数MOV 43H,#40HLCALL DISPLAY ;显示减号MOV A,R3CLR CY ;CY清零SUBB A,R4 ;做减法PUSH ARLC A ;带进位循环左移,最高位放入CYJC F ;判断最高位,若为1则跳转到负数ZHENG: POP AMOV R4,AMOV R3,#00H ;高位清零SJMP OUTFU:POP ACPL A ;取绝对值INC AMOV R4,AMOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置LCALL DELAY2 ;延时1s后显示LCALL DISPLAYLJMP KEYMUL1:LCALL BUFFER ;显示两位乘数MOV 43H,#99HLCALL DISPLAY ;显示乘号MOV A,R3MOV B,R4MUL AB ;结果放入AB,A中是低8位,B中是高8位MOV B,#0AHDIV AB ;十进制转换MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6LCALL LLCALL DELAY2LCALL DISPLAY ;延时1s后显示LJMP KEYDIV1:LCALL BUFFER ;显示除数和被除数MOV 43H,#62HLCALL DISPLAY ;显示除号MOV A,R3MOV B,R4DIV AB ;A除以BMOV R4,B ;余数放在R4中MOV R3,A ;商放在R3中MOV A,R4MOVC A,@A+DPTR ;调用段选号MOV 41H,A ;显示余数MOV A,R3MOVC A,@A+DPTRMOV 43H,A ;显示商MOV 42H,#00HMOV 44H,#00HLCALL DELAY2 ;延时1S后显示LCALL DISPLAYLJMP KEYBUFFER: MOV 41H,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号MOV DPTR,#TABLMOV A,R4MOVC A,@A+DPTRMOV 42H,AMOV A,R3MOVC A,@A+DPTRMOV 44H,ARETDISPLAY:MOV R5,#04H;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETL:MOV A,R4MOVC A,@A+DPTRMOV 41H,A ;R4对应的段码MOV A,R3MOVC A,@A+DPTRMOV 42H,A ;R3对应的段码MOV 43H,#00HMOV 44H,#00HRETDELAY1: ;普通延时MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2DJNZ R1,DS1RETDELAY2:MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETTABL:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。

键盘LED实验(精)

键盘LED实验(精)

键盘 LED 显示实验一实验目的:通过此次实验让用户进一步了解、熟悉和掌握 CPLD\FPGA开发软件的使用方法及 VERILOG HDL 的编程方法,熟悉以 VERILOG HDL 文件为顶层模块的设计。

学习体会分支条件语句 CASE 的使用方法及 FPGA I\O口的输出控制。

本实验要求在 SMARTSOPC 实验箱上完成对 8个键盘 KEY1— KEY8进行监控,一旦有键输入判断其键值, 并点亮相应个发光二极管, 如若 KEY3按下去, 则点亮 LED1— LED3发光二极管。

二实验原理:根据所学硬件描述语言知及本实验要求,编程如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY keyled isPORT(key:IN STD_LOGIC_VECTOR(7 DOWNTO 0;led: OUT STD_LOGIC_VECTOR(7 DOWNTO 0;end;architecture selected_key of keyled isbeginwith key selectled<="11111110" when "11111110","11111100" when "11111101","11111000" when "11111011","11110000" when "11110111","11100000" when "11101111","11000000" when "11011111","10000000" when "10111111","00000000" when "01111111","11111111" when others;end selected_key;以上程序通过 WHEN 特定并行语句实现 LED 显示灯在按到按键后相继点亮, 整个程序较简单,过程也很清晰。

《微机控制技术》人机交互实验

《微机控制技术》人机交互实验

实验四人机交互实验一、实验目的1、了解键盘、数码显示器与微处理器的接口方法。

2、理解键盘、显示电路的工作方式及原理。

3、掌握键盘、显示系统的编程方法。

二、实验原理注意:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O 方式驱动八段显示管时,请将开关拨到“外驱”位置。

本实验仪提供了6位8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,用动态方式显示。

8 位段码、6 位位码是由两片74LS374 输出。

位码经MC1413 或ULN2003 倒相驱动后,选择相应显示位。

本实验仪中 8 位段码输出地址为0X004H,位码输出地址为0X002H。

此处X 是由KEY/LED CS 决定。

做键盘和LED 实验时,需将KEY/LED CS接到相应的地址译码上。

以便用相应的地址来访问。

例如,将KEY/LED CS 接到CS0 上,则段码地址为08004H,位码地址为08002H。

图1-1 6位数码管显示电路另外,本实验仪还提供了一个6×4 的小键盘,如图1-2。

向列扫描码地址(08002H)逐列输出低电平,然后从行码地址(08001H)读回。

如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。

这样就可以通过输出的列码和读取的行码来判断按下的是什么键。

在判断有键按下后,要有一定的延时,防止键盘抖动。

此时列扫描码与LED 的位选通信号是分时用作的。

图1-2矩阵键盘电路1、74HC374 八D锁存器引脚功能及其逻辑功能表CLK(LE)——时钟输入CLR(OE)——输入允许D0-D8——数据输入端Q0-Q8——数据输出端当CLR(OE)为低电平,当有时钟脉冲时,输出信号等于输入信号,即Qn=Dn2、74LS02 或非门(略)。

3、74HC245 八双向总线收发器①74HC245的引脚功能及逻辑功能表:E—信号允许端,低电平有效。

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统设计实验报告班级: 20110612学号: ***********名:***成绩:指导教师:武俊鹏、刘书勇1. 实验一1.1 实验名称博创UP-3000实验台基本结构使用方法1.2 实验目的1.熟悉嵌入式系统开发式流程概述。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。

3.熟悉ARM JTAG的安装与使用。

1.3 实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC 机Pentium100以上、串口线。

软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求1.熟悉嵌入式系统开发式流程概述。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。

3.熟悉ARM JTAG的安装与使用。

1.5 实验设计与实验步骤1.新建超级终端2.选择ARM 开发实验台串口。

完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置3.保存为一个特定超级终端到桌面上,以备后用。

用串口线将PC机串口和平台UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。

4.启动开发板,按住任意键,使开发板进入BIOS设置状态。

5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。

操作时,要在PC机上输入小写的字母快捷键,进入到相应的功能中去。

6.按照超级终端上的提示信息,进行功能的测试。

1.6 实验过程与分析本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。

进入到BIOS界面后,按照超级终端上的提示信息来进行功能1.7 实验结果总结在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快捷键来测试对应的功能。

如e:测试由ZLG7289 驱动的LED 显示,共分3 步,请看超级终端提示按任意键继续,同时观察LED 的变化,最后返回主菜单。

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

实验三键盘及LED实验
一、实验目的
1、了解LED动态显示电路结构,掌握LED动态显示方法;
2、了解键盘扫描电路结构,掌握键盘输入处理方法;
二、实验仪器
1、51实验开发板 1块
2、PC机 1台
三、实验内容
1、显示键盘电路
2、参考程序(c语言实验例程见\ckey8x8目录,汇编语言例程见\a按键&显示目录)
3、将程序修改为按键时在LED上循环显示所按键值(按第一个键时,第一个LED显示
对应键值,按第二个键时,第二个LED显示对应键值,。

,按第七个键时,第一个LED显示对应键值,按第八个键时,第二个LED显示对应键值。

)。

相关文档
最新文档