第8章 单片机IO扩展及应用_第1页
第8章 单片机IO扩展及应用_第2页
第8章 单片机IO扩展及应用_第3页
第8章 单片机IO扩展及应用_第4页
第8章 单片机IO扩展及应用_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“十二五”职业教育国家规划教材单片机原理及接口技术(第2版)可编程通用并行接口8255可编程的多功能接口8155键盘/显示控制寄存器8279ADC0809与DAC0832的接口技术

单片机控制步进电机接口技术单片机控制直流电机的接口技术单片机与字符型LCD显示器的接口技术第

8

单片机I/O扩展及应用

本章内容SingleChipMicrocomputer

8255A的组成与接口信号8.1可编程通用并行接口82558255A的组成与接口信号(1)三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。8255A的组成与接口信号(2)A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。8255A的组成与接口信号(3)数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。(4)读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。8255A的引脚功能(1)面向CPU的引脚信号及功能D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;:片选,输入,用来决定芯片是否被选中。:读信号,输入,控制8255A将数据或状态信息送给CPU。:写信号,输入,控制CPU将数据或控制信息送到8255A。A1,A0:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A的引脚功能(1)面向CPU的引脚信号及功能D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;:片选,输入,用来决定芯片是否被选中。:读信号,输入,控制8255A将数据或状态信息送给CPU。:写信号,输入,控制CPU将数据或控制信息送到8255A。A1,A0:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。返回8255A的引脚功能(2)面向外设的引脚信号及功能PA0~PA7:A组数据信号,用来连接外设;PB0~PB7:B组数据信号,用来连接外设;PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。8255A的工作方式和控制字(1)8255A有三种工作方式,用户可以通过编程来设置。方式0:简单输入/输出——查询方式;A,B,C三个端口均可。方式1:选通输入/输出——中断方式;A,B,两个端口均可。

方式2:双向输入/输出——中断方式;只有A端口才有。工作方式介绍(1)方式0方式0是一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。方式0的应用场合有两种:一种是同步传送;一种是查询传送。工作方式介绍(2)方式1方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。工作方式介绍(3)方式2方式2为双向选通I/O方式,只有A口才有此方式。这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。方式2:就是方式1的输入与输出方式的组合,各应答信号的功能也相同。而C口余下的PC0~PC2正好可以充当B口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。8255A的控制字(1)控制字格式8255A的控制字(2)C口的置位/复位功能实训8:用8255设计交通信号灯管理仿真

1.功能说明模拟一个十字路口东南西北四个方向,每个方向分别设置3盏发光二极管(红,绿,黄),要求如下:东西红灯亮,南北绿灯亮10秒后;东西黄灯闪5次,南北绿灯亮;东西绿灯亮,南北红灯亮10秒后;东西绿灯亮,南北黄灯闪5次。2.硬件设计单片机的P0口与8255的数据口D0-D7连接,同时P0口也作为地址总线通过74HC373与8255的A1,A0连接,利用8255的PA口和PB口连接发光二极管。ORG0000HJMPMAINORG0030HMAIN:MOVSP,#60HMOVA,#80H;8255初始化,A口及B口方式0输出MOVDPTR,#0FEFFH;控制口地址MOVX@DPTR,Abegin:MOVA,#75H;东西红灯亮、南北绿灯亮程序MOVDPTR,#0FEFCH;PA口MOVX@DPTR,AMOVA,#0FDHMOVDPTR,#0FEFDH;PB口MOVX@DPTR,ACALLdelay1;延时30秒MOVR3,#05H;东西黄灯闪5次、南北绿灯亮程序ewy:MOVA,#0F3HMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FCHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2MOVA,#0F7HMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FDHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2DJNZR3,ewyMOVA,#0AEH;东西绿灯亮、南北红灯亮程序MOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,0FBHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLdelay1;延时30秒MOVR3,#5H;南北黄灯闪5次、东西绿灯亮程序nsy:MOVA,#9EHMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0F7HMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2MOVA,#0BEHMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FFHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2DJNZR3,nsyJMPbegindelay1:movr7,#250;30秒延时子程序l1:movr6,#200l2:movr5,#200l3:djnzr5,l3

djnzr6,l2

