【51单片机汇编实验】实验六 串行口实验

一、实验目的

  1. 学习51单片机串行口的工作原理及使用方法。
  2. 学习51单片机串行口的初始化程序、应用程序的编写和调试。

二、实验说明

本实验1通过单片机的串行口进行通信,通过本机向自身传送数据:TXD端进行发送,RXD端进行接收。通过检测开关状态,将开关编号存入内部数据存储器并在数码管上显示,同时记录开关总次数存入工作寄存器,并通过本机的串口发送和接收开关编号。实验2通过单片机的串行口进行双机通信,由甲机将开关编号和开关动作的总次数发往乙机。通过本实验学生可以掌握单片机串口的工作原理及使用方法以及串口的初始化程序、应用程序的编写和调试。实验1必做,实验2选做。

三、实验内容

1、P1.0-P1.7作为输入口拨动开关K1-K8,每当开关按下时,
1)将开关编号(0—7)存入内部数据存储器,要求存入的开关编号数据不少于10个,存储空间自定;
2)采用工作寄存器记录开关动作总次数;
3)通过本机的TXD和RXD进行串行通信,发送开关编号,接收的数据存入另一内部数据存储器,存储空间自定(不能重叠),要求采用方式1,波特率为4800b/s,fosc=11.0592MHz;
4)将接收到的数据显示在LED数码管。
个人解析:每次按下开关后将变量加1,并通过自机收发点亮相应的led数量
2、双机通信:(双机共地)
1)甲机P1.0–P1.7作输入口接拨动开关S0–S7,每当有开关动作(低电平)
A、将开关编号(0—7)存入内部数据存储器,开关编号数据显示在LED数码管上。
B、采用工作寄存器记录开关动作总次数,数据以二进制形式显示在LED上。
C、通过本机的TXD发送开关编号及开关动作总次数,要求采用方式3,奇校验,波特率为2400b/s,fosc=11.0592MHz;
2)乙机通过本机的RXD接收甲机发送的开关编号及开关动作总次数数据,要求采用方式3,奇校验,波特率为2400b/s,fosc=11.0592MHz;将接收到的开关编号数据显示在LED数码管,开关动作总次数数据以二进制形式显示在LED上。
编写初始化程序和中断服务程序,在实验板上调试通过。将接收和发送互换,将波特率改为9600b/s,完成上述双机通信任务。

PS

作者使用的是普中A2板子,因此IO口已经固定接了电子元件,读者可以通过代码开头的伪代码自己修改电子器件接哪个I/O口
由于时间以及精力的不足,本次实验只做了必做题目。

实验1

	SWITCH EQU P3
	LED EQU P2
	TUBE EQU P0
	ORG 0000H
	AJMP MAIN
	ORG 0023H
	AJMP TRXSVE
	ORG 0030H
	MAIN:
		MOV TMOD,#20H
		MOV TH1,#0FAH
		MOV TL1,#0FAH
		SETB TR1
		MOV SCON,#50H
		MOV PCON,#00H
		SETB EA
		SETB ES
		MOV R7, #00H
	
	WATING_SWITCH:
		MOV	SWITCH, #0FFH
		MOV A, SWITCH
		CJNE A, #0FFH,GET_SWITCH_VALUE
		SJMP WATING_SWITCH
		GET_SWITCH_VALUE:
		LCALL DELAY10MS
		MOV A, SWITCH
		CJNE A, #0FFH, WATING_SWITCH
		;以上为基本的串口配置以及按键消抖,可以参考往期文章
			INC R7
			MOV SBUF, R7
			;以SBUF为目的的指令会自动开启发送
			JNB	TI,$
			;等待TI,发送标志位置1,表示发送完成。
			CLR TI
			;发送完成后需手动清零TI位,否则会一直触发中断
		SJMP WATING_SWITCH
	SJMP $
	TRXSVE:
		JB TI, BACK
		;RI,TI中有一位为1就会触发中断,因此需要判断是否是接受位触发的中断
		MOV A, SBUF
		CPL A
		CLR RI
		;接收完信息后要手动清零,原因同上
		MOV LED, A
	BACK:	
	RETI
	RET
	DELAY10MS:			;@11.0592MHz
		MOV		30H,#18
		MOV		31H,#230
	NEXT:
		DJNZ	31H,NEXT
		DJNZ	30H,NEXT
	RET
	END

实验现象

将P3.1与P3.0口连接后,按下开关led灯会以二进制显示按下的次数,断开这两个口,按键按下后led无变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值