片机应用系统的设计方法及实例.ppt

上传人:xin****828 文档编号:6307235 上传时间:2020-02-22 格式:PPT 页数:33 大小:248.56KB
返回 下载 相关 举报
片机应用系统的设计方法及实例.ppt_第1页
第1页 / 共33页
片机应用系统的设计方法及实例.ppt_第2页
第2页 / 共33页
片机应用系统的设计方法及实例.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
8 1显示器 键盘与单片机的连接 一 LED数码管与单片机的连接 图8 1共阴极和共阳极数码管 第八章单片机应用系统的设计方法及实例 1 静态显示 图8 2静态显示原理 DISP MOVR0 50H R0指向第一个显示单元MOVR2 4 循环计数器赋初值MOVR3 0 显示位指针赋初值LOOP MOVA R0ANLA 0FH 取第i个显示单元的低4位SWAPAORLA R3 第i个显示单元的低4位送R3的高4位MOVP1 A 第i个显示单元的低4位送R3指出的数码管去显示MOVA R0ANLA 0F0H 取第i个显示单元的高4位INCR3 指向下一个数码管ORLA R3 第i个显示单元的高4位送R3指出的数码管去显示MOVP1 A 将第i个显示单元的高4位送到相应的数码管去显示INCR0 指向下一个显示单元INCR3 指向下一个LED数码管DJNER2 LOOP 未显示完4单元的8个BCD码 返回继续显示RET 图8 3采用译码器的静态显示接口电路 2 串行显示接口 图8 5串行显示接口 DISP SETBP1 0 选通显示器MOVSCON 00H 置串口方式0MOVR0 50H R0指向第一个显示单元MOVR2 4 循环计数器置初值MOVDPTR TAB DPTR指向第一个显示单元LOOP MOVA R0ANLA 0FH 取第i个显示单元的低4位MOVCA A DPTR 查译码表MOCSBUF A 第i个显示单元的低4位的显示码送串口缓冲器WAIT1 JNBTI 未发送完 等待CLRTI 清发送中断标志MOVA R0ANLA 0F0H 取第i个显示单元的高4位SWAPAMOVCA A DPTR 查译码表MOCSBUF A 第i个显示单元的高4位的显示码送串口缓冲器WAIT2 JNBTI 未发送完 等待CLRTI 清发送中断标志INCR0DJNZR2 LOOP 未发送完4个单元的8个字符 返回继续RETTAB DB03H 9FH 25H 0DH 99H DB49H 41H 1FH 01H 19H 3 动态扫描显示接口 图8 6动态扫描显示接口电路 主程序 STAR LOOP ACALLS00EF 将显示缓冲区内容送去显示 SJMPLOOP 送显示子程序 DISP CLRAORLA P3 取P3口内容ANLA 0F0HMOVR3 A 保护P3口高4位MOVA 43H 取位选信号ANLA 0FH 位选信号送A的低4位ORLA R3 P3口高4位送A的高4位MOVR0 34H 取段选指针MOVP1 0FFH 关显MOVP3 A 输出位选信号MOVA R0 显示内容送AMOVDPTR TAB 译码表首址送DPTRMOVCA A DPTR 查表译显示码MOVP1 A 输出段选信号1MOVA 43H RLA MOV43H A 位选指针指向下一位INC34H 段选指针指向下一位JBACC 0 DONE 不到最后一位 转MOV34H 50H 段选指针复位MOV43H 0EEH 位选指针复位DONE RET 显示译码表 TAB DB0C0H 显示字符0 相对地址00HDB0F9H 1DB0A4H 2DB0B0H 3DB99H 4DB92H 5DB82H 6DB0F8H 7DB80H 8DB90H 9 图8 7按键与单片机直接连接 图9 8带锁存器的按键与单片机的接口电路 图8 9按键接口程序流程图 程序如下 KSCAN MOVDPTR 7FFFH 指向244MOVXA DPTR 读244ANLA 0FH 取4个按键的值CJNEA 0FH LOOS 无键按下 转去判断是否键放开JB11H L0475 键有效标志等于1 等待键放开 返回JC10H SETSYN 第一次发现键按下 转去置标志 存键值CJNEA R4 CLRSYN 两次读得的按键值不同 键无效 清第一次发现键按下标志SETB11H 置键有效标志RETLOOS JNB11H RETUR 键有效标志等于0 未按过键 返回SJMPKEYDO 键放开 转键处理SETSYN SETB10H 置第一次发现键按下标志MOVR4 A 保存键值SJMPRETUR 返回CLRK CLR11H 清键有效标志CLRSYN CLR10H 清第一次发现键按下标志MOVR4 00H 清键值暂存单元RETKEYDO RRCAJCJUS2 没按S1 再判断S2ALMPDOS1 转键S1处理程序JUS2 JCJUS3 没按S2 再判断S3ALMPDOS2 转键S2处理程序JUS3 JCJUS4 没按S3 再判断S4ALMPDOS3 转键S3处理程序JUS4 JCRETUR 没按S4 误判断 退出ALMPDOS4 转键S4处理程序DOS1 键S1处理程序 SJMPRETURDOS2 键S2处理程序 SJMPRETURDOS3 键S3处理程序 SJMPRETURDOS4 键S4处理程序 SJMPRETUR 三 键盘与单片机的接口 图8 10键盘与单片机的接口电路 图8 11键盘接口程序流程图 二 A D转换器与单片机的接口 图8 12ADC0801 ADC0805 图8 13ADC0801 0805与单片机的接口 8 3D A转换器与单片机的连接 一 D A转换器的基本原理 图8 14T型网络D A转换器 二 D A转换器与单片机的接口 1 内部结构 图8 15DAC0832的引脚排列图8 16DAC0832结构图 3 接口电路 1 单缓冲器方式 图8 17DAC0832与单片机的接口 2 双缓冲器方式 图8 18多路DAC0832同步转换的接口电路 程序如下 MOVDPTR 0DFFFH 指向0832 1 MOVA data1MOVX DPTR A data1送0832 1 锁存器MOVX DPTR 0BFFFH 指向0832 2 MOVA data2MOVX DPTR A data2送0832 2 锁存器MOVDPTR 7FFFH 指向0832 1 和0832 2 的数据传送端MOVX DPTR A data1和data2同时送D A转换器进行转换 8 4MCS 51单片机应用系统设计举例 一 系统构成及控制原理 图8 19糖果包装机的结构图 图8 20走纸轮的顶视图 图9 21相位误差与速度误差 图8 22控制流程图 二 硬件电路 1 主程序 图9 23硬件电路 图8 24主程序流程图 初始化 ORG0000HAJMPADR00ORG0003HCLREX0 关外部中断0 以防止脉冲抖动造成中断重复响应AJMPINT0ORG000BHAJMPT0ORG0013HCLREX1 关外部中断1AJMPINT1ORG001BHAJMPT1ORG0030HADR00 MOVR0 20H 20H 70H单元清0MOVR1 50HCLRAADR10 MOV R0 AINCR0DJNZR1 ADR10ACALLSUB1 清显示器MOVSP 5FH 堆栈从60H开始MOVSCON 00H 串行口置为方式0 MOVA 43H 相位滞后误差送AACALLSUB2 将A中绝对误差转为相对误差放在R7中MOVA R7CLRCSUBBA 2JNCADR20 相位滞后小于2 返回JBP1 0 ADR75 电磁离合齿轮有电 转MOVR5 43H 保存本次测量的相位误差SETBP1 0 电磁离合齿轮通电 提速2 AJMPADR20 返回ADR75 MOVA R5 取回上次测量的相位误差CLRCSUBBA 43H 减本次测量的相位误差进行比较JNCADR20 本次测量的相位误差小 返回SETBP1 1 否则 胀紧电机正转 提速MOVR2 06H 设置最小提速量ACALLSUB3 延时0 6秒CLRP1 1 停止胀紧电机正转AJMPADR20 相位超前误差调整 ADR80 MOVA 42H 相位超前误差送AACALLSUB2 将A中绝对误差转为相对误差放在R7中MOVA R7CLRCSUBBA 2JCADR20 相位超前误差小于2 返回JNBP1 0 ADR85 电磁离合齿轮未通电 转取比较两次测量的误差MOVR6 42H 保存本次测量的误差CLRP1 0 电磁离合齿轮断电 减速2 AJMPADR20 返回ADR85 MOVA R6 取回上次测量的误差CLRCSUBBA 42H 减本次测量的误差JNCADR20 本次测量的误差小 返回SETBP1 2 否则 胀紧电机反转 减速MOVR2 06H 设置最小减速量ACALLSUB3 延时0 6秒CLRP1 2 停止胀紧电机反转AJMPADR20 2 子程序 1 绝对误差转换为相对误差子程序 SUB2 MOVB 64HMULABMOVR7 00HADR90 CLRCSUBBA 41 误差的百分数减切纸周期JCADR0A0 不够减 转INCR7 够减 商加1AJMPADR90 返回再减ADR0A0 MOVR6 BCJNER6 00H ADR0B0AJMPADR0C0 无位可借 除法结束ADR0B0 DECB 借位INCR7 商加1AJMPADR90 返回再减ADR0C0 RET 2 R2 0 1秒延时子程序R2 0 1秒延时子程序 用于控制P1 1和P1 2输出的脉冲宽度 程序如下 SUB3 MOVR3 64HADR0D0 MOVR4 0F9HADR0E0 NOPNOPDJNZR4 ADR0E0 DJNZR3 ADR0D0DJNZR2 SUB3RET 3 中断服务程序 T0 T1 INT0和INT1中断服务程序的流程图如图9 25 图9 28 8 图25T0中断服务程序图8 26T1中断服务程序 图8 27INT0中断服务程序图8 28INT1中断服务程序 4 INT1中断服务程序 INT1 PUSHPSWMOV41H 37H 取走纸周期MOV37H 00H 为下一次记数做准备MOV43H 36H 取走纸滞后切纸的时间MOVR5 00H 清监视计数器SETB11H 置检测到走纸周期标志SETBRS0 选中1区工作寄存器MOVR1 30H R1个位ADR0F0 INC R1 显示缓冲区某位加1CJNE R1 0AH ADR180 加1后不到10 退出MOV R1 00H0 加1后等于10 将该位清0INCR1 指向显示缓冲区下一位CJNER1 36H ADR0F0 不到显示缓冲区最高位 返回将下一位加1MOVR0 2FH 显示缓冲区位指针R0赋初值MOVR2 06H 显示位数送R2ADR100 INCR0 指向显示缓冲区下一位MOVDPTR ADR120 基址指针送指向显示译码表首址MOVA R0 某位显示内容送AMOVCA A DPTR 显示内容译成显示码后AMOVSBUF A 显示码通过串口送去显示ADR110 JNBTI 等待1个字节传送完毕CLRTI 清传送完标志 为下一次传送做准备DJNZR2 ADR100 6位没有全部显示完 返回继续显示CLRRS0POPPSWSETBEX1 开外部中断1RETIADR120 DB03H 显示0DB9FH 显示1DB25HDB0DHDB99HDB49HDB41HDB1FHDB01HDB09H 显示9
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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