网站大量收购独家精品文档,联系QQ:2885784924

单片机硬件及指令系统应用课件.pptVIP

单片机硬件及指令系统应用课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2、副程式設計(1)每個副程式都有一個唯一的入口(唯一的名稱),並以標號作為標識,以便主程序的正確調用,副程式通常以RET指令作為結束。(2)為了使副程式具有通用性,副程式的操作對象通常採用寄存器或寄存器間址等尋址方式。(3)為了使副程式不論存放在記憶體的任何區域都能被正確執行,在副程式中如有轉移指令,應使用相對轉移指令而不能用絕對轉移指令。(4)進入副程式時,應對那些主程序中使用並在副程式中繼續需要使用的寄存器的內容進行保護(即保護主程序現場),在返回主程序時應恢復它們的原來的狀態。副程式設計的基本步驟如下:(1)確定副程式的名稱(入口標號)。(2)確定副程式的入口參數及出口參數。(3)確定所使用的寄存器和存儲單元機器使用目的。(4)確定副程式的演算法,編寫根源程式。例、設內部RAM20H、21H單元中有兩個數a和b,編程求c=a2+b2,並把c送入記憶體單元22H中。該程式由兩部分組成:主程序和副程式。主程序通過累加器A傳送入口參數a和b,副程式用於求平方並將結果通過累加器A傳送給主程序,主程序再求兩平方和。????主程序ORG0100H?MOVA,20H;a→AACALLSQR;求a2MOVR0,A;a2→R0MOVA,21H;b→AACALLSQR;求b2ADDA,R0;a2+b2→AMOV22H,A;存入22H單元END??以下為副程式ORG1000H?SQR:ADDA,#01H;?MOVCA,@A+PC??RET??TAB:DB00H,01H,04H,09H,16H,?DB25H,36H,49H,64H,81H(二)迴圈轉移指令DJNZRn,rel;(Rn)←(Rn)—1若(Rn)≠0,則PC+2+rel,跳轉至目標地址若(Rn)=0,PC+2跳轉到本指令的下一條指令去執行DJNZdirect,rel;(direct)←(direct)—1若(direct)≠0,則PC+2+rel,跳轉至目標地址若(direct)=0,PC+2跳轉到本指令的下一條指令去執行DJNZ指令主要用來實現計數功能,一旦計數完畢,立即退出循環體,否則繼續在循環體中迴圈。例:將8031內部的RAM40H~4FH單元置為#00H。解:??ORG0000h??MOVR0,#40H;置首址?MOVR2,#10H;置長度LOOP:MOV@R0,A??INCR0;修改指針?DJNZR2,LOOP;判斷長度?END??(三)延時副程式的設計1、機器週期當振盪脈衝頻率為12MHZ,一個機器週期為1us。當振盪脈衝頻率為6MHZ,一個機器週期為2us。2、指令週期執行一條指令所需的時間叫指令週期,一般指令需1、2、4個機器週期。3、單迴圈程式運用圖2-10延時副程式(5.135ms)考慮在此單迴圈程式外再嵌套一層迴圈,見下方第2~7部分,以內部(3~6行)產生延時時間為5ms為重複操作對象,重複操作的次數由外迴圈來進行參數設置,由外部迴圈中R7設定為20,這樣重複20次1ms的操作後延時約為100ms,考慮到晶振會帶來點誤差。圖2-11延時副程式(102ms)四、任務實施(一)硬體電路同任務一。(二)100ms延時副程式的調試。這已在延時副程式的設計中完成。(三)編寫完整的主程序和副程式。?ORG0000H?L1:MOVP1,#0FEH;點亮二極體?LCALLDELAY2;延時200ms?MOVP1,#0FFH;關閉二極體?LCALLDELAY2;延時200ms?LJMPL1;返回到首址?ORG0100H?DELAY2:MOVR7,#20;延時200ms副程式D1:MOVR6,#00H?D2:NOP???NOP???DJNZR6,D2??DJNZR7,D1??RET?;返回?END??(四)進行單燈閃爍綜合調試。將上述生成的單燈閃爍.hex檔加載到用Proteus繪製的硬體電路CPU後臺,點擊運行,可以觀察到二極體以200ms

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档