单片机实验P1口实验一简单I/O口扩展实验一
【单片机实验P1口实验一:简单I/O口扩展实验一】 实验一和实验二的主要目标是学习和掌握单片机中的P1口作为输入和输出接口的使用方式,以及如何通过编程控制硬件设备,如发光二极管和按键开关。在8051单片机中,P1口是一个准双向口,每个引脚可以独立设置为输入或输出模式。作为输入口时,需要先向相应的锁存器写入"1",确保数据能被正确读取。实验中,通过8个发光二极管和8个按键开关,能够直观地观察到P1口的输出和输入功能。 实验内容分为两个部分: 1. P1口作为输出口:将P1口的8位连接到8个发光二极管,编写程序使得二极管循环点亮。这需要利用循环和移位指令来改变P1口的数据,实现二极管逐个亮起的效果。例如,通过左移位指令RL A,可以使二极管按照顺序点亮,配合延时子程序实现闪烁效果。 2. P1口作为输入口:连接8个按键开关,并使用74LS273作为输出驱动,编写程序读取P1口的按键状态,并在二极管上显示。当P1口设置为输入,通过读取P1口的电平状态,可以获取按键开关的状态,然后利用74LS273驱动二极管显示。 实验中还涉及到延时程序的编写。在6.144MHz晶振的条件下,可以通过循环指令如DJNZ来实现延时。例如,设定一个0.1秒的延时程序,需要计算指令执行的总时间,以确定循环次数。通过计算得知,当R7初始化为#127,R6初始化为#200时,可以实现约0.100215秒的延时。 实验步骤包括: 1. 对于程序1,将P1.0~P1.7分别连接到L1~L8,执行程序后,二极管将循环点亮。 2. 对于程序2,P1.0~P1.7连接按键开关K1~K8,74LS273的SO0~SO7连接到L1~L8,CS273接到CS0。程序读取P1口的状态,并通过74LS273显示在二极管上。 参考程序示例: - 循环点亮二极管程序(T1_1): ```汇编 ; 省略部分... LOOP: RL A ; 左移A,点亮下一个二极管 MOV P1,A ; 将A的内容写入P1口 LCALL DELAY ; 调用延时子程序 JMP LOOP ; 继续循环 ; 省略部分... ``` - 显示P1口状态程序(T1_2): ```汇编 ; 省略部分... MOV P1,#0FFH ; 复位P1口为输入 MOV A,P1 ; 读取P1口状态 MOV DPTR,#OUT_PORT ; 设置输出地址 MOVX @DPTR,A ; 将状态写入地址 JMP START ; 继续监测P1口状态 ; 省略部分... ``` 通过这样的实验,学生能够深入理解单片机的I/O操作,以及如何通过编写汇编语言程序来控制硬件设备,同时熟悉8051单片机的P1口特性及其在实际应用中的作用。
剩余11页未读,继续阅读
- zllllly2012-10-11入门级的不错选择。
- 学习的2013-04-26正好与我们的实验相匹配
- 种花家的半夏2012-12-14入门级的不错选择。确实不错 比较详细了 入门必备
- Lgs_11082014-12-01很好、、、很满意,比较详细、、、谢谢
- 粉丝: 2
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助