单片机接口技术

合集下载

单片机原理及接口技术课后习题 答案

单片机原理及接口技术课后习题 答案

第九章复习思考题1. 计算机系统中为什么要设置输入输出接口输入/输出接口电路是CPU与外设进行数据传输的桥梁..外设输入给CPU的数据;首先由外设传递到输入接口电路;再由CPU从接口获取;而CPU输出到外设的数据;先由CPU输出到接口电路;然后与接口相接的外设获得数据..CPU与外设之间的信息交换;实际上是与I/O 接口电路之间的信息交换..2. 简述输入输出接口的作用..I/O接口电路的作用主要体现在以下几个方面:1实现单片机与外设之间的速度匹配;2实现输出数据锁存;3实现输入数据三态缓冲;4实现数据格式转换..3. 在计算机系统中;CPU与输入输出接口之间传输数据的控制方式有哪几种各有什么特点在计算机系统中;CPU与I/O接口之间传输数据有3种控制方式:无条件方式;条件方式;中断方式;直接存储器存取方式..在无条件方式下;只要CPU执行输入/输出指令;I/O接口就已经为数据交换做好了准备;也就是在输入数据时;外设传输的数据已经传送至输入接口;数据已经在输入接口端准备好;输出数据时;外设已经把上一次输出的数据取走;输出接口已经准备好接收新的数据..条件控制方式也称为查询方式..CPU进行数据传输时;先读接口的状态信息;根据状态信息判断接口是否准备好;如果没有准备就绪;CPU将继续查询接口状态;直到其准备好后才进行数据传输..在中断控制方式下;当接口准备好数据传输时向CPU提出中断请求;如果满足中断响应条件;CPU则响应;这时CPU才暂时停止执行正在执行的程序;转去执行中断处理程序进行数据传输..传输完数据后;返回原来的程序继续执行..直接存储器存取方式即DMA方式;它由硬件完成数据交换;不需要CPU的介入;由DMA 控制器控制;使数据在存储器与外设之间直接传送..4. 采用74LS273和74LS244为8051单片机扩展8路输入和8路输出接口;设外设8个按钮开关和8个LED;每个按钮控制1个LED;设计接口电路并编制检测控制程序..80C51图9.1题3接口电路原理图接口电路原理图如图9.1 源程序:MOV D PTR;#BFFFH ;设置输入/输出口地址COMT:MOVX A;@DPTR ;读取开关状态 NOP ;延时;总线稳定 MOVX @DPTR;A ;输出;驱动LED 显示 NOP;延时;总线稳定AJMP CONT5. 74LS377是8D 触发器;其功能表见表9.17;其中Di 为触发器的数据输入端;Qi 为触发器的数据输出端;G 是使能控制端;CLK 是时钟输入端;Q0为建立稳态输入条件之前;锁存器输出Q 的状态..采用它为8051单片机扩展1个8位的并行输出口..图9.2 题5接口电路原理图用74LS377扩展的输出口电路如图9-2所示..用P2.7与74LS377的使能控制端G 相连;当P2.7为0时;74LS377被选中;如果默认其他未用的地址线为1;则扩展的输出口地址为7FFFH..由于MCS-51单片机的WR 接到74LS377的时钟输入端CLK;当CPU 执行写外部输出口指令MOVX 时;把数据输出到数据总线上;在WR 信号由低变高时;写出的数据被打入74LS377并锁存..程序如下: MOV DPTR; #7FFFH ;输出口地址 MOV A; R6 ;取数据MOVX @DPTR; A ;输出;6. 74LS245是一种具有双向驱动的8位三态输出缓冲器;它的功能表见表9.18;其中G 为使能端;DIR 为方向控制端;A1~A8为A 端的数据输入/输出;B1~B8为B 端的数据输入/输出..当G 为低电平时;DIR 为高电平把A 端数据传送至B 端;DIR 为低电平;把B 端数据传送至A 端..在其他情况下不传送数据;并输出呈高阻态..采用它为8051单片机扩展1个8位的输入口..80C5180C511 2 图9-3 题6采用74LS245扩展输入口的2种电路图9-3为采用74LS245扩展输人接口电路..电路1中;DIR 上拉为高电平;74LS245数据传送方向强制为B 端到A 端;当P2.0为0时;且RD 为低电平时;使能端G 为低电平;74LS245三态门打开;单片机CPU 读取外设输入的数据..其他情况下;74LS245的三态门呈高阻状态..电路2中;只有单片机读取外设数据时;P2.0=0使74LS245的使能端G 有效;如果RD 为低电平;把74LS245数据传送方向置为A 端到B 端;其A→B 方向的三态门打开;单片机CPU 读取外设输入的数据..P2.0=1时;使能端G 无效;A 端和B 端处于隔离状态.. 图9-3的2个电路都采用P2.0为片选;其输入口地址为0FEFFH 默认未用地址线为1.. 7. 采用8155芯片为8051单片机系统扩展接口;外设为开关组8个开关组成和8个LED;每个开关控制1个LED..现需要读取开关组的状态;并把其状态存储到8155芯片RAM 中;若开关组的开关全部断开;则不记录..设计接口电路并编制检测程序..815MCS-图9.4 题7接口电路接口电路如图9.4所示; 8155的PB 口用作读取开关组状态;PA 口用作控制LED 组;分配地址如下:命令/状态寄存器:0100H ;PA 口:0101H ;PB 口:0102H ; PA 和PB 口为基本输入输出方式..K0控制LED0;K1控制LED1;以此类推..设存储开关状态的单元为STA TE..程序如下:CMMD EQU 0100H PORTA EQU 0101H PORTB EQU 0102H PORTC EQU 0103HSTATE EQU 20HMOV A;#02H ;初始化;工作方式控制字 MOV DPTR;# 0100H ;控制寄存器地址MOVX @DPTR; A;设置工作方式;初始化完成MOV A;#0FFH MOV DPTR;#0101H MOVX @DPTR;A ;上电后;熄灭LEDNOPMOV STATE;#0FFH ;没有开关闭合 DETECT: MOV DPTR;#0102H;PB 口地址MOVX A;@DPTR;从PB 口读开关状态MOVX @DPTR;A;从PA 口输出控制LED 指示灯NOPCJNE A;#0FFH;VALID SJMP DETECTVALID: MOV STATE;A;;记录开关状态AJMP DETECT8. 采用8255芯片为8051单片机系统扩展接口;外设为开关组8个开关组成和8个LED;每个开关对应1个LED..现需要每隔50ms 读取一次开关组的状态;并把其状态存储到内部RAM 中..设计接口电路并编制检测程序..假设系统晶振频率为12MHz..图9.5 单片机与8255接口电路图9.5为接口电路; PA 、PB 、PC 和控制寄存器地址分别为:0000H 、0001H 、0002H 和0003H..根据开关K0~K7状态控制LED0~LED7的显示状态;K0控制LED0;依此类推..设置8255的工作方式;PA 口外接开关;为方式0的输入;PB 口外接LED;为方式0的输出;则工作方式控制字的标志位D7为1;D6~D3A 组:0000; D2~D0B 组:010;组合后的控制字为:10000010;即82H..设存储开关状态的单元为STATE;用定时器/计数器T0定时50ms;工作方式为方式1;初始值为:1553650216=-M T ms;即3CB0HPORTA EQU 0100H PORTB EQU 0101H PORTC EQU 0102H CMMD EQU 0103H STATE EQU 20H //mian programACALL Ini8255; ACLL IniTimer0 WAIT:JBC TF0;DETECT SJMP WAIT DETECT: MOV TH0;#3CHMOV TL0;#0B0HMOVX A;@DPTR ;从PB口读开关状态MOV DPTR; #PortA ;PA口地址MOVX @DPTR;A ;从PA口输出控制LED指示灯NOPMOV STATE;AAJMP WAITIni8255: MOV A;#82H ;初始化;工作方式控制字MOV DPTR;#CMMD ;控制寄存器地址MOVX @DPTR; A ;设置工作方式;初始化完成MOV A;#0FFHMOV DPTR;#PORTAMOVX @DPTR;A ;上电后;熄灭LEDNOPRETIniTimer0: MOV TMOD;#01HMOV TH0;#3CHMOV TL0;#0B0HSETB TR0RET9. 简述矩阵键盘的行列扫描和线反转法原理..1行列扫描法:在按键识别过程时;依次使行线输出电平;然后检查列线的输入电平;如果所有列线的输入全为高电平;则该行无按键按下;如果不全为高电平;则被按下的按键在本行;且在输入电平变为低电平的列的交叉点上..2线反转法:第一步;首先使行线为输入;列线为输出..列线全部输出低电平;那么;行线中变为低电平的行线为按键所在的行..第二步;使行线变为输出;列线变为输入..行线输出全部为低电平;那么;列线中变为低电平的列线为按键所在的列..10. 一个简单计数器的电路原理图如图所示..要求每按一次S键;计数器计数一次;计数值送P1口显示;采用单只数码管显示;计16次后从0开始..图9.6 题10原理图1 BIT P3.3VALUE EQU 20HORG 0000HLJMP MAINORG 1000HM AIN: SETB P3.3MOV VALUE;#00ACALL DISP ;初始化显示0W AIT0: JB S1;WAIT0;ACALL DEL10MSW AIT1: JB S1;WAIT1 ;判断按下W AIT2: JNB S1;WAIT2;ACALL DEL10MSW AIT3: JNB S1;WAIT3 ;判断释放INC VALUE ;加1ANL VALUE;#00001111B ;仅显示低位ACALL DISP ;显示SJMP WAIT0//显示子程序DISP: MOV A;VALUE ;取显示信息MOV DPTR; #SEG_TAB ;字型码表的首地址MOVC A;@A+DPTR ;通过显示信息查其字型码MOV P1;A ;输出显示NOPRET//延时子程序DEL10MS:MOV R5;#10DELX: MOV R6;#200DEL0: NOPNOPNOPDJNZ R6;DEL0DJNZ R5;DELXRETS EG_TAB: DB 0C0H; 0F9H; 0A4H; 0B0H; 99H; 92H; 82H; 0F8H; 80H; 90HDB 88H; 83H; 0C6H; 0A1H; 86H; 8EH ;以下为显示字型码表;0~9;A~FEND11. 简述LED数码管的静态显示和动态显示原理..1静态显示:在多位静态显示时;各个LED数码管相互独立;公共端COM接地共阴极或接正电源共阳极..每个数码管的8个显示字段控制端分别与一个8位并行输出口相连;只要输出口输出字型码;LED数码管就立即显示出相应的字符;并保持到输出口输出新的字型码..2动态显示:多位LED数码管动态显示方式是各个LED数码管一位一位地轮流显示..在硬件电路上;各个数码管的显示字段控制端并联在一起;由一个8位并行输出口控制;各个的LED数码管的公共端作为显示位的位选线;由另外的输出口控制..动态显示时;各个数码管分时轮流地被选通;即在某一时刻只选通一个数码管;并送出相应的字型码;并让该数码管稳定地显示一段短暂的时间;在下一时刻选通另一位数码管;并送出相应的字型码显示;并保持显示一段时间;如此循环;即可以在各个数码管上显示需要显示的字符..图9.7 LED数码管静态显示原理图9.8 LED数码管动态显示原理12. 用P1和P3口作为输出口;设计一个5位的LED数码管显示系统;并在显示器上显示“HELLO”..+5V图 9.9 题12接口电路图接口电路图如图9.9所示;用2片74LS245提高接口的驱动能力;LED数码管为共阴型..程序如下:SEG_OUT EQU P3BIT_OUT EQU P1//====================================ORG 0000HLJMP STARTORG 0030HSTART: MOV SP;#60HMOV 20H;#40H //显示" HELLO" 对应字型表序号编码:40 12 23MOV 21H;#12HMOV 22H;#23HMOV R1;#30HMOV R0;#20HCALL SPLITINC R0INC R1CALL SPLITINC R0INC R1CALL SPLITRED: ACALL DSPLY1SJMP RED//===================================SPLIT: MOV A;@R0ANL A;#0F0HSWAP AMOV @R1;AINC R1MOV A;@R0ANL A;#0FHMOV @R1;ARET//===========================================//6位显示DSPLY1: MOV R0; #30H ;显示缓冲区地址MOV R2; #11111110B ;显示起始位置REDO: ACALL DISP ;显示1位MOV A; R2 ;计算下一个显示位置 RL AMOV R2; AINC R0 ;修改显示缓冲区地址指针 XRL A; #10111111B ;6位显示完否JNZ REDO ;未完;继续显示RET ;返回//==========================================;显示一位子程序DISP: MOV D PTR; #LED_SEG ;字型码表首地址MOV A; @R0 ;取显示数据MOVC A; @A+DPTR ;求显示数据的字型码MOV S EG_OUT; A ;输出字型码MOV A; R2 ;取显示位置MOV BIT_OUT; A ;显示ACALL DL1MSMOV A;#0FFH ;稳定显示1msMOV BIT_OUT;ARET;字型码表LED_SEG: DB 76H ; H 序号:00DB 79H ; E 序号:01DB 38H ; L 序号:02DB 3FH ; 0 序号:03DB 00H ; BLANK 序号:04DL1MS: MOV R5;#200; 12M时延时1msDEL: NOPNOPNOPDJNZ R5;DELRETEND13. 一个显示电路如图9.60所示..请采用串行口方式0实现LED数码管的动态显示;在显示器上自左向右动态显示“654321”;每个字符保持时间为0.1s..图9.10 习题13原题电路图ORG 0000HLJMP STARTORG 0030HSTART: MOV SP;#60HMOV 20H;#12H //显示数据MOV 21H;#34HMOV 22H;#56HMOV R1;#30HMOV R0;#20HCALL SPLIT //分离BCD码INC R0INC R1CALL SPLITINC R0INC R1CALL SPLITRED: ACALL DISPLYSJMP RED//===================================SPLIT: MOV A;@R0ANL A;#0F0HSWAP AMOV @R1;AINC R1MOV A;@R0ANL A;#0FHMOV @R1;ARET//================================DISPLY: MOV R0; #30H ;显示缓冲区首地址MOV R2; #05H ;显示位置;最右端1位NEXT: ACALL DISP11 ;显示INC R0 ;修改显示缓冲区地址指针DEC R2 ;计算下一位显示位置CJNE R2; #0FFH; NEXT ;6位显示完否RET ;显示完返回;显示1位子程序DISP11: MOV A; @R0 ;取显示数据MOV DPTR; #SEG_TABMOVC A; @A+DPTR ;取显示数据的字型码MOV SBUF; A ;输出字型码GOON: JBC TI; DPLYAJMP GOONDPLY: MOV A; R2MOV P1; A ;输出显示位置ACALL DL100MS ;延时MOV P1;#07HRET;字型码表SEG_TAB:DB 0C0H; 0F9H; 0A4H; 0B0H; 99H; 92H; 82H; 0F8H; 80H; 90H DB 88H; 83H; 0C6H; 0A1H; 86H; 8EH//====================================DL1MS: MOV R5;#200; 12M时延时1msDEL: NOPNOPNOPDJNZ R5;DELRETDL100MS:MOV R6;#100DELX0: ACALL DL1MSDJNZ R6;DELX0RETEND14. 采用8155或8255扩展I/O口;设计一个显示电路显示“654321”..图9.11 采用8255扩展的LED数码管动态显示接口电路图9.11为采用8255扩展的LED数码管动态显示接口电路..图中PA口用于输出字型码;PB口用于输出显示位置;LED数码管为共阴型;显示位置采用译码器译码的方式实现..在电路中采用同相缓冲器74LS07提高PA口的驱动能力;同相驱动器SN75451用于驱动显示器的公共端..电路中8255的PA和PB口处于基本输入/输出方式的输出模式;PA口地址为0000H;PB口为0001H;命令寄存器地址为0003H..定义SEG_OUT为PA口地址;BIT_OUT为PB口地址..程序如下://定义区SEG_OUT EQU 0000H //PortA 输出字型码BIT_OUT EQU 0001H //PortB输出位控码PortC EQU 0002H//CMMD EQU 0003H//命令寄存器地址//========================ORG 0000HLJMP STARTORG 0030HSTART: MOV SP;#60HMOV DPTR;#CMMD //8255初始化MOV A;#10000000B //方式0;A/B/C口为输出MOVX @DPTR;ANOPNOPMOV 20H;#12H //显示数据MOV 21H;#24HMOV 22H;#56HMOV R1;#30HMOV R0;#20HCALL SPLITINC R0INC R1CALL SPLITINC R0INC R1CALL SPLITRED: ACALL DSPLY2SJMP RED//===================================SPLIT: MOV A;@R0ANL A;#0F0HSWAP AMOV @R1;AINC R1MOV A;@R0ANL A;#0FHMOV @R1;ARET//===========================================//6位显示DSPLY2: MOV R0; #30H ;显示缓冲区首地址MOV R2; #00000000B ;显示起始位置REDO: ACALL DISP ;显示1位INC R2 ;计算下一次的显示位置INC R0 ;修改显示缓冲区指针CJNE R2; #06H; REDO ;6位显示完否RET ;显示结束返回//==========================================;显示一位子程序DISP: MOV D PTR; #LED_SEG ;字型码表首地址MOV A; @R0 ;取显示数据MOVC A; @A+DPTR ;求显示数据的字型码MOV D PTR; #SEG_OUT ;字型码输出口地址MOVX @DPTR; A ;输出字型码MOV A; R2 ;取显示位置MOV D PTR; #BIT_OUT ;显示位置输出口地址MOVX @DPTR; A ;显示ACALL DL1MSMOV A;#0FFH ;稳定显示1msMOVX @DPTR; ARET;字型码表LED_SEG: DB 3FH;06H;5BH;4FH;66H;6DH;7DH;07H ;'0;1;2;3;4;5;6;7' DB 7FH;6FH;77H;7CH;39H;5EH;79H;71H ;'8;9;A;B;C;D;E;F' DB 3EH; 50H; 40H; 08H; 00H ;'U; r; -; _; BLANK//======================================DL1MS: MOV R5;#200; 12M时延时1msDEL: NOPNOPNOPDJNZ R5;DELRETEND15. 一个单片机的键盘显示系统采用3×4矩阵式键盘、8位LED数码管显示器..12个按键定义为数字键0~9、功能键ENTER和STOP..系统工作时;键入一组数值;按下ENTER键后;新数值替换原来的显示值在显示器上循环显示;按下STOP键;循环显示终止;显示数据被清除..设计硬件电路和编写相应的程序..+5V图9.12 题15原理图//definationSEG_OUT EQU P2 //字型输出BIT_OUT EQU P3 //位控输出DISPBUF EQU 40H //显示缓冲区40H~47HSETPTR EQU 38H //设定数据时的存指针的单元HOLDTIME EQU 39H //ENTER时;存储每位稳定时间的单元DLETIME EQU 255 //enter稳定时间BIT_CODE EQU 3AH //ENTER时存字型的单元BIT_LOC EQU 3BH //ENTER时存位控的单元ETR_FLAG BIT 28H.0 //ENTER按下标志STP_FLAG BIT 28H.1 //STOP按下标志//============================ORG 0000HLJMP STARTORG 0030HSTART: MOV SP;#60H//======================ENTER按下的初始化=================CLR ETR_FLAGCLR STP_FLAGMOV HOLDTIME;#DLETIME //ENTER按下时;每位的保持时间MOV BIT_CODE;#DISPBUFMOV BIT_LOC;#01111111B//===========清显示缓冲区=========MOV R0;#DISPBUFMOV R3;#8ACALL CLRRAM;MOV SETPTR;#DISPBUF //设定指针初始化;未键入数据时;显示“-”MOV DISPBUF;#12HSCANK: MOV P1;#0FH //键盘扫描MOV A;P1ANL A;#00000111BXRL A;#00000111BJZ NON0ACALL DL20MS //消抖MOV P1;#0FHMOV A;P1ANL A;#00000111BXRL A;#00000111BJZ NON0 //键按下//此处判断哪个键按下MOV R3;#11101111BCONTI: MOV P1;R3MOV A;P1 // 逐行扫描ANL A;#00000111BXRL A;#00000111BJNZ FOUNDMOV A;R3RL AMOV R3;AXRL A;#11111110BJNZ CONTINON0: JMP NON //没有键按下FOUND: MOV P1;#00000111BMOV A;P1ANL A;#00001111BMOV R4;A //暂存列编码MOV A;R3ANL A;#11110000B //取行编码ORL A;R4MOV R4;A // 存特征码;等待键释放NO_RLSE:MOV P1;#0FH //键释放MOV A;P1ANL A;#00000111BXRL A;#00000111BJNZ NO_RLSEACALL DL20MS //消抖MOV P1;#0FHMOV A;P1ANL A;#00000111BXRL A;#00000111BJNZ NO_RLSEMOV A;R4CJNE A;#0E6H;NUM2MOV R4;#01HJMP GODISP //1NUM2: CJNE A;#0E5H;NUM3MOV R4;#02H //2JMP GODISPNUM3: CJNE A;#0E3H;NUM4MOV R4;#03H //3JMP GODISPNUM4: CJNE A;#0D6H;NUM5MOV R4;#04H //4JMP GODISPNUM5: CJNE A;#0D5H;NUM6MOV R4;#05H //5JMP GODISPNUM6: CJNE A;#0D3H;NUM7MOV R4;#06HJMP GODISP //6NUM7: CJNE A;#0B6H;NUM8MOV R4;#07HJMP GODISP //7NUM8: CJNE A;#0B5H;NUM9MOV R4;#08HJMP GODISP //8NUM9: CJNE A;#0B3H;ENTERMOV R4;#09HJMP GODISP //9ENTER: CJNE A;#076H;NUM0MOV R4;#0AH //ENTERJMP ETR_DISP //ENTER按下;循环显示NUM0: CJNE A;#075H;STOPMOV R4;#00H //0JMP GODISPSTOP: CJNE A;#073H;NUMXMOV R4;#0BHJMP STP_DISP // STOP按下NUMX: JMP NON //没有按键按下GODISP: CLR ETR_FLAGCLR STP_FLAGMOV R0;SETPTRMOV A;R4MOV @R0;AINC R0MOV SETPTR;R0CJNE R0;#DISPBUF+8;GOONMOV SETPTR;#DISPBUFGOON: JMP REDNON: JB ETR_FLAG;ETR_DISP //无键按下;之前ENTER按下JB STP_FLAG;STP_DISP //无键按下;之前STOP按下//无键按下;之前有数字键按下RED: MOV R0;#DISPBUFACALL DSPLY1 //显示键入的数据JMP SCANKETR_DISP:MOV SETPTR;#DISPBUF //enter件按下;设定数据循环显示SETB ETR_FLAGMOV R0;BIT_CODEMOV R2;BIT_LOC ;显示起始位置ACALL DISP ;显示1位DJNZ HOLDTIME; SKIP0MOV HOLDTIME;#DLETIMEMOV A; BIT_LOC ;计算下一个显示位置RR AMOV BIT_LOC;AINC BIT_CODE ;修改显示缓冲区地址指针XRL A;#01111111B ;8位显示完否JNZ SKIP0MOV BIT_CODE;#DISPBUFMOV BIT_LOC;#01111111BMOV HOLDTIME;#DLETIME ;未完;继续显示SKIP0: J MP SCANK ;返回//STOP处理STP_DISP: MOV SETPTR;#DISPBUFSETB STP_FLAGMOV R0;#DISPBUFMOV R3;#8ACALL CLRRAM; //清显示缓冲区内容MOV DISPBUF;#12HMOV R0;#DISPBUF //最左边显示“-”ACALL DSPLY1JMP SCANK//===========================================//8位显示DSPLY1: MOV R2; #01111111B ;显示起始位置REDO: ACALL DISP ;显示1位MOV A; R2 ;计算下一个显示位置RR AMOV R2; AINC R0 ;修改显示缓冲区地址指针XRL A; #01111111B ;8位显示完否JNZ REDO ;未完;继续显示RET ;返回//==========================================;显示一位子程序DISP: MOV D PTR; #LED_SEG ;字型码表首地址MOV A; @R0 ;取显示数据MOVC A; @A+DPTR ;求显示数据的字型码MOV S EG_OUT; A ;输出字型码MOV A; R2 ;取显示位置MOV BIT_OUT; A ;显示ACALL DL1MSMOV A;#0FFH ;稳定显示1msMOV BIT_OUT;ARET;字型码表LED_SEG: DB 3FH;06H;5BH;4FH;66H;6DH;7DH;07H ;'0;1;2;3;4;5;6;7' DB 7FH;6FH;77H;7CH;39H;5EH;79H;71H ;'8;9;A;B;C;D;E;F' DB 3EH; 50H; 40H; 08H; 00H ;'U; r; -; -; BLANKDL1MS: MOV R5;#200; 12M时延时1msDEL: NOPNOPNOPDJNZ R5;DELRETDL20MS: MOV R7;#20; 12M时延时20msDEL00: ACALL DL1MSDJNZ R7;DEL00RETCLRRAM: MOV @R0;#14H //不显示INC R0DJNZ R3;CLRRAMRETEND16. 简述A/D和的作用..A/D把模拟量变成数字量..D/A把数字量转换成模拟量..17. 在检测系统中;通常采用均值滤波的方法来消除检测数据的随机干扰;即连续采样多次;取平均值作为测量值..采用ADC0809设计一个检测系统;对IN5通道接入的模拟采样8次;把它们的均值存放在30H单元..+R八路模拟量输入图9.12 题17的MCS-51单片机与ADC0809的接口电路18. 采用ADC0809设计一个8路巡回检测系统;每隔50ms对8个回路检测1次;并把采样值存储在40H开始的区域..系统晶振频率为12MHz..接口电路与题17相同..程序流程图见图9.13..程序如下:ORG 0000HLJMP STARTORG 000BHLJMP Timer0InterruptSTART:MOV SP;#60HLCALL InitTimer0MOV R0;#40H ;置数据区首地址指针MOV R6;#00H ;指向模拟量输入通道0;通道地址的低八位LOOP: NOPLJMP LOOPInitTimer0:;定时器0;定时50msMOV TMOD; #01H MOV TH0; #3CH MOV TL0; #0B0H SETB EA SETB ET0 SETB TR0 RETTimer0Interrupt: PUSH DPH PUSH DPLPUSH ACC MOV TH0; #3CH MOV TL0; #0B0H MOV DPH; #0BFH ;P2.6=0;通道地址的高八位 MOV DPL;R6 ;模拟通道0 MOVX @DPTR;A ;启动A/D 转换.. WAITAD: JB P3.3; WAITADMOVX A;@DPTR ;读A/D 转换结果 MOV @R0;A ;存转换结果 INC R0 ;修改数据区指针 INC R6;模拟通道地址加1 CJNE R6;#08;EXIT ;8个通道全采样完了吗MOV R6;#00H ;8路巡检结束;重新采样模拟量输入通道IN0 MOV R0;#40H;重设数据区首地址指针EXIT:POP ACCPOP DPL POP DPH RETIEND19. 采用2片ADC0809为8051单片机扩展16路模拟量输入通道.. 图9.13 地址分析:IC2:P2.7=1;P2.6=0;8个通道地址为: IN0:8000H ; IN1:8001H IN2:8002H ; IN3:8003H IN4:8004H ; IN5:8005H IN6:8006H ;IN7:8007HIC3:P2.7=0;P2.6=1;8个通道地址为:图9.13 题18 程序流程图IN0:4000H;IN1:4001HIN2:4002H;IN3:4003HIN4:4004H;IN5:4005HIN6:4006H;IN7:4007H+R八路模拟量输入八路模拟量输入图9.14 2片ADC0809为8051单片机接口电路图20. 用8051单片机和DAC0832设计一个应用系统;输出连续的三角波..接口电路和程序框图见图9.15..ORG 0020HMOV DPTR;#7FFFH ;指向0832LOOP: MOV R2;#0FFH ;循环次数MOV A;#00H ;赋初值LOOP1:MOVX @DPTR;A ;D/A转换输出INC ADJNZ R2;LOOP1MOV R2;#0FEHLOOP2:DEC AMOVX @DPTR;A DJNZ R2;LOOP2 ALMP LOOP END+5VDAC0832A VoutMCS-51P2.7WRDI7Vcc ILE Vref Rfb Iout1Iout2AGNDDGNDP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0DI6DI5DI4DI3DI2DI1DI0+-CSXFERWR2WR1a 接口电路b 程序流程框图图9.15 题20接口电路和程序流程框图21. 用8051单片机和DAC0832设计一个应用系统;连续输出周期为5.12秒的三角波提示:每10ms 转换1次;三角波的周期等于定时时间×转换次数..接口电路如图9.15..程序框图见图9.16图9.16 题21程序流程图ORG 0000H LJMP START ORG 000BHLJMP Timer0InterruptSTART: MOV SP; #60HLCALL InitTimer0 ;定时初始化MOV R6;#0;三角波DA 转换值;起始值为0MOV R7;#0;三角波上升下降标志;0 = 上升;1 = 下降 LOOP:;主处理程序NOPNOP ALMP LOOPInitTimer0:MOV TMOD;#01H MOV TH0; #0D8H MOV TL0; #0F0H SETB EA SETB ET0 SETB TR0 RETTimer0Interrupt:MOV TH0; #0D8H MOV TL0; #0F0H CJNE R7; #0; LOOP1 INC R6CJNE R6; #0FFH; LOOP01 MOV R7; #1LOOP01: MOV DPTR; #7FFFH;指向0832MOV A; R6 MOVX @DPTR;A;D/A 转换输出SJMP RET0LOOP1: DEC R6CJNE R6; #0; LOOP11 MOV R7; #0LOOP11: MOV DPTR; #7FFFH;指向0832MOV A; R6 MOVX @DPTR;A;D/A 转换输出SJMP RET0RET0: RETIEND22. 用8051单片机和DAC0832设计一个应用系统;输出占空比为50%的双极性方波;幅值在–5~+5V 之间..接口电路见图9.17;程序流程框图见图9.18..根据图9.17接口电路的连接关系;可以推导出下列公式:Vref)(2Vo1Vref)2R 2R Vo1R 2R (Vout +-=+-=程序流程框图见图9.17..程序如下: ORG 1000HSTART: MOV DPTR;#7FFFHLOOP: MOV A;#00H MOVX @DPTR;A CALL DELAY10MS MOV A;#0FFH MOV @DPTR;A CALL DELAY10MSJMP LOOP+5VDAC0832A Vo18051P2.7WRDI7Vcc ILE Vref Rfb Iout1Iout2AGND DGNDP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0DI6DI5DI4DI3DI2DI1DI0+-CS XFERWR2WR1A Vout+-2RR 2R图9.17 接口电路图图9.18 程序流程图。

