ImageVerifierCode 换一换
格式:PPT , 页数:46 ,大小:413.04KB ,
资源ID:12638101      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12638101.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2022年单片机第十四讲.ppt)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2022年单片机第十四讲.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用,(第十四讲),第八章 串行通信口,8.1串行通信的基础,并行通信,计算机,与外部信息交换的方式有两种 串行通信,并行通信,-,数据的所有位同时传送;特点是:速度 快,效率高,用在计算机内部的数据交换;,串行通信,-,数据的各位按顺序传输;特点是:成本低,速度慢,效率低,常常用在计算机与外部数 据的交换。(同步通信和异步通信),同步通信,-,特点是接受和发送的时钟严格保持同步,发送 和接收的数据位宽之间不存在误差积累的问题,从而能保证每一个数据位的区分和正确接受;,异步通信,-,特点是接受和

2、发送的时钟是相互独立的,没有 严格保持同步的频率,最多要求具有相同的标称 频率值。,字符帧,-也叫数据帧,由起始位、数据位、奇偶校验位、和停 止位等4部分组成。,起始位,-位于字符帧的开头,只占一位,始、终为逻辑0;,数据位,-紧跟在起始位置后,有5、6、7、8位,低位在前,高位在后,;,奇偶校验位-,位于数据位后,只占一位,用于表征在数据通信中采用奇 校验还是偶校验;,停止位-,位于字符帧的末尾,为逻辑“1”高电平,常常取 1位、1.5位 或2位;,波特率,-,每秒钟传送二进制数码的位数,单位:bps;,常有:600、1200、2400、4800、9600、19200等。,同步通信是一种连续

3、串行传输数据的方式,一次通信只传送一帧信息;它包括若干个数据字符。要求时钟严格保持同步。,1.半双工,只有一个通信回路;只有1条信息线和1条接地线;,有两个独立的通信回路,可以同时发送和接受数据,两条信息线和一条地线。,半双工方式串行通信,数据线,TXD,甲机,RXD,GND,RXD,乙机,TXD,GND,全双工方式串行通信,数据线,数据线,TXD,甲机,RXD,GND,RXD,乙机,TXD,GND,8.3 串行口控制寄存器,1.串行口控制寄存器SCON,SCON,用于串行通信的控制,字节地址为98H,位地址为9FH98H,基本格式为:位 序 D7 D6 D5 D4 D3 D2 D1 D0 位

4、地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号 SM0 SM1,SM2,REN,TB8 RB8 TI RI,其中:,SM0和SM1,串行口工作方式选择位。串行口的工作方式 SM0 SM1 工作方式 功能简述 波特率 0 0 0 8位同步移位寄存器 fosc/12 0 1 1 10位UART 可变 1 0 2 11位UART fosc/32或fosc/64 1 1 3 11位UART 可变,SM2-,多机通信控制位。多机通信是在方式2和方式3下进行,因此SM2位主要用在 方式2和方式3。,SM2=1,,则只有接收到第9位数据(RB8)为1时,才将接收到的 前8位数据

5、送到SBUF,并置位RI产生中断请求;若接收 到第9位数据(RB8)为0,则将接收到的前8位数据丢 弃,RI仍为0,不启动中断。,SM2=0,,则不论接收到的第9位(RB8)是0还是1,都将接收到 的前8位数据装入SUBF,并置位RI,产生中断请求。在串行通信工作方式0时,,SM2必须为“0”。,TB8-,在方式2和方式3中,是被发送的第9位数据,可根据需要由 软件置1或清0。该位也可作为数据的奇偶校验位。在方式1中,TB8为停止位;在方式0中,不用。,RB8-,在方式2和方始3中,是被接收的第9位数据,来自发送方的 TB8位;在方式1中,RB8收到的是停止位;,在方式0中,不用。,REN-,

