《单片机及接口技术并行扩展精选PPT.ppt》由会员分享,可在线阅读,更多相关《单片机及接口技术并行扩展精选PPT.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机及接口技术并行扩展第1页,此课件共24页哦单单片片机机并并行行扩扩展展1.1.用并行用并行I/OI/O口扩展键盘电路口扩展键盘电路 MCUMCUI I/O OV VCCCC独立式键盘独立式键盘R RM MC CU UV VCCCC行列式键盘行列式键盘列列行行R RP1.0P1.1P1.2P2.0P2.1P2.2(1)(1)键盘电路键盘电路第2页,此课件共24页哦单单片片机机并并行行扩扩展展(2)键盘原理键盘原理(3)(3)按键的抖动问题按键的抖动问题:按键在稳定前有抖动过程,因此:按键在稳定前有抖动过程,因此需要消除抖动影响。采用延时再读按键状态的方法。需要消除抖动影响。采用延时再读按键
2、状态的方法。行列式键盘原理行列式键盘原理:a.列线和行线不相连;列线和行线不相连;b.列线输出,行线输入。列线输出,行线输入。c.逐列扫描,再检查行线状态以得知是否按逐列扫描,再检查行线状态以得知是否按下了哪个键。下了哪个键。独立式键盘原理:独立式键盘原理:第3页,此课件共24页哦(4)键盘操作方式:查询和中断键盘操作方式:查询和中断中断操作方式中断操作方式单单片片机机并并行行扩扩展展MCUMCUI I/O OV VCCCC列列行行&INT(INT(平平)R R操作:列扫描,若有中断请求,说明扫描操作:列扫描,若有中断请求,说明扫描列有键按下,则查询哪一行的值为列有键按下,则查询哪一行的值为0
3、第4页,此课件共24页哦(5)键盘应用举例键盘应用举例a.a.硬件设计硬件设计:单单片片机机并并行行扩扩展展MCUMCUV VCCCC独立式键盘独立式键盘P1.0P1.0P1.1P1.1P1.2P1.2R R例例1:用:用80C51P1口构成一个口构成一个3键的独立式键盘键的独立式键盘第5页,此课件共24页哦IO51K8:MOV P1,#0FFH ;IO51K8:MOV P1,#0FFH ;置置P1P1口为输入口为输入 MOV A,P1 MOV A,P1 ;查询;查询P1P1口状态口状态 JNB ACC.0,PROM0JNB ACC.0,PROM0 JNB ACC.1,PROM1 JNB AC
4、C.1,PROM1 JNB ACC.2,PROM2 JNB ACC.2,PROM2 SJMP IO51K SJMP IO51K/*/*以上均为键盘输入处理程序以上均为键盘输入处理程序*/键盘管理程序包括键输键盘管理程序包括键输入处理程序和键操作程入处理程序和键操作程序序 PROM0PROM0:LJMP IO51K8 LJMP IO51K8PROM1PROM1:LJMP IO51K8 LJMP IO51K8PROM2PROM2:LJMP IO51K8 LJMP IO51K8/*/*以上为键操作程序以上为键操作程序*/b.b.软件设计(键盘管理程序)软件设计(键盘管理程序)单单片片机机并并行行扩扩
5、展展第6页,此课件共24页哦IO51K8IO51K8:MOV P1,#0FFHMOV P1,#0FFH MOV A,P1 ;MOV A,P1 ;查询查询P1P1口状态口状态 CPL ACPL A JZ IO51K8 JZ IO51K8 LCALL D10MS ;LCALL D10MS ;调延时子程序,调延时子程序,延时延时10ms 10ms MOV A,P1 ;MOV A,P1 ;再次查询再次查询P1P1口状态口状态 JNB ACC.0,PROM0JNB ACC.0,PROM0 JNB ACC.1,PROM1 JNB ACC.1,PROM1 JNB ACC.2,PROM2 JNB ACC.2,
6、PROM2 SJMP IO51K8 SJMP IO51K8单单片片机机并并行行扩扩展展练习练习:在上述程序的基础上增加按键的消抖处理。:在上述程序的基础上增加按键的消抖处理。第7页,此课件共24页哦单单片片机机并并行行扩扩展展PGM0PGM0:LJMP LJMP IO51K8PGM1PGM1:LJMP LJMP IO51K8PGM2PGM2:LJMP LJMP IO51K8D10MSD10MS:;延时子程序;延时子程序 RETRET 第8页,此课件共24页哦2.并行并行I/O扩展的扩展的LED显示电路显示电路1 1)LEDLED显示器由显示器由8 8位发光二极管组成位发光二极管组成 g ga
7、ab bf fc ce ed ddpdpLEDLED显示器显示器单单片片机机并并行行扩扩展展共阴极共阴极a ab bdpdpa ab bdpdp共阳极共阳极V VCCCC第9页,此课件共24页哦2 2)LED LED 显示器的段码表显示器的段码表 如如共阴极,显示数码共阴极,显示数码2由由LEDLED显示器的图可看出:要显示显示器的图可看出:要显示2 2,需从发光二极管,需从发光二极管a,b,d,e,ga,b,d,e,g的非共的非共极端输入极端输入1 1,并从发光二极管,并从发光二极管c,f,dpc,f,dp的非共极段输入的非共极段输入0 0,因此从,因此从LEDLED显示器的显示器的非共极段
8、输入的数值为非共极段输入的数值为0101 1011B,0101 1011B,即即2 2的段码为:的段码为:5BH 5BH dpdpg gf fe ed dc cb ba a0 01 10 01 11 10 01 11 1单单片片机机并并行行扩扩展展g ga ab bf fc ce ed ddpdpa ab bdpdpCOMCOM第10页,此课件共24页哦练习:共阳极练习:共阳极LED LED 显示器数码显示器数码2 2的段码的段码 要显示要显示2 2,需从发光二极管,需从发光二极管a,b,d,a,b,d,e,ge,g的非共极端输入的非共极端输入0 0,并从发光二极,并从发光二极管管c,f,dp
9、c,f,dp的非共极段输入的非共极段输入1 1,因此从,因此从LEDLED显示器的非共极段输入的数值为显示器的非共极段输入的数值为1010 1010 0100B,0100B,即即2 2的段码为:的段码为:A4H A4H dpdpg gf fe ed dc cb ba a1 10 01 10 00 01 10 00 0单单片片机机并并行行扩扩展展g ga ab bf fc ce ed ddpdpa ab bdpdpV VCCCC(+)(+)COMCOM第11页,此课件共24页哦单单片片机机并并行行扩扩展展3)LED显示器的电路设计显示器的电路设计(1)LED显示器静态显示方式显示器静态显示方式
10、8 8 0 0 C C 5 5 1 1I I/O O端端口口驱驱动动器器共极端共极端(COM)(COM)非共极端非共极端原原理理:每每个个LEDLED显显示示器器的的共共极极端端固固定定接接电电源源或或地地,非非共共极极端端接接单单片片机机的的/O/O端端口口,通通过过从从8 8个个端端口口位位送送段段码码来来控控制制显显示示器器显显示示数码。数码。因因为为COMCOM端端状状态态不不能能改改变变,所所以以LEDLED显显示示器器不不能能共共用用数数据据线线,因因而而每每个个LEDLED显显示示器器占占用用一一个个端端口。口。第12页,此课件共24页哦单单片片机机并并行行扩扩展展问题:同一个问
11、题:同一个I/O口能否用以控制两个口能否用以控制两个LED显示器?显示器?当输入其中一个显示器的段码时,另一个显示器也同当输入其中一个显示器的段码时,另一个显示器也同时有显示,因此一个时有显示,因此一个I/O端口只能用于控制端口只能用于控制1个个LED显示显示器,器,1台台80C51单片机只能控制单片机只能控制4个个LED显示器。显示器。#0 8 8 0 0 C C 5 5 1 1I I/O O端端口口驱驱动动器器共极端共极端(COM)(COM)非共极端非共极端#1第13页,此课件共24页哦单单片片机机并并行行扩扩展展80C5180C51P0.0P0.1P0.2P0.3P0.4P0.5P0.6
12、P0.7驱驱动动器器P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7驱驱动动器器#1#0编程举例:分别用编程举例:分别用P0和和P1口控制口控制#0和和#1两个共阴极两个共阴极LED显示器。显示器。设有两个设有两个9以内的无符号整数分别存放在片内以内的无符号整数分别存放在片内RAM30H和和31H两个单元,两个单元,编写程序显示这两个数。已知共阴极段编写程序显示这两个数。已知共阴极段码表为:码表为:01234567893FH06H5BH4FH66H6DH7DH07H7FH6FH第14页,此课件共24页哦单单片片机机并并行行扩扩展展解:用查表程序解:用查表程序TAB:DB 3FH
13、,06H,5BH,4FH,66H ;TAB:DB 3FH,06H,5BH,4FH,66H ;段码表段码表 DB 6DH,7DH,07H,7FH,6FHDB 6DH,7DH,07H,7FH,6FHMOV DPTR,#TABMOV DPTR,#TABMOV A,30HMOV A,30HMOVC A,A+DPTR MOVC A,A+DPTR MOV P1,AMOV P1,AMOV A,31HMOV A,31HMOVC A,A+DPTR MOVC A,A+DPTR MOV P0,AMOV P0,ASJMP$SJMP$第15页,此课件共24页哦单单片片机机并并行行扩扩展展(2)LED显示器动态显示方式显
14、示器动态显示方式为节省端口资源,若能在时刻仅一个为节省端口资源,若能在时刻仅一个LEDLED显示器能显示,显示器能显示,其余其余-1 LED-1 LED显示器都不能显示,则能用一个端口控显示器都不能显示,则能用一个端口控制制n n个个LEDLED显示器。显示器。方法:用另外的方法:用另外的I/OI/O端口位控制端口位控制LEDLED显示器的共极端,使显示器的共极端,使在某时刻仅有一个在某时刻仅有一个LEDLED显示器的共极端有效。显示器的共极端有效。第16页,此课件共24页哦单单片片机机并并行行扩扩展展80C5180C51P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4
15、P1.4P1.5P1.5P1.6P1.6P1.7P1.7驱驱动动器器P3.0P3.0P3.1P3.1驱驱动动器器#0#1例如,设例如,设#0和和#1两个两个LED显示器均为共阴显示器均为共阴极显示器。极显示器。MOVA,#0FEHMOVP3,AMOVP1,#0的段码的段码RLAMOVP3,AMOVP1,#1的段码的段码第17页,此课件共24页哦原理原理:每个每个LEDLED显示器的公共端各用一个端口位控制(显示器的公共端各用一个端口位控制(控制控制字字),用),用8 8个公共的端口位送数据(个公共的端口位送数据(段码段码)。通过扫描的方)。通过扫描的方式(逐个送),使式(逐个送),使n n个个
16、LEDLED显示器的公共端逐个有效,同时显示器的公共端逐个有效,同时从公共的数据线(非公共端)送段码,从而使从公共的数据线(非公共端)送段码,从而使n n个个LEDLED显显示器逐个显示数字。示器逐个显示数字。用两个端口可以使用用两个端口可以使用8 8个个LEDLED显示器显示器用三个端口可以使用用三个端口可以使用1616个个LEDLED显示器显示器用四个端口可以使用用四个端口可以使用2424个个LEDLED显示器显示器 单单片片机机并并行行扩扩展展LEDLEDLEDLED显示器动态显示方式:各显示器逐个显示(不同时显示)显示器动态显示方式:各显示器逐个显示(不同时显示)显示器动态显示方式:各
17、显示器逐个显示(不同时显示)显示器动态显示方式:各显示器逐个显示(不同时显示)一段时间,然后熄灭在视觉上产生连续显示的错觉一段时间,然后熄灭在视觉上产生连续显示的错觉一段时间,然后熄灭在视觉上产生连续显示的错觉一段时间,然后熄灭在视觉上产生连续显示的错觉 。第18页,此课件共24页哦练习练习:设:设有有4 4个个1010以内的数存放在片内以内的数存放在片内RAM RAM 首址为首址为50H50H的数的数据块中,将该数据块的值显示出来据块中,将该数据块的值显示出来 。设采用共阴极。设采用共阴极LEDLED显示显示器,已有延时器,已有延时1ms1ms的子程序的子程序DELAYDELAY。80C51
18、P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7驱驱动动器器P3.0P3.1P3.2P3.3驱驱动动器器LED显示器动态显示方式显示器动态显示方式单单片片机机并并行行扩扩展展第19页,此课件共24页哦解解:LEDLED显显示示器器程程序序一一般般采采用用查查表表的的方方法法,将将段段码码表表放放在在ROMROM中中取数据到取数据到A A中中送控制字送控制字以以A A为偏移量,查段码表,为偏移量,查段码表,得到相应的段码得到相应的段码输出段码,显示数据输出段码,显示数据延时延时循环结束?循环结束?YESYES数据块指针加数据块指针加1 1控制字左移一位控制字左移一位NONO结束结
19、束设指向数据块的指针设指向数据块的指针设控制字初始值设控制字初始值设循环次数设循环次数开始开始设段码表的首地址设段码表的首地址算法算法 单单片片机机并并行行扩扩展展第20页,此课件共24页哦程序程序单单片片机机并并行行扩扩展展LPLPLPLP:MOV AMOV AMOV AMOV A,R0 R0 R0 R0 ;取数到;取数到;取数到;取数到A A A A中中中中 MOV P3MOV P3MOV P3MOV P3,R2 R2 R2 R2 ;送控制字;送控制字;送控制字;送控制字 MOVC AMOVC AMOVC AMOVC A,A+DPTR A+DPTR A+DPTR A+DPTR ;查相应的段
20、码;查相应的段码;查相应的段码;查相应的段码 MOV P1MOV P1MOV P1MOV P1,A A A A ;送出段码;送出段码;送出段码;送出段码 LCALL DELAYLCALL DELAYLCALL DELAYLCALL DELAY ;调延时子程序;调延时子程序;调延时子程序;调延时子程序 INC R0 INC R0 INC R0 INC R0 ;数据块指针加;数据块指针加;数据块指针加;数据块指针加1 1 1 1 MOV A MOV A MOV A MOV A,R2 R2 R2 R2 RL A RL A RL A RL A MOV R2 MOV R2 MOV R2 MOV R2,A
21、 A A A ;控制字左移一位;控制字左移一位;控制字左移一位;控制字左移一位 DJNZ R3DJNZ R3DJNZ R3DJNZ R3,LP LP LP LP ;若循环没结束,转下一次循环;若循环没结束,转下一次循环;若循环没结束,转下一次循环;若循环没结束,转下一次循环 HLT HLT HLT HLT ;若循环结束,停机;若循环结束,停机;若循环结束,停机;若循环结束,停机 TAB TAB TAB TAB:DB 3FHDB 3FHDB 3FHDB 3FH,06H06H06H06H,5BH5BH5BH5BH,4FH4FH4FH4FH,66H66H66H66H,6DH6DH6DH6DH,7DH
22、7DH7DH7DH DB 07H DB 07H DB 07H DB 07H,7FH7FH7FH7FH,6FH6FH6FH6FH,77H77H77H77H,7CH7CH7CH7CH,39H39H39H39H,5EH5EH5EH5EH DB 79H DB 79H DB 79H DB 79H,71H 71H 71H 71H ;段码表,;段码表,;段码表,;段码表,0F0F0F0F第21页,此课件共24页哦程序程序单单片片机机并并行行扩扩展展 MOV R0 MOV R0 MOV R0 MOV R0,#50H#50H#50H#50H ;R0R0R0R0指向数据块指向数据块指向数据块指向数据块 MOV R
23、2MOV R2MOV R2MOV R2,#FEH#FEH#FEH#FEH ;设控制字初始值;设控制字初始值;设控制字初始值;设控制字初始值1111 1110B1111 1110B1111 1110B1111 1110B MOV R3 MOV R3 MOV R3 MOV R3,4 4 4 4 ;设循环次数;设循环次数;设循环次数;设循环次数 MOV DPTRMOV DPTRMOV DPTRMOV DPTR,#TAB#TAB#TAB#TAB ;设段码表的首地址;设段码表的首地址;设段码表的首地址;设段码表的首地址 LPLPLPLP:MOV AMOV AMOV AMOV A,R0 R0 R0 R0
24、;取数到;取数到;取数到;取数到A A A A中中中中 MOV P3MOV P3MOV P3MOV P3,R2 R2 R2 R2 ;送控制字;送控制字;送控制字;送控制字 MOVC AMOVC AMOVC AMOVC A,A+DPTR A+DPTR A+DPTR A+DPTR ;查相应的段码;查相应的段码;查相应的段码;查相应的段码 MOV P1MOV P1MOV P1MOV P1,A A A A ;送出段码;送出段码;送出段码;送出段码 LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY ;调延时子程序,可延时;调延时子程序,可延时;调延时子程序,
25、可延时;调延时子程序,可延时1ms1ms1ms1ms INC R0 INC R0 INC R0 INC R0 ;数据块指针加;数据块指针加;数据块指针加;数据块指针加1 1 1 1 MOV A MOV A MOV A MOV A,R2 R2 R2 R2 RL A RL A RL A RL A MOV R2 MOV R2 MOV R2 MOV R2,A A A A ;控制字左移一位;控制字左移一位;控制字左移一位;控制字左移一位 DJNZ R3DJNZ R3DJNZ R3DJNZ R3,LP LP LP LP ;若循环没结束,转下一次循环;若循环没结束,转下一次循环;若循环没结束,转下一次循环;
26、若循环没结束,转下一次循环 HALT HALT HALT HALT ;若循环结束,停机;若循环结束,停机;若循环结束,停机;若循环结束,停机 TAB TAB TAB TAB:DB 3FHDB 3FHDB 3FHDB 3FH,06H06H06H06H,5BH5BH5BH5BH,4FH4FH4FH4FH,66H66H66H66H,6DH6DH6DH6DH,7DH7DH7DH7DH DB 07H DB 07H DB 07H DB 07H,7FH7FH7FH7FH,6FH6FH6FH6FH,77H77H77H77H,7CH7CH7CH7CH,39H39H39H39H,5EH5EH5EH5EH DB 7
27、9H DB 79H DB 79H DB 79H,71H 71H 71H 71H ;段码表,;段码表,;段码表,;段码表,0F0F0F0F第22页,此课件共24页哦程序程序思考:思考:1 1)用三个)用三个LEDLED显示器显示十进制数显示器显示十进制数328328 2 2)4*44*4键盘,键盘号键盘,键盘号0-150-15,用,用LEDLED显示器显示闭合键的键号显示器显示闭合键的键号 单单片片机机并并行行扩扩展展 MOV R0 MOV R0,#50H#50H ;R0R0指向数据块指向数据块 MOV R2MOV R2,#FEH#FEH ;设控制字初始值;设控制字初始值1111 1110B11
28、11 1110B MOV R3 MOV R3,4 4 ;设循环次数;设循环次数 MOV DPTRMOV DPTR,#TAB#TAB ;设段码表的首地址;设段码表的首地址 LPLP:MOV AMOV A,R0 R0 ;取数到;取数到A A中中 MOV P3MOV P3,R2 R2 ;送控制字;送控制字 MOVC AMOVC A,A+DPTR A+DPTR ;查相应的段码;查相应的段码 MOV P1MOV P1,A A ;送出段码;送出段码 LCALL DELAY LCALL DELAY ;调延时子程序,可延时;调延时子程序,可延时1ms1ms INC R0 INC R0 ;数据块指针加;数据块指
29、针加1 1 MOV A MOV A,R2 R2 RL A RL A MOV R2 MOV R2,A A ;控制字左移一位;控制字左移一位 DJNZ R3DJNZ R3,LP LP ;若循环没结束,转下一次循环;若循环没结束,转下一次循环 HALT HALT ;若循环结束,停机;若循环结束,停机 TAB TAB:DB 3FHDB 3FH,06H06H,5BH5BH,4FH4FH,66H66H,6DH6DH,7DH7DH,07H07H DB 7FH DB 7FH,6FH6FH,77H77H,7CH7CH,39H39H,5EH5EH,79H79H,71H71H ;段码表,;段码表,0F0FEND END 第23页,此课件共24页哦本节小结本节小结第24页,此课件共24页哦