欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    如何用单片机的输入输出.pptx

    • 资源ID:87531213       资源大小:200.49KB        全文页数:11页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    如何用单片机的输入输出.pptx

    如何用单片机的输入输出如何用单片机的输入输出基本条件:为要实现的功呢功能搭建辅助电路要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出低电平。如果要实现二极管的闪速,我们调整P1.0的低电平输出和延时间隔第1页/共11页延时的基本原理:累加周期指令5151单片机的一个机器周期包括单片机的一个机器周期包括1212个时钟振荡周期,也就是说如果个时钟振荡周期,也就是说如果5151单片机采用单片机采用12MHz12MHz晶振,那么执行一个机器周期就只需要晶振,那么执行一个机器周期就只需要1s1s;如果采用的是;如果采用的是6MHz6MHz的晶振,那么执行一个机器周期就需要的晶振,那么执行一个机器周期就需要2s2s。在在5151单片机里有单周期指令(执行这条指令只需一个机器周期),单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。除了乘、除两条指令是四(执行这条指令需要四个机器周期)。除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。周期指令,其余均为单周期或双周期指令。第2页/共11页常用指令的时钟周期数据传送指令数据传送指令 MOVMOV:数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。如:数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。如:MOVR7MOVR7,#80H#80H;将数据;将数据80H80H送到寄存器送到寄存器R7R7,这时寄存器,这时寄存器R7R7里面存放着里面存放着80H80H,执行该指令,执行该指令则需要则需要一个机器周期一个机器周期。空操作指令空操作指令 NOPNOP:空操作指令功能只是让单片机执行没有意义的操作,消耗空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期一个机器周期循环转移指令循环转移指令 DJNZDJNZ:循环转移指令功能是将第一个数进行减循环转移指令功能是将第一个数进行减11并判断是否为并判断是否为0 0,不为,不为00则转移则转移到指定地点;为到指定地点;为00则往下执行。如:则往下执行。如:DJNZR7DJNZR7,KKKK;将寄存器;将寄存器R7R7的内容减的内容减11并判断寄存器并判断寄存器R7R7里的内容减完里的内容减完11后是否为后是否为0 0,如果不为,如果不为00则转移到地址标号为则转移到地址标号为KKKK的地方;如果为的地方;如果为00则执行则执行下一条指令。这条指令需要下一条指令。这条指令需要二个机器周期二个机器周期。利用以上三条指令的组合就可以比较精确地编写出所需要的延时程序。利用以上三条指令的组合就可以比较精确地编写出所需要的延时程序。第3页/共11页延时程序示例解读50ms50ms延时子程序:延时子程序:DELDEL:MOVR7MOVR7,#200;#200;(第一句:第一句:MOVR7MOVR7,#200#200在整个子程序中只在整个子程序中只被执行一次,且为单周期指令,所以耗时被执行一次,且为单周期指令,所以耗时1s1s)DEL1DEL1:MOVR6MOVR6,#125#125;(MOVR6(MOVR6,#125#125从从看到看到只要只要R7-1R7-1不为不为0 0,就会返回到,就会返回到 这句,共执行了这句,共执行了R7R7次,共耗时次,共耗时200s200sDEL2DEL2:DJNZR6DJNZR6,DEL2DEL2;(只要只要R6-1R6-1不为不为0,0,就反复执行此句(内循环就反复执行此句(内循环R6R6次),又次),又 受外循环受外循环R7R7控制,所以共执行控制,所以共执行R6*R7R6*R7次,次,因是双周期指令,所以耗时因是双周期指令,所以耗时2*R6*R7s)2*R6*R7s)DJNZR7DJNZR7,DEL1;DEL1;RET;RET;精确延时时间为:精确延时时间为:1+1+(1*2001*200)+(2*125*2002*125*200)+(2*2002*200)+2+2=(2*125+32*125+3)*200+3200+3=50603s=50603s50ms50ms第4页/共11页长延时常用策略注意,要实现较长时间的延时,一般采用多重循环,有时会在程式序里加入注意,要实现较长时间的延时,一般采用多重循环,有时会在程式序里加入NOPNOP指令,以指令,以1 1秒延时为例秒延时为例DELDEL:MOVR7,#101MOVR7,#101指令周期指令周期1 1DEL1DEL1:MOVR6MOVR6,#0FFH1#0FFH1指令周期指令周期1010DEL2DEL2:MOVR5MOVR5,#80H1#80H1指令周期指令周期255*10=2550255*10=2550KONGKONG:NOP1NOP1指令周期指令周期128*255*10=326400128*255*10=326400DJNZR5DJNZR5,$2$2指令周期指令周期2*128*255*10=6528002*128*255*10=652800DJNZR6DJNZR6,DEL22DEL22指令周期指令周期2*255*10=51102*255*10=5110DJNZR7DJNZR7,DEL12DEL12指令周期指令周期2*10=202*10=20RET2RET2延时时间延时时间=1+10+2550+326400+652800+5110+20+2=986893s=1+10+2550+326400+652800+5110+20+2=986893s约为约为1s1s整理得:延时时间整理得:延时时间=(3*3*第一层循环第一层循环+3+3)*第二层循环第二层循环+3*+3*第三层循环第三层循环+3+3第5页/共11页延时200ms闪烁灯程序ORG0ORG0START:CLRP1.0START:CLRP1.0LCALLDELAYLCALLDELAYSETBP1.0SETBP1.0LCALLDELAYLCALLDELAYLJMPSTARTLJMPSTARTDELAY:MOVR5,#20DELAY:MOVR5,#20延时子程延时子程序,延时序,延时0.20.2秒秒D1:MOVR6,#20D1:MOVR6,#20D2:MOVR7,#248D2:MOVR7,#248DJNZR7,$DJNZR7,$DJNZR6,D2DJNZR6,D2DJNZR5,D1DJNZR5,D1RETRETENDENDC语言源程序#includesbitL1=P10;voiddelay02s(void)/延时0.2秒子程序unsignedchari,j,k;for(i=20;i0;i-)for(j=20;j0;j-)for(k=248;k0;k-);voidmain(void)while(1)L1=0;delay02s();L1=1;delay02s();第6页/共11页用单片机控制的LED流水灯设计从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间第7页/共11页软件编程:位控法ORG0000HORG0000H;单片机上电后从;单片机上电后从0000H0000H地址执行地址执行AJMPSTARTAJMPSTART;跳转到主程序存放地址处;跳转到主程序存放地址处ORG0030HORG0030H;设置主程序开始地址;设置主程序开始地址STARTSTART:MOVSPMOVSP,#60H#60H;设置堆栈起始地址为;设置堆栈起始地址为60H60HCLRP1.0CLRP1.0;P1.0P1.0输出低电平,使输出低电平,使LED1LED1点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.0P1.0;P1.0P1.0输出高电平,使输出高电平,使LED1LED1熄灭熄灭CLRCLR P1.1P1.1;P1.1P1.1输出低电平,使输出低电平,使LED2LED2点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.1P1.1;P1.1P1.1输出高电平,使输出高电平,使LED2LED2熄灭熄灭CLRCLR P1.2P1.2;P1.2P1.2输出低电平,使输出低电平,使LED3LED3点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.2 P1.2 ;P1.2P1.2输出高电平,使输出高电平,使LED3LED3熄灭熄灭CLRCLR P1.3P1.3;P1.3P1.3输出低电平,使输出低电平,使LED4LED4点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.3P1.3;P1.3P1.3输出高电平,使输出高电平,使LED4LED4熄灭熄灭CLRCLR P1.4P1.4;P1.4P1.4输出低电平,使输出低电平,使LED5LED5点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序第8页/共11页SETBSETBP1.4P1.4;P1.4P1.4输出高电平,使输出高电平,使LED5LED5熄灭熄灭CLRCLR P1.5P1.5;P1.5P1.5输出低电平,使输出低电平,使LED6LED6点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.5P1.5;P1.5P1.5输出高电平,使输出高电平,使LED6LED6熄灭熄灭CLRCLR P1.6P1.6;P1.6P1.6输出低电平,使输出低电平,使LED7LED7点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.6P1.6;P1.6P1.6输出高电平,使输出高电平,使LED7LED7熄灭熄灭CLRCLR P1.7P1.7;P1.7P1.7输出低电平,使输出低电平,使LED8LED8点亮点亮ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序SETBSETBP1.7P1.7;P1.7P1.7输出高电平,使输出高电平,使LED8LED8熄灭熄灭ACALLACALLDELAYDELAY;调用延时子程序;调用延时子程序AJMPAJMP STARTSTART;8 8个个LEDLED流了一遍后返回到标号流了一遍后返回到标号STARTSTART处再循环处再循环DELAYDELAY:;延时子程序;延时子程序MOVR0MOVR0,#255#255;延时一段时间;延时一段时间D1D1:MOVR1MOVR1,#255#255DJNZR1DJNZR1,$DJNZR0DJNZR0,D1D1RETRET;子程序返回;子程序返回ENDEND;程序结束;程序结束第9页/共11页查表法ORG0000HORG0000H;单片机上电后从;单片机上电后从0000H0000H地址执行地址执行AJMPSTARTAJMPSTART;跳转到主程序存放地址处;跳转到主程序存放地址处ORG0030HORG0030H;设置主程序开始地址;设置主程序开始地址STARTSTART:MOVSPMOVSP,#60H#60H;设置堆栈起始地址为;设置堆栈起始地址为60H60HMOVDPTRMOVDPTR,#TAB#TAB;流水花样表首地址送;流水花样表首地址送DPTRDPTRLOOPLOOP:CLRACLRA;累加器清零;累加器清零MOVCAMOVCA,A+DPTRA+DPTR;取数据表中的值;取数据表中的值CJNEACJNEA,#0FFH#0FFH,SHOWSHOW;检查流水结束标志;检查流水结束标志AJMPSTARTAJMPSTART;所有花样流完,则从头开始重复流;所有花样流完,则从头开始重复流SHOWSHOW:MOVP1MOVP1,AA;将数据送到;将数据送到P1P1口口ACALLDELAYACALLDELAY;调用延时子程序;调用延时子程序INCDPTRINCDPTR;将数据表指针指向下一数据;将数据表指针指向下一数据AJMPLOOPAJMPLOOP;继续查表取数据;继续查表取数据DELAYDELAY:;延时子程序;延时子程序MOVR0MOVR0,#255#255;延时一段时间;延时一段时间D1D1:MOVR1MOVR1,#255#255DJNZR1DJNZR1,$DJNZR0DJNZR0,D1D1第10页/共11页

    注意事项

    本文(如何用单片机的输入输出.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开