6、允许/禁止串行口接收控制位。由软件将该位置1时允许串行接受,启动RXD,开始接收数据;该位被软件清0,,禁止接收。,TI-发送终端标志位。,在方式0中,串行发送到第8位数据后由内部硬件置1。在其他方式下,则在一帧传送的停止位开始发送时,由内部硬件置1。,TI必须由软件清0。,RI-接收中断标志位。,在方式0中,串行接收到第8位数据后由内部硬件置1。在方式1中,串行口接收到停止位的中间时刻由内部硬件置1;在方式2和方式3的置位情况和SM2一样。,RI必须由软件清0。,当发送完一帧串行数据时,TI被置1,发生串行口中断;当接收完一帧串行数据时,RI被置1,同样发生串行口中断。这两种中断服务程序的入

7、口地址都是,0023H,。CPU 并不知道是TI还是RI 申请的中断,必须由软件查询TI和RI的状态,方可进行相应的处理程序。,TI,和,RI,在中断服务程序中由软件清0,否则一次中断申请会被多次相应。,注意!,2.电源控制寄存器 PCON,PCON,主要是位HCMOS单片机电源控制而设置的专用寄存器。字节地址为87H,不可位寻址。其中:SMOD -GF1 GF0 PD IDL SMOD-波特率倍增位。SMOD=1,加倍;SMOD=0,不加。GF1-用户通用标志1位;GF0-用户通用标志0位;PD-掉电方式控制位;IDL-空闲方式控制位。,3.中断允许控制寄存器IE,ES=0,,禁止串行口中断

8、ES=1,,允许串行口中断。,PS=0,,串行口中断为低优先级;,PS=1,,串行口中断为高优先级。串行口设置 方式 SCON SM2变化 0 10H 1 50H 单个处理器 2 90H (SM2=0)3 D0H 0 NA 1 70H 多处理器 2 B0H (SM2=1)3 F0H,8.2串行通信的工作方式,1.串行通信工作方式0,当SM1SM0=00时,串行口选择方式0。这种工作方式实际上是一个同步移位寄存器,其波特率固定,为 fosc/12。方式0的 数据由芯片 RXD/P3.0进行发送和接受,移位同步脉冲由TXD/P3.1端口输出。发送/接收是8位数据,,低位在先,高位在后,,顺序接

9、收/发送。帧格式如下:-D0 D1 D2 D3 D4 D5 D6 D7 -在方式0中,SCON 寄存器中的SM2,RB8,TB8都不起作用,设置为0。,发送过程:,启 动 执行任何一条写SBUF指令就开始发送 (MOV SBUF,A);发 送 在移位脉冲的作用下,RXD端输出数据;结 束 一帧数据发送完后,TI=1,申请中断。,接收过程:,启 动 用软件使REN=1和RI=0,就会启动接收过程;接 收 采样RXD端口,将其数据移入输入移位寄存器;结 束 一帧数据接收完后,RI=1,申请中断。,2.串行通信工作方式1,当SM1 SM0=0 1时,串行口选择方式1。数据传送的波特率取决于定时器1的

10、溢出率,且可改变。方式1的 数据由芯片 TXD/P3.1进行发送数据,由RXD/P3.0端口接收数据。发送/接收一帧信息是10位数据,1位起始位为(0),8位数据位,低位在先,1位停止位(1)顺序接收/发送。帧格式如下:起始 D0 D1 D2 D3 D4 D5 D6 D7 停止,3.串行通信工作方式2和3,当SM1 SM0=1 0时,串行口选择方式2;当SM1 SM0=1 1时,串行口选择方式3。由芯片 TXD/P3.1进行发送数据,由RXD/P3.0端口接收数据,以全双工方式进行发送/接收。发送/接收一帧信息是11位数据,1位起始位为(0),9位数据位,低位在先,1位停止位(1)顺序接收/发

