实验二:按键一、实验目的- 掌握单片机I/O的工作方式。
- 熟悉51单片机的汇编指令。
- 掌握单片机以串行口方式0工作的LED显示。
- 掌握键盘和LED显示的编程办法。
二、实验设备STC89C52单片机实验板、串口下载线、USB连接线、电脑 三、实验原理及内容利用一个与P0-0引脚连接的按键控制P2-0连接LED的亮、灭两种状态,按p24,p27,p26,p27,p2口,8个灯分别作 左移动,右移动,停止,右移,左移。
实验原理: 89C52一般有四组共32个IO口,每一个IO口均可以程序控制其输出电平为高(1)或低(0),在LED的正极接VCC,负极接89C52的IO口,通过控制IO口的输出为低电平(0V),则VCC经LED与89C52的IO形成电流回路,LED点亮。
实验步骤: 软件操作过程参考实验一。
实验接线图: 连接方法:JP10(P2) 与 J12 (LED灯)连接,JP11(P0) 与 JP5(按键接口)连接
独立按钮电路图:
程序代码(汇编版): 亮灯控制程序: ORG 0000H LJMP START org 0030h 主 程 序 : - <font color="rgb(0, 0, 0)">START:
- MOV P3, #0FFH
- JNB P0.7,FUN0 ; 检测按键
- JNB P0.4,FUN1
- JNB P0.5,FUN2
- JNB P0.6,FUN3 ;关闭按纽
- AJMP START
- FUN0: LCALL DL10MS ;消岸抖动
- JB P0.7,START
- WAITL0: JNB P0.7,WAITL0 ;等待键释放
- FUN01: LCALL FUN00
- AJMP START
- FUN1: LCALL DL10MS ;消岸抖动
- JB P0.4,START
- WAITL1: JNB P3.3,WAITL1 ;等待键释放
- FUN10: LCALL FUN11
- AJMP START
- FUN2: LCALL DL10MS ;消岸抖动
- JB P0.5,START
- WAITL2: JNB P0.5,WAITL2 ;等待键释放
- FUN20: LCALL FUN22
- AJMP START
-
- FUN3: LCALL DL10MS ;消岸抖动
- JB P0.6,START
- WAITL3: JNB P0.6,WAITL3 ;等待键释放
- MOV P2,#0FFH ;关显示
- LJMP START
-
- FUN00: MOV A,#0FEH ;左移子程序
- FUN000: MOV P2,A
- LCALL DL05S
- JNB ACC.7,OUT ;检测是否结束
- RL A
- AJMP FUN000
- OUT: RET
-
- FUN11: MOV A,#07FH ;右移子程序
- FUN111: MOV P2,A
- LCALL DL05S
- JNB ACC.0,OUT ;检测是否结束
- RR A
- AJMP FUN111
-
- FUN22:MOV A,#0AAH ;间隔显示子程序
- MOV P2,A
- LCALL DL30S
- CPL A
- MOV P2,A
- LCALL DL30S
- RET
-
- 延时程序 :
- DL512:MOV R2,#0FFH ;延时500US
- LOOP1: DJNZ R2,LOOP1
- RET
-
- DL10MS:MOV R3,#14H ;延时10MS
- LOOP2: LCALL DL512
- DJNZ R3,LOOP2
- RET
-
- DL05S:MOV R4,#0AH ;延时100MS
- LOOP3: LCALL DL10MS
- DJNZ R4,LOOP3
- RET
-
- DL30S:MOV R5,#03H ;延时300MS.
- LOOP4:LCALL DL05S
- DJNZ R5,LOOP4
- RET
-
- end</font>
复制代码
4、实验收获与体会从实验结果来看,本次实验成功完成了实验要求。 实验刚开始,由于对实验本身原理,电路图等的不熟悉,导致我们犯了一些小错误,在询问了同学后很快得到了改正,也从中获益匪浅。不仅熟悉了新知识,加强了动手实践能力,而且成功完成试验更让我们对学习充满了热情。并且,做实验时要有十足的耐心,当发现有问题时要一点一点的检查排除,手忙脚乱更容易出错。
完整单片机实验报告下载(word格式 可编辑):
http://www.51hei.com/bbs/dpj-88784-1.html
|