《键盘显示程序》word版

《键盘显示程序》word版

ID:29660783

大小:56.50 KB

页数:11页

时间:2018-12-21

《键盘显示程序》word版_第1页
《键盘显示程序》word版_第2页
《键盘显示程序》word版_第3页
《键盘显示程序》word版_第4页
《键盘显示程序》word版_第5页
资源描述:

《《键盘显示程序》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SDABITP1.7;总线定义SCLBITP1.6RSTBITP1.0KEY_INTBITP3.2MTDEQU40H;发送数据缓冲区MRDEQU49H;接受数据缓冲区ZLG7290EQU70H;ZLG7290的器件地址ACKBIT10H;应答标志位SLADATA50H;器件的从地址SUBADATA51H;器件的子地址NUMBYTEDATA52H;读/写的字节数变量ORG0000HLJMPMAINORG0100H;主程序如下:MAIN:MOVSP,#70HCLRRSTLCALLDELAYSETBRSTLCALLDELAYMAIN1:MOVr4,#67H

2、MOVR7,#08HMAINLOOP:JNBKEY_INT,KEY_HANDLESJMPMAINLOOPKEY_HANDLE:MOVSLA,#ZLG7290;指定器件地址MOVSUBA,#01H;指定子地址MOVNUMBYTE,#01H;发送2字节数据LCALLIRDNBYTE;调用写2字节数据程序LCALLDELAY;MOVR7,#08H;MOVA,#67HHANDLELOOP:mova,r4MOVMTD,APUSHACC;MOV30H,R7MOVA,MRDcjneA,#10H,NEXTMOVMRD,#0HNEXT:MOVMTD+1,MRDMOVS

3、LA,#ZLG7290;指定器件地址MOVSUBA,#07H;指定子地址MOVNUMBYTE,#02H;发送2字节数据LCALLIWRNBYTE;调用写2字节数据程序LCALLDELAY;SUING2;MOVR7,30HPOPACCdecr4DJNZR7,MAINLOOPSJMPMAIN1DELAY:MOVR5,#50Hdelay1:movr6,#0ffhdjnzr6,$djnzr5,delay1RETwait:nopnopnopnopnopret$include(V12C.INC)END;$include(V.INC);启动总线子程序START:S

4、ETBSDANOPSETBSCL;起始条件建立时间大于4.7usNOPNOPNOPNOPNOPCLRSDANOP;起始条件锁定时大于4usNOPNOPNOPNOPCLRSCL;钳住总线,准备发数据NOPRET;结束总线子程序STOP:CLRSDANOPSETBSCL;发送结束条件的时钟信号NOP;结束总线时间大于4usNOPNOPNOPNOPSETBSDA;结束总线NOP;保证一个终止信号和起始信号的空闲时间大于4.7usNOPNOPNOPRET;发送应答信号子程序MACK:CLRSDA;将SDA置0NOPNOPSETBSCLNOP;保持数据时间,即

5、SCL为高时间大于4.7usNOPNOPNOPNOPCLRSCLNOPNOPRET;发送非应答信号MNACK:SETBSDA;将SDA置1NOPNOPSETBSCLNOPNOP;保持数据时间,即SCL为高时间大于4.7usNOPNOPNOPCLRSCLNOPNOPRET;检查应答位子程序;返回值,ACK=1时表示有应答CACK:SETBSDANOPNOPSETBSCLCLRACKNOPNOPMOVC,SDAJCCENDSETBACK;判断应答位CEND:NOPCLRSCLNOPRET;发送字节子程序;字节数据放入ACC;每发送一字节要调用一次CACK

6、子程序,取应答位WRBYTE:MOVR0,#08HWLP:RLCA;取数据位JCWR1SJMPWR0;判断数据位WLP1:DJNZR0,WLPNOPRETWR1:SETBSDA;发送1NOPSETBSCLNOPNOPNOPNOPNOPCLRSCLSJMPWLP1WR0:CLRSDA;发送0NOPSETBSCLNOPNOPNOPNOPNOPCLRSCLSJMPWLP1;读取字节子程序;读出的值在ACC;每取一字节要发送一个应答/非应答信号RDBYTE:MOVR0,#08HRLP:SETBSDANOPNOPNOPNOPSETBSCL;时钟线为高,接收数据

7、位NOPNOPNOP;+1NOP;+1NOP;+1NOP;+1NOP;+1MOVC,SDA;读取数据位MOVA,R2CLRSCL;将SCL拉低,时间大于4.7usRLCA;进行数据位的处理MOVR2,ANOPNOPNOPNOP;+1NOP;+1NOP;+1NOPNOPNOP;+1NOPNOP;+1NOP;+1DJNZR0,RLP;未够8位,再来一次RET;以下是用户接口子程序;无子地址器件写字节数据;入口参数:数据为ACC、器件从地址SLA;占用:A、R0、CYIWRBYTE:PUSHACCIWBLOOP:LCALLSTART;起动总线MOVA,SL

8、ALCALLWRBYTE;发送器件从地址LCALLCACKJNBACK,RETWRB;无应答则跳转POPAC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。