11、送。帧格式如下:起始 D0 D1 D2 D3 D4 D5 D6 D7 D8 停止,8.3 波特率的设置,串行口波特率的设置随工作方式选择的不同而异。它与振荡频率fosc、电源控制寄存器PCON、定时器1设置有关。,方式0,波特率固定不变,仅与振荡频率有关,其大小为fosc/12。,方式2,有两种:,SMOD=1,时,SMOD=0时,方式1和3,通过,对定时器1 的设置,可选择不同的波特率。,SMOD,的设置可用下面的指令完成。,MOV PCON,#00H MOV PCON#80H,2.定时器1溢出率的计算,溢出率,定义为每秒的溢出次数,溢出率与定时器的工作方式有关。串行通信一般都使定时器1工作

12、在方式2。定时器1的方式2为8位自动重装定时器。每经过一个机器周期,TL1加1,当TL1增至FFH时,再加1便产生溢出。溢出后,自动将TH1的计数初值N送入TL1中,使TL1从初值开始计数。这样,溢出率不仅与fosc有关,还与初值N有关,N值越大,溢出率就越高。极限情况是:若N=FFH,那么每隔一个机器周期计数器就溢出一次。,溢出一次所需要的时间为,定时器1 每秒的溢出系数,实际上往往先给出波特率,而后定出常数初值N,例如:若时钟频率为6MHz,当SMOD=1,波特率为2400时,初值为,常用的波特率值,波特率,Fosc/MHz,SMOD,定时器1,C/T,方式,重装值,19.2K,11.05

13、9,0,0,2,FDH,9.6K,11.059,0,0,2,FDH,4.8K,11.059,0,0,2,FAH,2.4K,11.059,0,0,2,F4H,1.2K,11.059,0,0,2,E8H,137.5,11.986,0,0,2,1DH,110,6,0,0,2,72H,110,12,0,0,1,FEEBH,不同振荡频率时的波特率,晶振频率,7.3728,8,11.0592,12.000,14.751,16.00,TH1,E0,600,651,900,976,1200,1302,F0,1200,1302,1800,1953,2400,2604,F8,2400,2604,3600,3906

14、4800,5208,F9,2743,2976,8229,4464,5486,5952,FA,3200,3472,9600,5208,6400,6944,FF,19200,20833,57600,62500,41666,波特率及误差,波特率,晶振频率,SMOD,TH1重装值,实际波特率,误差,9600,12.000,1,-7(F9H),8923,7%,2400,12.000,0,-13(F3H),2404,0.16%,1200,12.000,0,-26(E6H),1202,0.16%,19200,11.059,1,-3(FDH),19200,0,9600,11.059,0,-3(FDH),96

15、00,0,2400,11.059,0,-12(F4H),2400,0,1200,11.059,0,-24(E8H),1200,0,举例,:试编一个串口自发自收通信的程序,检查单片机是否完好。晶振频率为12MHz,波特率为600,取SMOD=0。(P1.0接指示灯、RXD与TXD接在一起),解:,T1初值 N=204=CCH START:MOV TMOD,#20H ;T1工作在方式2 MOV TH1,#0CCH ;设置T1初值 MOV TL1,#0CCH SETB TR1 ;启动T1 MOV SCON,#50H ;串行口工作方式1,允许接收 ABC:CLR TI ;清0 MOV P1,#0FEH

16、 ;P1.0为低电平,灯不亮 ACALL DAY ;延时 MOV A,#0FFH ;MOV SBUF,A ;发送数据FFH,接前页:,JNB RI,$;RI,1 等待,CLR RI ;清0 MOV A,SUBF ;接收数据FFH MOV P1,A ;P1口高电平,灯亮 ACALL DAY ;延时 SJMP ABC ;跳转ABC DAY:MOV R6,#0FFH ;延时子程序 DAL:MOV R7,#0FFH DJNZ R7,$DJNZ R6,DAL RET若单片机串口没问题,可观察到P1.0发光二极管闪亮。,由于TXD、RXD运行在工作方式0,TXD发出移位脉冲,RXD发出数据,P1.0用于显