单片机与LCD液晶显示屏的接口技术

单片机与LCD液晶显示屏的接口技术

单片机与LCD液晶显示屏的接口技术LCD液晶显示屏是现代电子产品中常见的显示设备之一,它广泛应用于手机、电视、电子手表、智能家居等各种场景。

而单片机则是一种功能强大的集成电路,可以控制和管理各种外部设备。

在很多电子产品中,单片机与LCD液晶显示屏的接口技术起着至关重要的作用。

本文将介绍单片机与LCD液晶显示屏的接口技术原理和实现方法。

1. LCD液晶显示屏的工作原理LCD液晶显示屏采用液晶分子的光学特性来显示图像。

它由液晶面板、驱动电路和背光等组成。

液晶面板通过液晶分子的电场控制来改变光的透过度,从而实现对图像的显示。

驱动电路负责控制液晶分子的电场,使其定向排列以显示所需图像。

背光则提供光源,确保图像在背面光的照射下能够清晰可见。

2. 单片机与LCD液晶显示屏的接口类型通常情况下,使用较小的单片机时,可以采用并行接口的方式与LCD液晶显示屏进行连接。

而当液晶屏规模较大时,例如在电视等大尺寸设备中,采用串行接口更为常见。

2.1 并行接口并行接口是指将单片机的数据引脚与LCD液晶显示屏的数据引脚一一对应连接的方式。

