找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3715|回复: 2
打印 上一主题 下一主题
收起左侧

串口通信,定时器,中断结合的汇编编程

[复制链接]
跳转到指定楼层
楼主
ID:57594 发表于 2013-12-5 09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由AT89S51内部定时器0,按方式1工作,即作为16位定时器使用每0.05秒T1溢出中断一次。P0口的P1.0~P1.8分别接8个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L1,L8亮,第二秒钟L2,L7亮,第三秒钟L3,L6亮,第四秒L4,L5亮,第五秒L3,L6亮,第六秒L2,L7亮,第七秒L1,L8亮,第八秒L1,L3,L5,L7亮,第九秒L2,L4,L6,L8亮,第十秒全亮,第十一秒全灭。然后再从头循环。当由外部中断来时,定时器停止工作,响应外部中断,同时将P0口的数据状态发给PC机显示.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2013-12-6 00:09 | 只看该作者




	ORG 0000H
	AJMP START
	ORG 001BH	 ;T1中断入口地址
	AJMP INT_T1
	ORG 0100H
START:
	MOV SP,#60H
	MOV TMOD,#10H	 ;置T1为方式1
	MOV TL1,#00H	 ;延时50mS的时间常数
	MOV TH1,#4BH
	MOV R0,#00H
	MOV R1,#20
	SETB TR1
	SETB ET1
	SETB EA		 ;开中断
	SJMP $
INT_T1: 			 ;T1中断服务子程序
	PUSH ACC	 ;保护现场
	PUSH PSW
	PUSH DPL
	PUSH DPH
	CLR TR1		 ;关中断
	MOV TL1,#00H	 ;延时50mS常数
	MOV TH1,#4BH
	SETB TR1	 ;开中断
	DJNZ R1,EXIT
	MOV R1,#20	 ;延时一秒的常数
	MOV DPTR	,#DATA ;置常数表基址
	MOV A,R0	 ;置常数表偏移量
	MOVC A,@A+DPTR ;读常数表
	MOV P1,A	 ;送P1口显示
	INC R0
	ANL 00,#07H
EXIT:
	POP DPH	 ;恢复现场
	POP DPL
	POP PSW
	POP ACC
	RETI
	 		;LED显示常数表
DATA: DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH
	END
回复

使用道具 举报

板凳
ID:1 发表于 2013-12-6 00:10 | 只看该作者
程序已发
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表