【汇编作业记录Proteus8+keil5 作业 3】

目录

一、作业三要求

二、关于数码管和蜂鸣器

2.1数码管

2.1.1共阳极数码管

 2.1.2共阳极数码管电路接法

 2.1.3共阴极数码管

 2.1.4共阳极数码管电路接法

2.2蜂鸣器

三、完成过程分析与实现

电路图连接

程序实现

总结


一、作业三要求

用Proteus设计单片机控制1只数码管,循环显示0~9。循环显示间隔可手动按钮调整。每当到9时,发出声音提示。(定时器与数码管)

二、关于数码管和蜂鸣器

2.1数码管

2.1.1共阳极数码管

下图为共阳极数码管的原理图,由于共阳极和共阴极数码管的原理图不同,所以在Proteus中选择数码管时需要注意。

显示数字0时a,b,c,d,e亮,g和dp暗,所以abcdef为低电平0,g和dp为高电平1,所以0的七段码为11000000B为C0H;显示数字1时bc亮,adefg暗,所以bc为低电平0,adefg和dp为高电平1,所以1的七段码为11111001B为F9H......以此类推得到下表(共阳极数码管0-9的七段码)

共阳极查表

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H		;七段数码管共阳极数码表
	DB 92H,82H,0F8H,80H,90H	

 2.1.2共阳极数码管电路接法

 ​​​

 2.1.3共阴极数码管

共阴极查表

TAB:DB 3FH,06H,5BH,4FH,66H						;七段数码管共阴极数码表
	DB 6DH,7DH,07H,7FH,6FH	

 2.1.4共阳极数码管电路接法

2.2蜂鸣器

我个人参考的帖子,写的很详细

https://blog.csdn.net/weixin_41980642/article/details/106626133

三、完成过程分析与实现

电路图连接

程序实现

ORG		0000H
LJMP	MAIN
ORG		000BH
BUFF	BIT	P2^6
BUTO	BIT P1^1	
MAIN:
	CLR		BUFF
	MOV		R7,#255
	MOV		R6,#255
	MOV		R5,#255
	MOV		R4,#255
	MOV		R1,#00H
	MOV		R0,#00H
	MOV		A,R1
	
	MOV		TMOD ,#022H	;#0010 0010
	MOV 	TH0	,#8AH
	MOV 	TL0 ,#0CFH
	MOV 	TH1 ,#15H
	MOV 	TL1 ,#9FH
	JNB		BUTO,LOOP2	;BUTO为1序执行,1->开关断开,0->开关闭合

LOOP:
	ANL		A,#0FH
	MOV		DPTR,#TAB
	MOVC	A,@A+DPTR	;查表
	MOV		P0,A	;P0口输出,显示数字	
	
TIME1:
	SETB 	TR1
	JNB		TR1	,$	;TR0为1顺序执行
	CLR		TR1
	MOV 	TH1	,#8AH
	MOV 	TL1 ,#0CFH
	DJNZ	R7,TIME1
	DJNZ	R5,TIME1
	JNB		BUTO,LOOP2 ;BUTO为1顺序执行
	INC		R1
	MOV		A,R1	;A加1
	CJNE	A,#10,LOOP	;判断A是否到达10
	CPL 	BUFF
	ACALL	DELAY
	AJMP	MAIN	;当A达到10跳回主函数,重新赋值为0

LOOP2:
	ANL		A,#0FH
	MOV		DPTR,#TAB
	MOVC	A,@A+DPTR	;查表
	MOV		P0,A	;P0口输出,显示数字	
	
TIME2:
	MOV 	TH0 ,#15H
	MOV 	TL0 ,#9FH
	SETB	TR0
	JNB		TR0	,$	;TR0为1顺序执行
	CLR		TR0
	MOV 	TH0	,#8AH
	MOV 	TL0 ,#0CFH
	DJNZ	R6,TIME2
	DJNZ	R4,TIME2
	JB		BUTO,MAIN	;BUTO为0顺序执行 0->闭合
	INC		R0
	MOV		A,R0	;A加1
	CJNE	A,#10,LOOP2	;判断A是否到达10	
	CPL   BUFF
	ACALL	DELAY
	AJMP	MAIN
	
ORG	0200H
TAB:DB 3FH,06H,5BH,4FH,66H						;七段数码管共阴极数码表
	DB 6DH,7DH,07H,7FH,6FH	
		
DELAY:	MOV	R3,#256
DEL1:	MOV R2,#256
DEL2:	NOP
		NOP
		NOP
		DJNZ R2,DEL2
		DJNZ R3,DEL1
		RET
END

总结

作业三的程序和作业二的程序很相像,最大的不同点在于作业三需要学会查表指令以及蜂鸣器的使用,所以在作业三中没有对实现过程做过多的阐述。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值