17、示器的输入控制,通过74HC164接8个数码管。,ORG 0100H,SETB P1.0 ;允许移位寄存器工作,MOV SCON,#00H ;选串行接口方式0,MOV R7,#06H ;显示的数据送R7,MOV R0,#35H ;R0指向缓冲区末地址,MOV DPTR,#TAB ;DPTR指向字符表首地址,LOOP:MOV A,R0 ;取待显示数据,MOVC A,A+DPTR ;查字形表 MOV SUBF,A ;送出显示值,JNB TI,$;一帧输出完?,CLR TI ;已完,清中断标志,DEC R0 ;修改显示缓冲区地址,DJNZ R7,LOOP ;数据全部发完?没,继续,CLR P1.0

18、发完,关发送,显示不动,SJMP$;,ORG 0100H SETB P1.0 ;允许移位寄存器工作 MOV SCON,#00H ;选串行口方式0 MOV R7,#06H ;显示数据个数送R7 MOV R0,#35H ;R0指向缓冲区末地址 MOV DPTR,#TBA ;DPTR 指向字形表首址 LOOP:MOV A,R0 ;取待显示数据 MOVC A,A+DPTR ;查字形表 MOV SUBF,A ;送出显示 JNB TI,$;一帧输出完 CLR TI ;已完,清中断 DEC R0 ;修改显示缓冲地址 DJNZ R7,LOOP ;数据全部发送完?未完,继续 CLR P1.0 ;发送完,关发送

19、脉冲,数 ;码显示在数码管上 SJMP$TAB:DB 3FH,06H,5BH,4FH,66H,6DH ;共阳极7段码LED显示字形编码表 DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,00H,40H END,举例,:设计A(发)、B(接)单片机点对点通信程序。数据块首地址为50H,数据块长度为32字节。设晶振频率为6MHz,波特率为1200。,解:,通信协议如下:数据块传送之前,现有A机向B机发一个“请求接受”的信号,(用数据AAH表示),当B机接收到“AAH”后,再向A机反馈一个“同意接收”的回答信号(BBH);当A机收到 B机的“BBH”后,才开始正式

20、传送数据,若有错,则在各自的LED上显示EEH,并停止程序运行。数据传送之中,采用串口方式1,另配“部分累加和”的校验方式来核对所传数据块是否正确。方法是:A、B机双方每发送或接收一字节数据后,都将该数据与前面的数据进行累加(但只保留和的低8位),待数据传送完毕后,A机再传送“部分累加和”(仅一字节数据)给B机,由B机进行对比,若相等,正确;向A机反馈“相等”信息(00H);若不等,反馈“不相等”信息(FFH)。A机收到反馈信号00H则结束;若收到是 FFH则重传全部数据。R0-数据块地址指针;R1-数据块长度寄存器;R2-部分累加和寄存器。,;=显示A中数据子程序=将 A中的十六进制数据拆分

21、后送P1和P2 连接的两个七段显示器显示。LED1:PUSH ACC ;保护现场 PUSH ACC ;再存,拆分用 MOV DPTR,#SEGPT ;数据块地址 ANL A,#0F0H ;将A拆分,以便显示 SWAP A ;半字节交换 MOVC A,A+DPTR ;取高字节显示数据 MOV P1,A ;将A 中的高4位送显示 POP ACC ANL A,#0FH MOVC A,A+DPTR MOV P2,A ;将A中的低4位送显示 POP ACC ;恢复现场 RET SEGPT:DB 40H,79H,24H,30H,19H,12H,2,78H,0,18H,8,3,46H,21H,DB 6,0E

22、H,;=A机发送主程序如下=MOV SCON,#50H ;,串行口工作方式1,允许接收,MOV PCON,#00H ;,SMOD=0,MOV TMOD,#20H ;,定时器1,方式2,MOV TH1,#0F3H ;,波特率1200,6MHz初值F3H,MOV TL1,#0F3H SETB TR1 ;,启动T1,LOOP1:MOV A,#0AAH ;,联络信号AA送A,MOV SUBF,A ;,发送联络信号AA,ACALL LED1 ;,调显示子程序,JNB TI,$;,等待发送完,CLR TI ;,完了,清TI,JNB RI,LOOP1 ;,等待B机应答,CLR RI ;,B机应答后,清RI,

