问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机计算定时的汇编程序解析说明。

发布网友 发布时间:2022-11-18 10:45

我来回答

1个回答

热心网友 时间:2024-12-12 07:22

SHUZHI EQU 58H ;把58H命名为SHUZHI

ORG 0000H

AJMP MAIN ;程序跳转到MAIN
ORG 0030H ;51单片机程序一般要从地址0030H开始往下执行
MAIN: MOV P1,#0FFH ;初始化,将P1,P3口都置为高电平(这和单片机I/O口的保护有关);将SP指向60H
MOV P3,#0FFH ;
MOV SP,#60H ;
CLR EA ;关总中断
CLR ES ;禁止串口中断
MOV R6,#10 ;赋R6 #10
MOV R7,#20 ;赋R7 #20
MOV P3,#0C0H ;置P3口为C0H,P3好象是和显示有关(因为没有硬件图),那就是初始显示的内容
MOV R0,#00H ;赋R0为00H
MOV R1,#00H ;赋R0为00H
MOV A,#00H ;赋累加器A为00H(上面3句都是在初始化寄存器)
MOV SHUZHI,#00H;赋58H为00H (58H应该计数用的)
MOV DPTR,#TABLE;送#TABLE到DPTR,即指向表格,为后面的MOVC A,@A+DPRT。调用表格作初始。
LOOP:JNB P1.0 ,JIAYI ;判断P1.0不等于1跳转,等于1就继续判断。(这里应该是个开关类的东西,按下后为0,就跳转了)
AJMP LOOP
JIAYI:JNB P1.0,$ ;判断P1.0不等于1就继续判断,等于0就延时,继续下面程序(这里意义在判断有没有放开这个开关)
LCALL DELAY ;延长时间一次,调用延长子程序
MOV A,SHUZHI ;送58H到A
INC A ;是寄存器A中的内容增加1
MOV SHUZHI,A;A送回58H,(这里的意义是表示计数加1了)

MOVC A ,@A+DPTR ;第一次按开关就是A=01H,那么就是送C0H给A
MOV P3,A ;送C0H给P3口,应该是显示什么内容
CLR P1.1 ;打开B继电器。
CLR P1.3 ;开B灯。
MOV TMOD,#00000001B ;定时/计数器0工作于方式1
FENZHONG: MOV R7,#20 ;赋R7 #20
CONGLAI: MOV TH0,#3CH ;定时器0高8位赋初值
MOV TL0,#0B0H ;低8位赋初值
SETB TR0 ;开启定时中断
LOOP1: JNB P1.0,JIXU_XIANSHI ;判断P1。0,不等于1,就跳转关定时器0,等于1就判断定时定时器有没有溢出
JBC TF0,YICHU_PANDUAN ;判断定时器0有没有溢出,没有就重新判断P1。0,溢出就跳转到YICHU_PANDUAN重新初始。
AJMP LOOP1
YICHU_PANDUAN:DJNZ R7,CONGLAI ;(下面就重新循环上面的作用)
DJNZ R6,FENZHONG
CLR TR0
AJMP MAIN

JIXU_XIANSHI:CLR TR0
CLR TF0
JNB P1.0 ,JIAYI2
AJMP JIXU_XIANSHI
JIAYI2:JNB P1.0,$
LCALL DELAY

JNB P1.0,$
LCALL DELAY

MOV A,SHUZHI
INC A
MOV SHUZHI,A
MOVC A ,@A+DPTR
MOV P3,A
MOV A, SHUZHI
CJNE A,#04H,JIXU_XIANSHI
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY

CLR P1.2 ;打开A继电器。
CLR P1.4 ; 开A灯。
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB P1.1 ;关闭B继电器。
SETB P1.3 ;关闭B灯
AJMP $ ;AMJP $和SJMP $都表示跳转到本行,就是一个死循环,使程序停在这里。
DELAY: MOV R0,#255 ; ----- 延时子程序 -----
TURN: MOV R1,#255
DJNZ R1,$
DJNZ R0,TURN
RET
TABLE: DB 0C0H,0F9H,24H,30H,19H ;七段显示器数据定义 DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ; 01234

END
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
5数字寓意是什么意思 如何在 iPhone14上恢复已删除的照片? 红井源 醇香胡麻油 2.5L-购买最佳价格 python如何实现修改当前文件夹下所有文件名称? python遍历输出所有文件 用Python遍历指定文件夹下所有文件 Python:读取指定路径下的文件,含子文件夹,可指定文件类型 谁有治疗网瘾的好方法? 孩子有网瘾又叛逆怎么办 退伍证名字错了怎么办 油门不回位是什么问题 番茄小说一元提现能提几次 如果网友隐身登录,系统是显示在线还是离线 隐身显示离线吗 删了自己喜欢的人的微信,是什么感觉? 剃须刀充电的好还是干电池的好? 派出所身份证遗失证明 请问身份证遗失声明怎么写 长沙公共营养师报考要什么条件? 那里有好的嵌入式开发视频教程?求推荐 早上向朋友问好的句子 四姑娘山二峰最佳攀登季节 四姑娘山什么时候去合适 四姑娘山几月份去最好 什么时候去四姑娘山比较好 适合糖尿病人吃的主食 文档怎么加密设置密码(文档怎么加密设置密码) 设计蓝图盖章 弱电的设计蓝图应该盖什么章 需要什么资质才能有这样的章... 徐州属于几线城市? Madd Anju的《So Hard》 歌词 珉的读音是什么意思(珉字怎么读) 波点露肩上衣+牛仔紧身裤,舒适休闲,心情愉快,气质清新时尚,你喜欢... 装机模拟器换主板不兼容 83版简爱哪里可以看全集 重庆二手搅拌车交易市场在哪里 重庆市江津区驰旭混泥土有限公司,个人买搅拌车挂靠里面业务好吗?_百 ... 一天中午只吃一个桃子李子会瘦吗 节食减肥吃桃子和李子,会瘦么,可以么? 晚上临睡前吃桃或李子会长胖吗?它们的热量各是多少? 吃桃子李子喝杯温水会瘦吗 如何按照参考文献顺序进行文献排序? 芜湖市晨曦广告有限公司怎么样? 芜湖市天赐传媒文化广告有限公司怎么样? 芜湖小区广告哪里有。。正规一点的,覆盖面大一点的。。最好是市区。求... 熬夜时该如何提神? 熬夜应该怎么提神醒脑 请问,建行卡一个月能转账多少啊? 母亲过生日送什么礼物最好,送妈妈什么生日礼物比较好 shell将GMT时间格式转为时间戳 打年糕的声音怎么形容