求助一段简单的单片机编程(汇编语言)

单片机P3.0口输出一定频率的脉冲,脉冲间隔为0.5秒,用普通的延时程序就行。晶振频率为6MH。... 单片机P3.0口输出一定频率的脉冲,脉冲间隔为0.5秒,用普通的延时程序就行。晶振频率为6MH。 展开
 我来答
意法半导体(中国)投资有限公司 2023-08-25
展开全部
意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法半导体单片机产品线拥有业界宽广、极具创新力的32位产品系列 – STM32,覆盖超低功耗、超高性能方向,同时兼具一流的市场竞争力。STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过1000个型号。STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能…
jiajingtao126
2009-05-22 · TA获得超过289个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:0
展开全部
你的晶振为6MH,所以机器周期则为2us.即500MS(0.5秒的时间如下)
DELAY500Ms:
MOV R7,#0x0F
loop3:MOV R6,#0xCA
loop2:MOV R5,#0xA2
loop1:DJNZ R5,loop1
DJNZ R6,loop2
DJNZ R7,loop3
RET
延时总时间 = 三层循环 +子程序调用 2us + 子程序返回 2us = 499996+4 = 500000us =500ms
这个延时程序比较准确,你可以用示波器看下。
ORG 0000H
AJMP MIAN
ORG 0100H
MIAN:
NEXT:CPL P3.0
ACALL DELAY500Ms
SJMP NEXT
这个程序你可以直接编译后下载到单片机里去运行。

但我建议你不要用这种方法,因为它太占用系统时间,效率很差,你可以用定时做,这样不但非常准确而且不占用时间,系统还可以处理其它很多事情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
dxw0712
2009-05-22 · TA获得超过2180个赞
知道大有可为答主
回答量:1596
采纳率:23%
帮助的人:243万
展开全部
楼上的写的是10S的延时程序,而且不是很精准,用push和pop也占用了很多资源。
DELAY:
MOV R7,#250
DELAY1:
MOV R6,#248
DJNZ R6,$
DJNZ R7,DELAY1
RET
这个程序只有6个us的误差

输出脉冲程序:
TT:CPL P3.0
ACALL DELAY
SJMP TT
这个是死循环,就是一直输出脉冲,除非来中断,如果你只是调用这个程序,然后做别的事情,之需要设置一个寄存器,做了几次就结束就ok。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
电子粉丝
2009-05-22 · TA获得超过8020个赞
知道大有可为答主
回答量:6943
采纳率:74%
帮助的人:3151万
展开全部
ORG 0000H
AJMP START
ORG 0050H
START: ACALL KS0 ; 停止0.5S
CLR P1.0 ;输出
ACALL KSA ; 输出 0.5S
AJMP START
KS0: MOV R0,#008H
KS1: MOV R1,#0FFH
KS2: MOV R2,#03CH
DJNZ R2,$
DJNZ R1,KS2
DJNZ R0,KS1
RET
KSA: MOV R0,#008H
KSB: MOV R1,#0FFH
KSC: MOV R2,#03CH
DJNZ R2,$
CPL P1.0
DJNZ R1,KSC
DJNZ R0,KSB
RET
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a33403916
2009-05-22 · TA获得超过313个赞
知道小有建树答主
回答量:494
采纳率:100%
帮助的人:379万
展开全部
仿真调试一下具体参数
程序就 是这样

_DELAY:
PUSH 0
PUSH 1
PUSH 2

MOV R0,#50
_D1:
MOV R1,#200
_D2:
MOV R2,#250
DJNZ R2,$
DJNZ R1, _D2
DJNZ R0, _D1

POP 2
POP 1
POP 0
RET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式