23、MOV A,SUBF ;,接收B机应答信号,CJNE A,#0BBH,ERROR ;,应答正确否?不正确转ERROR,ACALL LED1 ;,应答正确,显示,发送数据,MOV R0,#50H ;,发送数据区的首地址,MOV R1,#20H ;,数据字节长度,MOV R2,#00H ;,累加和寄存器清0,LOOP2:MOV A,R0 ;,取一字节数据,LOOP2:MOV A,R0 ACALL SENT ;,发送一字节数据,INC R0 ;,修改数据区的指针,DJNZ R1,LOOP2 ;,数据块未发完,继续发,MOV SBUF,R2 ;,完了,送校验和,JNB TI,$;,等待发送完,CLR

24、TI ;,发完,清TI,JNB RI,$;,等待B机回传校验信号,CLR RI ;,B机回传,清RI,MOV A,SUBF ;,读入回传数据,JZ LOOP3 ;,B机校验正确,转LOOP3,显示结束,MOV A,#0FFH ;,校验出错,显示FF结束,SJMP LOOP3 ERROR:MOV A,#OEEH -LOOP3:ACALL LED1 SJMP$SEDT:-RET LED1:-RET,;=B机接收主程序如下=START:MOV SCON,#50H ;,串行口工作方式1,允许接收,MOV PCON,#00H ;,SMOD=0,MOV TMOD,#20H ;,定时器1工作方式2,MOV

25、TH1,#0F3H ;,波特率1200,6MHz,初值,MOV TL1,#0F3H SETB TR1 ;,启动T1,JNB RI,$;,等待接收A机联络信号,MOV A,SBUF ;,读入联络信号,CJNE A,#0AAH,ERROR1;,是AA吗?不是,转,MOV A,#0BBH ;,是AA,应答信号BB送A,MOV SUBF,A ;,发送应答信号BB,JNB TI,$;,等待发送完,CLR TI ;,发送完,清TI,ACALL LED1 ;,显示应答信号BB,CLR RI ;,此动作一定要滞后(清RI)!,MOV R0,#50H ;,设定接收数据区的首地址,MOV R1,#20H ;,数据

26、字节长度,MOV R2,#00H ;,累加和寄存器清0,LOOP4:ACALL RE ;,接收一字节数据,LOOP4:ACALL RE ;接收一字节数据 INC R0 ;修改数据指针 DJNZ R1,LOOP4 ;未接收完,转LOOP4 JNB RI,$;接收完,等待发校验和 CLR RI ;收到,清RI MOV A,SUBF ;读入接收到的校验和 CJNE A,R2,ERROR2 ;相等吗?不等转ERROR2 MOV A,#00H ;相等,00送A SJMP LOOP5 ;转LOOP5 ERROR1:MOV A,#0EEH ;联络出错,EE送A CLR RI ;清RI ACALL LED1

27、显示EE,结束 SJMP$ERROR2:MOV A,#0FFH ;校验出错,FF送A LOOP5:MOV SUBF,A ;发送、显示校验出错标志FF,结束 ACALL LED1 JNB TI,$CLR TI SJMP$RE:-RET LED1:-RET,第八章 89C51与键盘、显示器、打印机的接口设计,键盘接口应解决的问题有:,键盘的输入特点、按键的确认、消除按键的抖动。,键盘接口的工作原理,独立式键盘接口,行列式键盘接口,键盘/显示器专用芯片(HD7279),键盘的工作方式,编程查询扫描方式,定时扫描方式,中断扫描方式,键按下 松开键,前沿抖动 键盘稳定 后沿抖动,双稳态去抖电路,+5V