通过这种方式,单片机可以通过并行传输大量数据来驱动LCD液晶显示屏。

通常的并行接口有8位并行和16位并行两种。

2.2 串行接口串行接口是指使用少量的引脚通过串行传输方式来控制和驱动LCD液晶显示屏。

串行接口可以有效减少引脚的使用数量,降低设备的成本和复杂度。

同时,通过串行接口传输数据的速度可以更快,图像显示更加流畅。

3. 单片机与LCD液晶显示屏的数据传输无论是使用并行接口还是串口接口,都需要单片机与LCD液晶显示屏之间进行数据的传输。

在数据传输中,液晶显示屏通常需要通过命令与数据两种不同方式来接收数据。

3.1 命令传输通过发送命令,单片机可以控制LCD液晶显示屏进行各种操作,例如清屏、光标的移动、设置光标位置等。

在数据传输时,单片机将命令数据通过接口发送给液晶显示屏的控制引脚,从而实现对液晶显示屏的控制。

单片机原理与接口技术课程简介

单片机原理与接口技术课程简介

单片机原理与接口技术课程简介
《单片机原理与接口技术》是电气工程及其自动化、计算机科学与技术、应用电子技术、机电一体化、自动控制等专业的一门专业基础课。

主要包括单片机体系结构、指令系统、程序设计、输入输出模块、扩展模块等。

