单片机实验 IO口输入输出实验

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

实验二I/O口输入、输出实验

一、实验目的

1. 学习I/O口的使用方法。

2. 学习延时子程序、查表程序的编写和使用。

二、参考程序框图

led灯

延时500ms

//左移一位

跳转循环

DJNZ R6,DE2。

DJNZ R7,DE1。

RET

END

2、I/O口输入输出(方法一)

ORG 0000H。

START : MOV P2,#00H。//初始化

MOV P0,#00H。

MOV P1,#0FFH。//p1

MOV DPTR,#TABLE。//

MOV 50H,#0FEH。//

L0 :MOV A,P1。//

CJNE A,#0FFH,L1。

AJMP L0。

L1 :MOV A,P1。

CJNE A,#0FFH,LL1。

AJMP L0。

LL1 :CJNE A,50H,LL2。//是否与地址50h中数据相等

MOV P0,A。//相等输出对应led灯

MOV A,#00H。

MOVC A,@A+DPTR。

MOV P2,A。//输出表格数据到数码管

LCALL DELAY。//延时

LJMP START。//返回程序开头

LL2 :XCH A,50H。//交换数据

RL A。//左移

XCH A,50H。//再次交换,此时地址50h中数据左移一位

INC DPTR。//表格数据地址加一

LJMP LL1。//返回继续比较

DELAY : MOV R7,#01H。//延时程序

DE1 : MOV R6,#28H。

DE2 : MOV R5,#5AH。

DJNZ R5,$。

DJNZ R6,DE2。

DJNZ R7,DE1。

RET

TABLE : 。//DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H。

DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH。//表格数据END

程序二(方法二)

ORG 0000H

MOV P2,#00H。//I./O口初始化

MOV P1,#0FFH。//P1口赋FFH初值

MOV P0,#00H。

START : MOV P2,#00H。//P2清0;

MOV P0,#00H。//P0清0;

MOV R1 ,P1。

MOV A,R1。//读P1口

CJNE A,#0FFH,L1。//是否有数据输入

AJMP START。//无输入则跳转,继续查询

LCALL DELAY。

L1 : MOV R1,P1。//消除按键抖动

MOV A,R1。

CJNE A, #0FFH,LL1。

AJMP START。

LL1 : CJNE A,#0FEH,LL2。//是否按键1输入

MOV P2,#06H。//是则P2输出相应的按键号码

CPL A。//A取反

MOV P0,A。//输出到P0口

LCALL DELAY。//延迟

AJMP LP。//跳转到LP

LL2 : CJNE A,#0FDH,LL3。//是否按键2输入

MOV P2,#5BH。//以下同上

CPL A。

LCALL DELAY。

AJMP LP。

LL3 : CJNE A,#0FBH,LL4。//判断按键3是否按下MOV P2,#4FH。

CPL A。

MOV P0,A。

LCALL DELAY。

AJMP LP。

LL4 : CJNE A,#0F7H,LL5。//判断按键4是否按下MOV P2,#66H。

CPL A。

MOV P0,A。

LCALL DELAY。

AJMP LP。

LL5 : CJNE A,#0EFH,LL6。//判断按键5是否按下MOV P2,#6DH。

CPL A。

MOV P0,A。

LCALL DELAY。

AJMP LP。

LL6 : CJNE A,#0DFH,LL7。//判断按键6是否按下MOV P2,#7DH。

CPL A。

MOV P0,A。

LCALL DELAY。

AJMP LP。

LL7 : CJNE A,#0BFH,LL8。//判断按键7是否按下MOV P2,#07H。

CPL A。

MOV P0,A。

LCALL DELAY。

AJMP LP。

LL8 : CJNE A,#7FH,LP。//判断按键8是否按下MOV P2,#7FH。

CPL A。

MOV P0,A。

LCALL DELAY。

LP : AJMP START。//跳转回程序开头DELAY : MOV R7,#01H。//延时程序

DE1 : MOV R6,#28H。

DE2 : MOV R5,#5AH。

DJNZ R5,$。

DJNZ R6,DE2。

RET

END

四、思考题

1、LED循环方向更改:RL A。改成RR A。

1S的延时程序:DELAY : MOV R7,#20。//延时程序

DE1 : MOV R6,#200。

DE2 : MOV R5,#123。

DJNZ R5,$。

DJNZ R6,DE2。

DJNZ R7,DE1。

RET

2、提高电阻阻值

3、一般为5V或者3.3V。

单片机上电时I/O口出于高电平,则I/O口的输出电压要经过PNP三极管放大,再对继电器控制。

相关文档
最新文档