djnzr7,l1retdelay2:movr7,#8;闪烁延时子程序l4:movr6,#200l5:movr5,#200l6:djnzr5,l6

djnzr6,l5

djnzr7,l4retEND

8.2可编程的多功能接口8155返回8.2.18155的组成及接口信号8155的组成及接口信号

1.内部RAM8155有256字节单元的内部RAM数据存储器,供用户作数据缓冲器等使用。2.定时器8155还有一个14位的定时器,该定时器有一个计数器脉冲输入端TIMERIN与定时器输出端TIMEROUT。定时器输入和定时器输出分别用于输入计数器的脉冲信号、输出矩形波或脉冲波。3.3个通道8155有3个通道A、B、C与外设连接,其中A、B通道有8个引脚与外设连接,C通道口有6个引脚。C口的6个引脚常用于6位数据的输入与输出,或应答方式的通信线。8155的组成及接口信号4.与CPU连接部分(1)地址/数据总线AD0~AD7:分时的传送地址与数据信息。(2)控制总线CBCPU要对8155的RAM、I/O口(A、B、C口)进行读、写、片选等操作,控制线为片选、复位、读、写等信号。RST:复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。AD0~AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线(P0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。:读选通信号,控制对8155的读操作,低电平有效。:写选通信号,控制对8155的写操作,低电平有效。:片选信号线,低电平有效。8155的组成及接口信号IO/:8155的RAM存储器或I/O口选择线。当IO/=0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址(00H~FFH);当IO/=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及,IO/的状态都锁存到8155内部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。PA0~PA7:8位通用I/O口,其输入、输出的流向可由程序控制。PB0~PB7:8位通用I/O口,功能同A口。PC0~PC5:有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。TIMERIN:定时/计数器脉冲输入端。TIMEROUT:定时/计数器输出端。VCC:+5V电源。8155的命令状态字

工作方式控制字

状态控制字8155的定时/计数器8155内部的定时/计数器实际上是一个14位的减法计数器,它对TIMERIN端输入脉冲进行减1计数,当计数结束(即减1计数“回0”)时,由TIMEROUT端输出方波或脉冲。当TIMERIN接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。

8155与MCS-51单片机的连接8.3键盘/显示控制寄存器8279

8279的组成8279的接口信号8279的接口信号D0~D7:数据总线,用于传送单片机和8279之间的数据、命令或状态信息。CLK:外部时钟输入,作于产生内部工作时序。8279内部有一个可编程的5位计数器,对外部时钟进行2~31分频,产生100KHz的内部定时信号。RESET:复位信号,高电平有效。当8279复位后,8279工作于左入、16位LED显示,译码键盘扫描,双键互锁,外部时钟分频为31。/CS:选信号,低电平有效。当/CS有效时,允许对8279进行读、写操作A0:缓冲器地址。A0用于标识单片机和8279交换的信息特征,当A0=1时,写入8279的信息为命令,读出的是状态;当A0=0时,写入和读出的信息均为数据。/RD、/WR:读、写控制信号。IRQ:中断请求(InterruptRequest)。在键盘方式时,当FIFORAM中有数据时,IRQ变为高电平,当读FIFORAM时,IRQ变为低电平,读一次后,若FIFORAM中仍有数据,IRQ重新变为高电平;在传感器方式,当检测到一个传感器变化时,IRQ变为高电平。Vss、Vcc:数字地和电源引脚。8279的接口信号SL0~SL3(Pin32~Pin35):扫描线(ScanLine):扫描线用于对键盘和对LED显示器的位进行扫描。RL0~RL7(Pin38、Pin39、Pin1、Pin2、Pin5~Pin8):反馈输入线(ReturnLine)。RL0~RL7为输入引脚,外接键盘或传感器阵列,内部有上拉电阻。当有键闭合时,8279通过组合RL0~RL7和SL0~SL3的状态可以确定闭合所在的行和列,并把闭合键的键位置送入键盘FIFORAM中,同时设置IRQ为高电平。SHIFT(Pin36)线:SHIFT为输入引脚,内部有上拉电阻,外部常接一个独立的开关按键,类似于计算机键盘上的换档键(SHIFT),8279可以直接连接64个的开关按键,通过SHIFT线,可以将按键数量扩充到128个。SHIFT的状态会被记录在FIFORAM中。CNTL(Pin37)控制线(Control):与SHIFT类似,通过CNTL也可以扩充按键数量。SHIFT和CNTL共有4种组合,通过SHIFT和CNTL可使8279连接的按键数量增加到256个。OUTA3~OUTA0、OUTB3~OUTB0:显示数据段码(字形码)输出线。8279工作时,由OUTA3~OUTA0、OUTB3~OUTB0输出显示数据的段码,OUTA3对应8段LED的dp,OUTB0对应8段LED的a,由SL0~SL3输出显示的位,两者配合实现8位或16位LED的动态显示。图8-148279引脚图/BD(pin23)消隐输出线(BlankDisplay),低电平有效。当显示器切换或使用消隐命令时,输出为低。8279的操作命令1.命令字命令特征位:D7D6D5=000D4,D3位:用来设定显示(Display)方式,定义如下:00:8个字符显示,从左边输入。01:16个字符显示,从左边输入。10:8个字符显示,从右边输入。11:16个字符显示,从右边输入。8279的操作命令2.时钟编程命令命令特征位:D7D6D5=001。D4~D0位(PPPPP)为分频系数,可在2~31中进行选择。内部时钟频率控制着扫描时间和键盘去抖动时间的长短,当内部时钟为100KHz时,则扫描时间为5.1ms,去抖动时间为10.3ms。例如,设外部时钟频率为1MHz,则要产生100KHz的内部定时信号,需要进行10分频,即PPPPP=01010B=10,此时的时钟命令字为:2AH8279的操作命令3.读FIFORAM命令命令特征位:D7D6D5=010。在传感器方式时,在CPU读FIFORAM之前,必须用这条命令设定要读出的传感器RAM地址。由于传感器RAM的容量为8字节,因此,需要用命令字中的3位二进制代码AAA指定地址。命令字中的AI为自动增量(AutomaticIncreacement)特征位。若AI=1,则每次读出传感器RAM后,地址将自动加1,使地址指针指向按顺序的下一个存储单元,这样,下一次读数便从下一个地址读出,而不必重新设置读FIFORAM命令。在键盘工作方式中,由于读出操作严格按照先入、先出(FIFO)的顺序进行,命令中的AI和AAA不起作用。8279的操作命令4.读显示RAM命令。命令的特征位:D7D6D5=011。在CPU读显示RAM时,必须先执行读显示RAM命令。该命令字用来设定将要读出的显示RAM的地址,4位二进制代码AAAA用来寻址16个字节的显示RAM单元,如果自动增量位AI=1,则每次读出后,地址自动加1。8279的操作命令5.写显示RAM命令。命令格式为:命令特征位:D7D6D5=100在CPU写显示RAM时,必须先执行写显示RAM命令,该命令字用来设定第一次要写入的显示RAM的地址,4位二进制代码AAAA用来寻址显示RAM,如果自动增量特征位AI=1,则每次写入后,地址自动加1。8279的操作命令6.显示RAM禁止写入/消隐命令命令特征位:D7D6D5=101IW_A和IW_B为A组和B组显示RAM写入屏蔽位。例如,当IW_A=l时,A组的显示RAM禁止写入,即单片机写入显示器RAM的数据不会影响OUTA3~0的输出,这种情况通常在采用双4位显示时使用,因为两个4位显示器是相互独立的,为了给其中一个4位显示器输入数据,而又不影响另一个4位显示器,因此,必须对另一组的输入实行屏蔽。BL_A和BL_B位用于对两组显示输出消隐(Blank),若BL_x=1,则8279的/BD引脚输为低电平,对应的OUTx3~0被消隐(熄灭),若BL_x=0,则恢复显示。8279的操作命令7.清除命令命令特征位:D7D6D5=110D4D3D2(CD、CD、CD)位用于设定清除显示RAM的方式,意义如下:10x:将显示RAM全部清0110:将显示RAM全部清为20H111:将显示RAM全部清为FFH0xx:CA=0时,不清除;CA=1时,清除方式由D3D2决定D1(CF)位用于清空FIFORAM。当CF=1时,执行清除命令后,FIFORAM被清空,同时,使中断请求输出线IRQ复位。D0(CA)位为总清位,当CA=1时,可同时完成对显示RAM和FIFORAM的清除,对显示RAM的清除方式由D3D2位决定。执行清除命令大约需要160μS的时间,在此期间,FIFORAM的状态寄存器的最高位DU=1,当清除命令执行完成后,DU=0。在DU=1时,不能对显示RAM写数据。8279的操作命令8.结束中断/特定错误方式设置命令命令特征位:D7D6D5=111当键盘工作于N键依次读出方式时,如果单片机给8279写入特定方式设置命令字(E=1),则8279以一种特定的错误方式工作,这种方式的特点是在消抖动期间,如果发现多个键被同时按下,则FIFORAM状态寄存器中的错误特征位S/E被置1,同时IRQ变为高电平。S/E位置1会阻止对FIFORAM的进一步写操作。执行清除命令时,S/E被复位。这个命令使用较少。8279的操作方法8279有两个端口,一个是命令端口一个是数据端口。对8279的操作有四种情况:写命令端口。写入命令端口的信息为命令字,命令字规定了8279的工作方式。读命令端口。从命令端口读出的信息为FIFORAM状态寄存器的内容。写数据端口。写入数据端口的信息为显示字符的段码,8279内部有16个字节的显示RAM,写入的显示段码被存储在显示RAM中。读数据端口。从数据端口读入的是FIFORAM中键盘数据或显示RAM中的数据。写命令端口时,由于各命令字的特征位不同,向同一端口写入的各种命令实际上是被写到了8279内部的不同的命令寄存器中,因此,写命令端口的操作可以直接进行;读命令端口时,由于只有一个状态寄存器,故读命令端口的操作也可以直接进行。而读、写数据端口时,则不同,需要先执行读、写数据端口的命令,然后,才能对数据端口进行读写,如在读显示RAM数据前,要先执行读显示RAM的命令;读FIFORAM前,要先执行读FIFORAM的命令;写显示RAM数据前,要先执行写显示RAM的命令;如果不先执行读、写数据端口的命令,当从8279的数据口进行读数据时,8279便不知是从显示RAM读还是从FIFORAM读。实训9:8279在键盘/显示接口中的应用仿真

1.功能说明单片机利用8279接口控制一个矩阵键盘和6个数码管,要求初始状态6个数码管上从左向右依次显示012345,然后有键按下时在左边第一个数码管上显示相应的数字。2.硬件设计D7-D0直接边至P0口;读引脚/RD接单片机的读信号(/RD);写引脚接单片机的写信号(/WR);CLK引脚接单片机的ALE信号,ALE信号的频率为系统晶体振荡器频率的1/6;A0接地址总线A0。IRQ通过一个反相器接单片机的/INT1引脚。当有键闭合时,IRQ变为高电平,可以通过中断方式读取键值。与键盘的接口电路。16个按键接成矩阵形式,由RL3-RL0组成行线,SL2-SL0通过译码器74LS138的输出Y0-Y3组成列线(或扫描线)。当有键闭合时,读入的RL3-RL0不全为零,根椐Y0-Y3的状态即可确定闭合键所在的位置。各键值的确定方法如下:如前所述,当有键闭合时,8279键值数据存入FIFORAM中,然后送出显示。程序设计ORG0000HSTART:LJMPMAIN ORG0013HLJMPPKEYI ORG0030HMAIN: MOVSP,#60H ;主程序

MOV70H,#00 ;设置显示缓冲区初值

MOV71H,#01 MOV72H,#02 MOV73H,#03 MOV74H,#04 MOV75H,#05 MOV76H,#06 MOV77H,#07 LCALLINI79 ;调8279初始化子程序LOOP: LCALLRDIR ;调8279显示更新子程序

SJMPLOOP;8279初始化子程序INI79: MOVDPTR,#7FFFH;8279命令口地址

MOVA,#0D1H ;清0命令

MOVX@DPTR,AWNDU:MOVXA,@DPTR;等待8279清0结束

JBACC.7,WNDU MOVA,#00H;设置8279为编码扫描方式,两键互锁

MOVX@DPTR,A MOVA,#34H;设置8279扫描频率

MOVX@DPTR,A MOVIE,#84H;允许8279中断

RET;8279显示更新子程序RDIR: MOVDPTR,#7FFFH;8279命令口地址

MOVA,#90H ;写显示RAM命令

MOVX@DPTR,A MOVR0,#70H;显示缓冲器首地址→R0 MOVR7,#8 MOVDPTR,#7EFFHRDLO:MOVA,@R0;取显示数据

ADDA,#5;加偏移量

MOVCA,@A+PC;查表转换为段码数据

MOVX@DPTR,A INCR0 DJNZR7,RDLO RETSEG:DB3fH,06H,5BH,4FH;段码表

DB66H,6DH,7DH,07H DB7FH,6FH,77H,7CH DB39H,5EH,79H,71H DB00H;8279按键输入中断服务程序PKEYI:PUSHPSW PUSHDPL PUSHDPH PUSHACC PUSHB SETBPSW.3 ;选工作寄存器1区

MOVDPTR,#7FFFH ;8279命令口地址MOVXA,@DPTR ;读FIFO状态字

ANLA,#0FH JZPKYR ;判FIFO中是否有数据? MOVA,#40H ;读FIFO命令

MOVX@DPTR,A MOVDPTR,#7EFFH;8279数据口地址

MOVXA,@DPTR ;读数据

MOVR2,A ANLA,#38H ;计算键值

RRA RRA RRA MOVB,#04H MULAB XCHA,R2 ANLA,#7 ADDA,R2 MOV70H,A MOV71H,#16 MOV72H,#16 MOV73H,#16MOV74H,#16MOV75H,#16PKYR: POPBPOPACCPOPDPHPOPDPLPOPPSWRETIEND8.4ADC0809与DAC0832的接口技术ADC0809的基础知识ADC0809是使用较广泛的一种ADC,ADC0809芯片为8位8通道A/D转换器,可以和单片机直接接口,将IN0-IN7中任意一个通道输入的模拟电压转换为8位二进制数。ADC0809芯片为28脚双列直插式芯片,其引脚如图8-18所示。IN0-IN7:模拟量输入通道,可以有8各通道的模拟量输入。在完成本任务时只需要用到一个通道。ADDC、ADDB、ADDA,:模拟通道选择地址线,根据3根线的不同状态组合能实现通道选择控制,通道选择表如表所示。通道选择表引脚功能引脚功能D7-D0:三态缓冲数据输出线,转换后为8位数字量。可直接与单片机数据线相连,例如,与单片机P1端口相连,从P1端口读取转换结果。CLOCK:外部时钟信号输入端,提供A/D转换器工作的时钟,决定了转换的速度。通常情况下,该CLOCK信号由单片机的ALE信号通过D触发器二分频后得到,当晶振频率为6MHz时,得到500kHz时钟CLK,转换一次的时间约为100µs。START:A/D转换启动信号。START为上升沿,所有内部寄存器清0;START为下降沿,启动A/D转换;A/D转换期间,START应保持低电平。EOC:ADC0809芯片自动发出的转换状态端。EOC=0,表示正在进行转换;EOC=1,表示转换结束。OE:转换数据允许输出控制端。OE=0,表示禁止输出;OE=1,表示允许输出。Vref:参考电压,用来与输入的模拟信号进行比较,典型值为+5V,即Vref(+)=+5V,Vref(—)=0V。实训9:ADC0809接口电路与程序设计仿真

1.功能说明设计一个两位数字电压表,分辨率为0.1V,量程为0-5V,将输入给单片机的模拟信号转换为单片机能够识别的数字信号,因此在输入信号与单片机之间要连接一个A/D(模/数)转换器。输入信号变成数字信号后,单片机只需将它读出并用数码管显示出来。2.硬件设计图8-19所示的是基于单片机和ADC0809的数字电压表电路原理图。显示屏为两只LED数码管,通过IN0通道输入模拟信号,模拟信号输入可以通过改变可变电阻的阻值来改变。同时数码管上的电压值随之发生变化。硬件电路图软件设计

EOCBITP2.0STABITP2.1CLKBITP2.2OEBITP2.3ALEBITP2.4;******主程序******

ORG0000hLJMPMAINORG000BH;时钟信号由单片机提供

CPLCLKRETIMAIN:MOVTMOD,#02H;定时器初始化

MOVTH0,#56MOVTL0,#56SETBEASETBET0SETBTR0CLRAMOV30H,A;30H转换电压整数位

MOV31H,A;31H转换电压小数位

MOV32H,A;32H电压转换数据

CLRP2.7CLRP2.6CLRP2.5CLRALENOPSETBALENOPCLRALENOPLOOP:CLRSTANOPSETBSTANOPCLRSTANOPLOP1:ACALLDISP;延时等待

JNBEOC,LOP1;等待转换结束

MOVA,P0MOV32H,AACALLCHANSJMPLOOP;******数据转换子程序******CHAN:MOVA,32HANLA,#0F0HSWAPAMOV30H,AMOVA,32HANLA,#0FHMOV31H,AMOVA,32H;MOVB,#51DIVABMOV30H,AXCHA,BMOVB,#5DIVABMOV31H,ARET;******显示子程序******DISP:MOVDPTR,#TABMOVA,30HMOVCA,@A+DPTRCLRACC.7MOVP1,#01HMOVP3,AACALLDELYMOVA,31HMOVCA,@A+DPTRMOVP1,#02HMOVP3,AACALLDELYRET;******延时子程序******DELY:MOVR6,#20DEL1:MOVR7,#100DJNZR7,$DJNZR6,DEL1RET;******共阳段码表******TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80HDB90H,88H,83H,0C6H,0A1H,86H,8EH,0FFHEND

DAC0832的基础知识DAC0832是8分辨率的D/A转换集成芯片。与51单片机完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成,如图。DAC0832的引脚特性DAC0832是20引脚的双列直插式芯片。各引脚的特性如下DI0~7:数据输入线。ILE

:数据允许锁存信号,高电平有效。

:输入寄存器选择信号,低电平有效。、为输入寄存器的写选通信号。输入寄存器的锁存信号由ILE、、的逻辑组合产生。当ILE为高电平,为低电平、输入负脉冲时,在产生正脉冲;为高电平时,输入锁存器的状态随预数据输入线的状态变化,的负跳变将输入数据线上的信息打入输入寄存器。

:数据传送信号,低电平有效。为DAC寄存器的写选通信号。DAC寄存器的锁存信号,由、的逻辑组合产生。当为低电平,输入负脉冲,则在产生正脉冲;为高电平时,DAC寄存器的输出和输入寄存器的状态一致,负跳变,输入寄存器的内容打入DAC寄存器。VREF

:基准电源输入引脚。Rfb

:反馈信号输入引脚,反馈电阻在芯片内部。IOUT1、IOUT2:电流输出引脚。电流IOUT1和IOUT2的和为常数,IOUT1和IOUT2随DAC寄存器的内容线性变化。VCC

:电源输入引脚;AGND:模拟信号地;DGND:数字地。2.DAC0832的工作方式DAC0832有如下3种工作方式:(1)单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收数据,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情况。(2)双缓冲方式。双缓冲方式是先使输入寄存器接收数据,再控制输入寄存器的输出数据到DAC寄存器,即分两次锁存输入数据。此方式适用于多个D/A转换同步输出的情况。(3)直通方式。直通方式是数据不需两级锁存器锁存,即、、均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。单片机与DAC0832的接口技术仿真1.功能说明通过单片机与DAC0832完成一个正弦波发生器,通过虚拟示波器来检测产生的正弦波信号。2.硬件设计如图所示的是基于单片机和DAC0832的正弦波发生器电路原理图。DAC0832处于直通状态,由于DAC0832是电流输出型。在本系统中,需要检测电压信号,电流信号到电压信的转换可由一个运算放大器实现,输出电压的幅度值=—(D/256)*VREF,D为单片机输出的二进制数据,VREF为基准电压。3.正弦波发生器的软件设计设计思路:把产生正弦波波形输出的二进制数据以表格的形式预先存放在程序存储器程序清单:ORG0000HLJMPMIANORG0100HMIAN:MOVSP,#6FH;初始化堆栈PUB0:MOVR4,#00HPUB1:MOVDPTR,#TABMOVA,R4MOVCA,@A+DPTRPUB2:MOVp1,A;数据送P1口

LCALLDELAY_1MSINCR4CJNER4,#80H,PUB1;数据是否取完

LJMPPUB0DELAY_1MS:PUSHACC;通过堆栈实现延时

NOPCLRAPD:NOPINCACJNEA,#0F9H,PDPOPACCRETTAB:DB64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106DB109,111,113,115,117,118,120,121,123,124,125,126,126DB127,127,127,127,127,127,127,126,126,125,124,123,121DB120,118,117,115,113,111,109,106,104,102,99,96,94,91DB88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39DB36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1DB1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23DB25,28,31,33,36,39,42,45,48,51,54,57,60END8.5单片机控制步进电机接口技术1.基础知识步进电机按绕在定子上的线圈配置分类可分为2相、4相、5相等,如图所示。步进电机按外部引线可分为三线式、五线式、六线式等,其控制方法均相同,均以脉冲信号进行驱动。步进电机的工作原理步进电机,顾名思义,就是一步步走的电机,所谓“步”指的是转动角度,一般每步为1.8度,若转一圈360度,需要200步才能完成。步进电机每走一步,就要加一个脉冲信号,也称激磁信号。无脉冲信号输入时,转子保持一定的位置,维持静止状态。若加入适当的脉冲信号时,转子则会以一定的步数转动。如果加入连续的脉冲信号,步进电机就连续的转动,转动的角度与脉冲信号频率成正比,正反转可由脉冲的顺序来控制。步进电机的激磁方式有1相激磁,2相激磁和1-2相激磁。1相激磁法:在每个瞬间只有一个线圈导通。其他线圈休息。其特点是激磁方法简单、消耗电力小、精度良好。但是转矩小、振动较大,每送一次激磁信号可走1.8度。2相激磁法:在每个瞬间会有两个线圈同时导通,特点是转矩大、振动较小,每送一次激磁信号可走1.8度。1-2相激磁法:1相与2相轮流交替导通,精度提高,且运转平滑。但每送一激磁信号只走0.9度,又称为半步驱动。若改变线圈激磁顺序可以改变步进电机的转动方向。每送一次激磁信号后要经过一小段的时间延时,让步进电机有足够的时间建立磁场及转动。小型步进电机的驱动电路单片机的输入电流太小,不能直接连接步进电机,需要加驱动电路。对于电流小于0.5A的步进电机,也已采用ULN2003类的驱动IC。图示为ULN2003驱动器的引脚图,图左边1~7引脚为输入端,接单片机输出端,引脚8接地;右侧10~16引脚为输出端,接步进电机,引脚9接电源+5V,该驱动器可提供最高0.5A的电流。接口电路设计与仿真1.功能说明单片机的P1.0~P1.2引脚,分别接有按钮开关K1、K2和K3,用来控制步进电动机的转向。(1)开始供电时,步进电动机停止。(2)按K1时,电动机正转;按K2时,电动机反转。(3)按K3时,电动机停止转动。2.硬件设计电路设计如图所示。K1、K2和K3按钮开关分别接在单片机的P1.0~P1.2引脚上,作为信号的输入端,输出端直接采用ULN2003驱动电路控制步进电机的转向。程序清单:

K1EQUP1.0;按键初始化

K2EQUP1.1K3EQUP1.2STOP:MOVP2,#0FFH;停止LOOP:JNBK1,Z_M2;按键扫描

JNBK2,F_M2JNBK3,STOP1JMPLOOP;没有按键循环STOP1:ACALLDELAY;延时去抖动

JNBK3,$ACALLDELAYJMPSTOPZ_M2:ACALLDELAYJNBK1,$ACALLDELAYJMPZ_MF_M2:ACALLDELAYJNBK2,$ACALLDELAYJMPF_MZ_M:MOVR0,#00H;正转Z_M1:MOVA,R0MOVDPTR,#TAB1MOVCA,@A+DPTR;查表去正转信号

JZZ_M;判断是否为结束码

MOVP2,AJNBK3,STOP1;是否有键按下

JNBK2,F_M2ACALLDELAY;调用延时

INCR0JMPZ_M1RETF_M:MOVR0,#00H;反转F_M1:MOVA,R0MOVDPTR,#TAB2MOVCA,@A+DPTRJZF_MMOVP2,AJNBK3,STOP1JNBK1,Z_M2ACALLDELAYINCR0JMPF_M1RETDELAY:MOVR1,#200;延时100msD1:MOVR2,#248DJNZR2,$DJNZR1,D1RETTAB1:DB01H,03H,02H,06H,04H,0CH,08H,09H,00H;正转TAB2:DB09H,08H,0CH,04H,06H,02H,03H,01H,00H;反转

END8.6单片机控制直流电机的接口技术直流电机原理简介直流电机即可作为发电机使用,也可作为电动机使用,用作直流发电机可以得到直流电源,而作为直流电动机,由于直流电机具有良好的调速性能,在许多调速性能要求较高的场合,仍然被广泛的使用。虽然直流发电机和直流电动机的用途各不同,但是它们的结构基本上一样,都是利用电和磁的相互作用来实现机械能与电能的相互转换。直流电动机因其具有调节转速比较灵活、方法简单、易于大范围内平滑调速、控制性能好等特点,在传动领域占有一定的地位。脉冲宽度调制(PWM)(1)基本原理PWM是通过控制固定电压的直流电源开关的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。如图所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机的转速得到控制。设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为=式中,为电机的平均速度;为电机全通时的速度(最大);

D=t1/T为占空比;从式中可见,当我们改变占空比D时,就可以改变电机的平均转速,从而达到调速的目的。严格的讲,平均速度与占空比之间并不是严格的线性关系,在应用中可以将其近似地看成线性关系。PWM信号的产生有两种方法:一种是通过硬件方法来实现,如通过专用的PWM芯片来产生,另一种方法是通过软件方法来实现,如通过51单片机的定时/计数器来实现或者通过软件延时的方法来实现。目前,有些其他系列的单片机已经集成了PWM产生电路,如AVR系列,PIC系列等。接口电路设计与仿真功能说明:通过51单片机和ADC0809产生占空比可变的PWM信号来控制直流电机的转速。一.硬件设计通过ADC0809的模拟信号输入通道接一个可变电阻来实现模拟电压信号的输入,经过ADC0809转换后输入单片机的内部进行处理,同时根据处理后的结果使P3.7引脚输出一个PWM信号,当改变可变电阻的阻值时输出的PWM信号的占空比发生变化,并通过一个电机模拟驱动电路来实现对电机转速的控制。电路图如图8-31所示。二.程序设计程序设计的主要是PWM信号的输出问题,本次设计中的PWM信号是通过一个延时程序来实现,当ADC0809的输出结果发生变化时,PWM信号的占空比也发生变化。程序清单:ADC EQU 35HCLOCK BIT P2.4 ;定义ADC0808时钟位

ST BIT P2.5EOC BIT P2.6OE BIT P2.7PWM BIT P3.7 ORG 0000H SJMP START ORG 000BH LJMP INT_T0START: MOV TMOD,#02H MOV TH0,#20 MOV TL0,#00H MOV IE,#82H SETB TR0WAIT:CLR ST SETB ST CLR ST ;启动AD转换

JNB EOC,$ ;等待转换结束

SETB OE MOV ADC,P1 ;读取AD转换结果

CLR OE SETB PWM ;PWM输出

MOV A,ADC LCALL DELAY CLR PWM MOV A,#255 SUBB A,ADC LCALL DELAY SJMP WAITINT_T0:CPL CLOCK ;定时器提供ADC0808时钟信号

RETIDELAY:MOV R6,#1;通过转换结果调整占空比D1: DJNZ R6,D1 DJNZ ACC,D1 RETEND8.7单片机与字符型LCD显示器的接口技术基础知识1.LCD的分类LCD可分为两种类型,一种是字符模式LCD,另一种是图形模式LCD,我们主要学习的是字符型LCD。它专门用来显示字母、数字、符号等。由于LCD的控制需要专用的驱动电路,一般不单独使用,而是LCD面板、驱动与控制电路组合的LCD模块(简称LCM)一起使用.

LCD模块的引脚2.LCD模块的引脚下面介绍的是常用的20字*2行的字符模块,外形如图所示20字*2行LCD每行可以显示20个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论