通过本课程的学习,学生应熟悉单片机在信息技术、自动化与工业控制等领域的应用;了解单片机的内部结构、单片机硬件及其工作原理和使用方法,掌握单片机的指令系统、编程方法、单片机应用系统的扩展、以及单片机软件开发方法等。

单片机具有成本低、使用方便、功能强大、应用面广等特点,在工业测控、仪器仪表、机电一体化、家用电器等领域有着广泛的应用。

学习该课程,学生可以掌握单片机的原理及使用方法,掌握单片机应用系统的研制开发的基本技能,为以后走上工作岗位设计实际的单片机系统打好基础。

单片机与接口技术李全利

单片机与接口技术李全利

第一章绪论什么是单片机(MCU)?在一片集成电路芯片上集成中央处理器(CPU)、存储器(ROM/RAM)、I/O接口电路,从而构成了单芯片微型计算机,简称单片机。

➢P14 3、5第二章80C51的结构和原理1、CPUCPU由含运算器(ACC、B、ALU、PSW)、控制器(PC (寻址64KB ROM)、IR、时钟等)及其他寄存器(DPTR、SP)组成。

2、最小系统:电源、时钟(四个周期的概念)、复位电路、存储器设置电路3、存储器4、并行口P1、P2、P3因为内部上拉电阻而被称为“准双向口”。

