您的位置 首页 元件

单片机汇编试验二:定时器试验

实验要求:由AT89S52内部定时器0,按方式1工作,即作为16位定时器使用每005秒T1溢出中断一次。P1口的P10~P18分别接8个发光二极管。要求

试验要求:
由AT89S52内部定时器0,按方法1作业,即作为16位定时器运用每0.05秒T1溢出中止一次。P1口的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亮,第十秒全亮,第十一秒全灭。然后再从头循环。
//This is the second program of the homework;
//Name: WQ DATE: 201326
//In thisprogramwe used the Intterput;
ORG 0000H //无条件 搬运指令
LJMP MAIN //LJMP 长搬运指令 65535 (双字节)
ORG 000BH //AJMP 肯定搬运 2K
LJMP INTT0 // SJMP 短搬运 -128——127
// JMP 变址搬运 JMP @A+DPTR
//中止程序能够放在前面和后边
//别的只需程序段的空间能合理分配不抵触就能随意调用
ORG 0050H
MAIN:MOV DPTR,#TABLE
MOV R1,#11 //R1做一个计数器 查表用
CLR A //将A清零,用来寻址
MOV R2,A //另一个计数器用来加减
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
MOV R3,#20 //R3做一个计数器
SETB EA //开总中止
SETB ET0 //答应计时器
SETB TR0 //敞开计时器
OK: SJMP OK

ORG 0150H
INTT0:MOV TH0,#4CH
MOV TL0,#00H
DJNZ R3,RETN //1秒钟到来了
MOV R3,#20
MOV A,R2
MOVC A,@A+DPTR
MOV P1,A
INC R2 //指针加一
DJNZ R1,RETN //不满足调见回来主程序持续计时
MOV R1,#11 //循环之后置数
MOV R2 ,#0 //循环之后清零
RETN:RETI //中止子程序的回来指令
TABLE:DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH,7EH,0AAH,55H,00H,0FFH //十六进制数前面要加零
END //主程序完毕指令

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/255049.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部