单片机基础实验六则(汇编)

本文详细介绍了五个单片机基础实验,包括存储器读写、并行端口驱动数码管、外部中断计数显示、定时计数器控制蜂鸣器以及串行AD转换和串行口通信。实验涉及RAM操作、BCD码计算、数码管动态显示、中断处理和定时器应用,旨在深入理解单片机操作原理。
摘要由CSDN通过智能技术生成

 

存储器读写实验:

对RAM的30H、31H单元分别赋值BCD码75H、35H,试将两个数相加,其BCD的差送32H单元。

(说明):

因为MCS-51的十进制调整指令不适合减法,因此可以把减法变成加法:将被减数-减数变成被减数+减数的补数,其中,减数的补数=BCD码的模-减数。最后再用十进制加法指令,将被减数+减数的补数,所得值送往存储器A,再存储到32H单元即可。

(流程图):

 

	ORG	0000H
	LJMP	START
	ORG	0020H
START:	MOV	R0,#30H
	MOV	R1,#31H
	MOV	30H,#72H
	MOV	31H,#35H
	MOV	A,#9AH
	SUBB	A,@R1
	ADD	A,@R0
	DA	A
	MOV	32H,A
	SJMP	$
	END

 并行端口实验:

利用单片机的两个接口驱动四位一体LED数码管电路,要求在数码管上自右向左直接显示RAM20H—23H中的“0,4,1,9”。

(说明):

待显示的数据变量存储在RAM的20H-23H中,对应的字形码存储在RAM的24H-27H中。与变量对应的字形码通过查表获取。根据电路特点,位驱动电平为低电平有效。子程序DELAY得延时决定每位数码管的点亮时间,可以通过修改DELAY中的延时参数来增加延时时间,从而观察动态显示的效果。

(流程图):

ORG	0000H
	LJMP	START
	ORG	0030H
START:	MOV	SP,#60H
	MOV	A,#00H
	MOV	R0,#20H
	MOV	@R0,A	
	MOV	A,#4
	INC	R0
	MOV	@R0,A
	INC	R0
	MOV	A,#1
	MOV	@R0,A
	INC	R0
	MOV	A,#9
	MOV	@R0,A
	MOV	R0,#20H
	MOV	R1,#24H
	MOV	R2,#4
	MOV	DPTR,#LEDGY
LOOP1:	MOV	A,@R0
	MOVC	A,@A+DPTR
	MOV	@R1,A
	INC	R0
	INC	R1
	DJNZ	R2,LOOP1
LOOP2:	MOV	P1,#0FFH
	MOV	P0,24H
	MOV	P1,#0EFH
	LCALL	DELAY
	MOV	P1,#0FFH
	MOV	P0,25H
	MOV	P1,#0DFH
	LCALL	DELAY
	MOV	P1,#0FFH
	MOV	P0,26H
	MOV	P1,#0BFH
	LCALL	DELAY
	MOV	P1,#0FFH
	MOV	P0,27H
	MOV	P1,#07FH
	LCALL	DELAY
	SJMP	LOOP2
LEDGY:	DB	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
	DB	80H,90H,88H,83H,0C6H,0A1H,86H,8EH
DELAY	PUSH	00H
	PUSH	01H
	MOV	R1,#00H
LOOP3:	MOV	R0,#06H
	DJNZ	R0,$
	DJNZ	R1,LOOP3
	POP	01H
	POP	00H
	RET	
	END

  外部中断实验:

设计一个计数器,利用中断程序完成对其每按五次便加一并显示的功能,计数器原始清零。利用“逻辑笔”电路显示P0.7的状态:如果P0.7的电平不断转换,则表明系统在执行主程序,无中断;如果P0.7变成固定的高电平,则表明系统进入中断。

(说明):

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值