P0口没有内部上拉电阻,是一个真正的双向口。

➢P47 2、4、5、8第三章80C51的指令系统1、指令格式:操作码 [目的操作数] [,源操作数] [;注释] 2、常用符号:3、寻址方式(7种):4、指令:➢P87 11、13、第四章80C51的汇编语言程序设计1、常用伪指令:2、基本程序结构:顺序、分支、循环、子程序3、一个完整的源程序必备的四个要素:(1)有ORG 0000H,即源程序的机器码从ROM的0000H 单元开始存放。

(2)有END,告知汇编程序,你的源程序结束了。

(3)源程序的主程序框架一定是一个顺序执行的无限循环的程序,运行过程必须构成一个圈。

(4)通常主程序的存放要跳过中断向量区。

实现方法:在0000H单元存放一条转移指令,转向中断向量区后的主程序的真实的入口地址,如START、MAIN等。

4、子程序:现场保护与恢复、参数传递、子程序返回➢P104 例4-5➢P129 6、8、9第五章80C51的中断系统及定时/计数器一、中断系统1、中断响应过程:中断响应→保护现场→中断服务→恢复现场→中断返回2、中断源(5个)、中断优先级(2个)3、中断控制相关寄存器二、定时/计数器1、80C51单片机内设有两个可编程的16位定时器/计数器:T0和T1。

