栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C51单片机实验——脉冲计数显示(proteus+asm)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C51单片机实验——脉冲计数显示(proteus+asm)

前言
  • 脉冲信号输入进2级74LS14整形
    T1接收脉冲信号并计数,显示在LED
  • 外部中断0控制计数器的启动/停止
    外部中断1控制计数器的清零复位
  • P1.0控制LED的段选口使能信号
    P1.1控制LED的位选口使能信号
Proteus电路图

asm代码
ORG		0000H
LJMP	INIT
ORG		0003H				//外部中断0
LJMP	INT0SUB				
ORG		0013H				//外部中断1
LJMP	INT1SUB

ORG		0100H
INIT:	CLR		P1.0		//控制端复位
		CLR		P1.1
		MOV		DPTR,#TABLE	//指向表头
		MOV		R0,#03H		//循环次数
		MOV		R1,#7FH		//位选信号
		MOV		TMOD,#50H	//工作模式
		MOV		TL1,#00H	//初始化
		SETB	EA			//启动总中断
		SETB	EX0			//启动外部中断0
		SETB	EX1			//启动外部中断1
		SETB	TR1			//启动计数器1
			
TRANS:	SETB	TR1			//启动计数器1
		MOV		A,TL1		//16进制转10进制
		MOV		B,#10
		DIV		AB
		MOV		40H,B		//个位
		MOV		B,#10
		DIV		AB
		MOV		41H,B		//十位
		MOV		42H,A		//百位		

MAIN:	MOV		A,R1		//位选信号
		MOV		P0,A		//输出位信号
		SETB	P1.1		//上升沿
		CLR		P1.1
		MOV		A,40H		//段选信号
		MOVC	A,@A+DPTR
		MOV		P0,A		//输出段信号
		SETB	P1.0		//上升沿
		CLR		P1.0
		
		MOV		40H,41H		//改变段选信号
		MOV		41H,42H
		MOV		A,R1		
		RR		A			//位选右移
		MOV		R1,A
		LCALL	DELAY		//延时1ms
		DJNZ	R0,MAIN		//循环3次
		MOV		R0,#03H		//循环次数复位
		MOV		R1,#7FH		//位选信号复位
		SJMP	TRANS		
		
INT0SUB:CLR		TR1			//启动/停止
		RETI

INT1SUB:MOV		TL1,#00H	//清0
		RETI

TABLE:	DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH	//段选表
	
DELAY:	MOV		30H,#2		//延时1ms
		MOV		31H,#234
NEXT:	DJNZ	31H,NEXT
		DJNZ	30H,NEXT
		RET

END

注:本例程只编写了TL1值的显示,上限255
(显示TH1或其他位的值同理,增加段选信号存放区域即可)

效果图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号