28、1 Q,a,2,b,&,&,1.2键盘的编码,用键盘连接的I/O线的二进制组合表示键码。例如:4行、4列-16个键 88H 84H 82H 81H 48H 44H 42H 41H 28H 24H 22H 21H 18H 14H 12H 11H特点:简单直观 离散性大,不便安排散转程序的入口地址,顺序排列编码 首先确定按键的行号m,再确定按键的列号n,则 键码=行号m,4+列号,n,F E D C,D7,B A 9 8,D6,7 6 5 4,D5,3 2 1 0,D4,D3 D2 D1 D0,I/O,接口,AT89C51,查询方式,基本思路:,将所有列线置成低电平,P1.4P1.7;,把行线电

29、平状态读入累加器A中,若有键按下,总会有一根行线的电,平被拉到低电平;,确认有键按下后,读入列代码,通过带进位的左移确认列号。,先确认行好,再确认列号,键码=行号,4+列号,编写子程序如下:,ORG 0100H KEY:MOV P1,#0F0H ;,行,线置低电平,,列,线置输入,KEY0:MOV A,P1 ;,读,列,线数据,CPL A ;,数据去反,“1”有效,ANL A,#0F0H ;,屏蔽,行,线,保留,列,线数据,MOV R1,A ;,存,列,线数据到 R1(高4位),JZ GRET ;,A判零,全0,无健按,返回,KEY1:MOV P1,#0FH ;,行,线置输入端,,列,线置低电

30、平,MOV A,P1 ;,读,行,线数据,CPL A ;,数据取反,“1”有效,ANL A,#0FH ;,屏蔽列线,保留,行,线数据,MOV R2,A ;,存行线数据到 R2(低4位),JZ GRET ;,A判零,全0,无健按,返回,JBC F0,WAIT ;,已有抖动标志,转WAIT,SETB F0 ;,无抖动标志,置消抖标志,LCALL DELAY10 ;调10ms延时子程序 SJMP KEY ;重读,行,线、,列,线数据 MOV P1,#0FH,RI-接收中断标志位。,LOOP2:MOV A,R0 ACALL SENT ;,发送应答信号BB JNB TI,$;,GF1-用户通用标志1位;

31、依次右移入C中 JC KEY6 ;,MOV SBUF,A ;,=B机接收主程序如下=START:MOV SCON,#50H ;,修改数据指针 DJNZ R1,LOOP4 ;,SMOD=0时,0 ;,相等吗?不等转ERROR2 MOV A,#00H ;,SMOD=0 MOV TMOD,#20H ;,顺序排列编码 首先确定按键的行号m,再确定按键的列号n,则 键码=行号m4+列号n F E D C D7 B A 9 8 D6 7 6 5 4 D5 3 2 1 0 D4 D3 D2 D1 D0,按键编号4(LCAAL+RET共4个字节)MOV DPTR,#TABC ;,WAIT:MOV A,P1

32、等待按键释放,CPL A ANL A,#0FH JNZ WAIT ;,按键未释放,继续等,KEY2:MOV A,R1 ;,取列线数据(高4位),MOV R1,#03H ;,取列线编号初值,MOV R3,#03H ;,置循环次数,CLR C ;,清零,KEY3:RLC A ;,依次左移到C中,JC KEY4 ;,C=1,该列有键按下,(列的编号存R1),DEC R1 ;,C=0,无按键按下,修正列编号,DJNZ R3,KEY3 ;,判循环结束?,KEY4:MOV A,R2 ;,取行线数据,(低4位),MOV R2,#00H ;,置行线编号初值,MOV R3,#03H ;,置循环次数,CLR CKEY5:RRC A ;,依次右移入C中,JC KEY6 ;,C=1,该行有键按下,(行线的编号存R2),INC R2 ;,C=0,无按键按下,修正行线的编号,DJNZ R3,KEY5 ;,判循环结束?,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服