它们既可用以定时,也可用来对外部脉冲计数。

2、相关SFR3、定时/计数器工作方式➢P152 例5-6 例5-7➢P160 1、5、8第六章80C51的串行口1、通信的基本方式可分为并行通信和串行通信2、串行通信依据传输方向和时间的关系分为单工、半双工和全双工的通信方式。

pic单片机原理与接口技术

pic单片机原理与接口技术

pic单片机原理与接口技术PIC(Peripheral Interface Controller)单片机是一种广泛应用于嵌入式系统和微控制器应用的微处理器。

它由Microchip Technology(前身为General Instrument)开发,并具有低成本、低功耗、高性能和丰富的外设接口等特点。

下面将介绍PIC单片机的原理和接口技术。

1. 原理:- CPU(Central Processing Unit):PIC单片机的核心是其CPU,用于执行指令和控制系统的操作。

CPU包括ALU(算术逻辑单元)、寄存器、时钟和控制单元等组件。

- 存储器:PIC单片机具有多种类型的存储器,包括程序存储器(Flash ROM)用于存储程序代码,数据存储器(RAM)用于存储变量和临时数据,以及EEPROM用于非易失性数据存储。

- 外设接口:PIC单片机提供了多种外设接口,包括数字输入/输出端口(GPIO),模拟输入/输出端口(ADC和DAC),串行通信接口(USART、SPI、I2C)等。

