- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机课设小记
100ms延时函数 51汇编语言程序设计
STC89C52 2010-11-18 23:14:47 阅读32 评论0 ??字号:大中小?订阅
//============================================================
//51单片机
//100ms延时函数
//作者:407672744
//============================================================
ORG 0000H ? //程序设计
AJMP START //跳过中断入口地址
;=======外部中断EXT0==========================================
ORG 0003H
; AJMP EXT0
;=======定时器T0==============================================
ORG 000BH
; AJMP T0
;=======外部中断EXT1==========================================
ORG 0013H
; AJMP EXT1
;=======定时器T1==============================================
ORG 001BH
; AJMP T1
;=============================================================
;0023H串口中断中断入口地址
;002BH定时器T2中断入口地址
;RAM ?0000H - FFH
;==;0000H - 007FH:低128字节,可以直接寻址和间接寻址
;0000H - 001FH:4组通用工作寄存器
;0020H - 002FH:可以位寻址16*8=128个?
;0030H - 007FH:通用的RAM
;==;0080H - 00FFH:高128字节,只能间接寻址
;ROM ?0000H - FFFFH
;==;片内有64K的程序存储器
;当EA为低的时候,外部程序存储器占有64K的地址
;当EA为高的时候,内部存储器占用8K的地址,外部程序存储器占有56K的地址
;==内部存储器8KB
;外部存储器56KB
;64K外部数据存储器地址空间
;=============================================================
;地址30H存放的是1 - 255 根据不同的内容分别转向分支处理程序
START:
CALL DELAY
AJMP START
DELAY:
MOV R7,#200
L1:
MOV R6,#200
DJNZ R6,$
DJNZ R7,L1
END
INCLUDE Irvine32.inc.codemain PROCmov eax,10000h ; EAX = 10000hadd eax,40000h ; EAX = 50000hsub eax,20000h ; EAX = 30000hcall DumpRegsexitmain ENDPEND main
为何我用proteus 使用 masm51编译的hex文件仿真会出现报错.ERROR reading Hex file ‘sss.hex at line 3:Colon expected at Start of line...Real Time simulation failed to Start.
单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz的晶振。最长的延时时间可达216=65 536 μs。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。C51编写的中断服务程序编译后会自动加上PUSH ACC、PUSH PSW、POP PSW和POP ACC语句,执行时占用了4个机器周期;如程序中还有计数值加1语句,则又会占用1个机器周期。这些语句所消耗的时间在计算定时初值时要考虑进去,从初值中减去以达到最小误差的目的。绍几种软件延时的方法。
2.1 短暂延时
可以在C文件中通过使用带_NOP_( )语句的函数实现,定义一系列不同的延时函数,如Delay10us( )、Delay25us( )、Delay40us( )等存放在一个自定义的C文件中,需要时在主程序
原创力文档


文档评论(0)