这些接口使PIC单片机能够与其他设备进行通信和交互。

- 时钟系统:PIC单片机需要时钟信号来同步其操作。

它可以使用外部晶振或内部时钟源,具体取决于型号和应用需求。

2. 接口技术:- 数字输入/输出(GPIO):PIC单片机具有多个GPIO 引脚,可用于输入和输出数字信号。

通过配置引脚的工作模式(输入或输出)和状态(高电平或低电平),可以实现与外部设备的数字通信。

- 模拟输入/输出(ADC和DAC):PIC单片机具有模拟输入和输出功能,用于处理模拟信号。

ADC(模数转换器)用于将模拟输入信号转换为数字形式,而DAC(数模转换器)用于将数字信号转换为模拟输出信号。

- 串行通信接口:PIC单片机支持多种串行通信接口,如USART、SPI和I2C。

这些接口可用于与其他设备(如传感器、显示器、存储器等)进行数据交换和通信。

- 定时器和计数器:PIC单片机配备了多个定时器和计数器,可用于测量时间、生成精确的时序信号和执行定时操作。

2024版单片机原理及其接口技术胡汉才

2024版单片机原理及其接口技术胡汉才

•单片机概述•单片机内部结构•指令系统与程序设计目录•中断系统与外部扩展技术•接口电路设计与应用实例•调试方法与技巧01单片机概述单片机定义与特点定义特点单片机发展历程及趋势发展历程发展趋势8051系列PIC系列AVR系列ARM系列常见单片机类型介绍应用领域与前景展望应用领域工业自动化、智能仪表、汽车电子、智能家居、医疗设备、通信设备等领域。

前景展望随着物联网、人工智能等技术的不断发展,单片机的应用领域将进一步拓展,市场需求将持续增长。

同时,单片机的性能将不断提高,功能将不断完善,开发工具和支持将更加丰富,使得单片机的设计和开发更加便捷和高效。

02单片机内部结构CPU结构与功能运算器控制器寄存器组控制单片机各部分协调工作暂存数据和地址执行算术和逻辑运算程序存储器存放程序和常数数据存储器存放变量和中间结果特殊功能寄存器控制单片机的特定功能存储器组织与访问方式I/O端口及扩展方法并行I/O端口串行I/O端口I/O端口扩展方法定时器/计数器原理及应用定时器原理计数器原理定时器/计数器应用03指令系统与程序设计指令格式及寻址方式指令格式寻址方式寻址方式是指如何找到操作数的地址或数据。

常见的寻址方式有直接寻址、间接寻址、寄存器寻址、立即寻址等。

数据传送指令用于在单片机内部或外部存储器之间,以及存储器和累加器之间传送数据。

算术运算指令包括加、减、乘、除等基本算术运算,以及求补、比较等扩展运算。

逻辑运算指令用于执行与、或、非等逻辑运算,以及位操作等。

控制转移指令用于改变程序的执行流程,如条件转移、无条件转移、子程序调用等。

常见指令类型介绍汇编语言程序设计基础伪指令与宏定义的可读性和可维护性。

程序结构与设计执行效率。

调试与仿真实用程序设计技巧中断处理中断是单片机处理外部事件的重要方式,合理设计中断处理程序可以提高系统的实时性和响应速度。

资源优化单片机资源有限,需要合理规划和使用资源,如内存、I/O端口、定时器等,以提高系统的性能和稳定性。

单片机接口技术的特点与应用设计分析

单片机接口技术的特点与应用设计分析

两个实体部件 的连线 以及逻辑 线路 。在我国 目
前所掌握的技术条件下来看 ,要想 实现硬件 部
支持才可。
3 结 束语
综上所 述 ,本 文总 结 了单片 机接 口技术
分 的对 接 ,就一定要得到其相应 的软件接 口的 号
2 . 1 P S / 2 接 口硬件结构的基本设计
与通用计算机接 口技术的不同点 ,主要包括人
接 口指 的是具 有不 同特 性 的部件 在一 起 交互交接的部分 。对于 单片机 来说 ,它的接 口 就是 C P U与其 他外 围 电路 以及部件 来进行 交 接的。 而接 口又可 以分为软件部分和硬件部分 。 接 口的软件部分 指的是为了实现信息的交换而 进行设计 的程序 ;解救 的硬件 部分 就是指连接 就能够 被 P S / 2读入 。 同时,键盘 和 鼠标 既能
统的规模与储存容 量等方面进行 了对 比;同时 分析 了单片机接 口技术的硬件结 构设计 、软件
结构设 计以及鼠标接 口设备 的状态转换 ,通过
的功能部件 ,并且主要 面向测控 系统,所以 ,
这些方 面对 单片接 口技术做 出了详细的论述 , 单片机的接 口与通用计算机接 口技术相 比具有 就 能够 实现设 备 的供 电。如 果 把 P 2 . 0与 P 2 . 1 望对广 大读者有所帮助 。 以下三方面的特点 。 的接 口与 P S / 2的 1号 与 5号 接 口进行 针脚 的 第一 ,单 片机 的接 口设 计 更加侧 重 于测 连接 ,就能够数显数据线与 时钟 线的单 片机 与 参考 文献 控接 口和人机接 口。一般常 用的危机的人机界 P S / 2的信号传输。 . [ 1 ] 丁保华 、张有 忠、陈军、孟几喜 . 单 片机 面都是用的是标准键盘和显示器 ,它与单片机 如 果 在 单 片 机 的 引脚 上 连续 按 P 2 . 2至 原理与接 口技术实验教 学改革 与实践 【 J ] .

单片机原理及接口技术(第三版)课件

单片机原理及接口技术(第三版)课件

单片机的模拟输入和输出
模拟输入
单片机可通过模拟输入接口读取 传感器信号、电压或电流等连续 变化的模拟量。
模拟输出
单片机可通过模拟输出接口控制 模拟设备,如音频放大器、电机 驱动器等。
温度传感器
温度传感器是常见的模拟输入设 备,用于测量环境温度。
协议与总线
协议
单片机与外部设备之间的通信通常需要遵循特定的 协议,如SPI、I2C和UART。
2
单片机的发展历程
单片机起源于20世纪70年代,经过几十年的发展,如今已成为电子领域的核心 技术之一。
3
单片机的应用领域
单片机广泛应用于各种领域,包括自动化控制、通信、医疗设备、智能家居等。
单片机的体系结构
核心部件
单片机的核心包括中央处理器 (CPU)、存储器和外设接口。
总线结构
总线是单片机内部各部件之间传 输数据和控制信号的通道。
总线
总线是连接单片机与外部设备的通信线路,如数据 总线、地址总线和控制总线。
单机的存储系统
1
存储器层次结构
单片机的存储器层次结构包括寄存器、缓存、内部存储器和外部存储器,用于存 储程序和数据。
2
存储器类型
常见的存储器类型包括只读存储器(ROM),随机访问存储器(RAM)和闪存。
3
存储器管理
单片机通过存储器管理单元(MMU)来管理和分配存储空间。
单片机的定时/计数功能
定时器
外设接口
单片机的外设接口包括并口、串 口、模拟输入与输出接口,以及 各种专用接口。
单片机的指令系统
指令集
单片机的指令集是其内部固 化的一组指令,用于完成特 定的计算和操作。
指令格式
单片机的指令格式通常包含 操作码、操作数和地址等字 段,用于描述指令的功能和 操作对象。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档