
8255课件,附数码管和矩阵键盘实例[优选课堂].ppt
19页并行输入输出接口芯片并行输入输出接口芯片 8255A1深思虑与与CPUCPU相连的引脚信号:相连的引脚信号:v RESETRESET:复位信号:复位信号v RD: RD: 读信号,读信号,CPUCPU从从8255A8255A读数据读数据v WR WR:写信号,:写信号,CPUCPU向向8255A8255A写数据写数据v CSCS:片选信号:片选信号v D D7 7~D D0 0::8255A8255A数据线数据线v A A1 1、、A A0 0 :端口选择信号端口选择信号8255A8255A一共有一共有3 3个数据端口和个数据端口和1 1个控制端口,个控制端口,共共4 4个端口个端口当当A A1 1、、A A0 0为为0000时,选中时,选中A A端口端口当当A A1 1、、A A0 0为为0101时,选中时,选中B B端口端口当当A A1 1、、A A0 0为为1010时,选中时,选中C C端口端口当当A A1 1、、A A0 0为为1111时,选中控制端口时,选中控制端口2深思虑1.1.8255A8255A与与80888088配合时配合时8255A8255A的的A0A0与与CPUCPU的的A0A0相连,如果相连,如果CSCS的片选地址为的片选地址为60H60H,,则则PA,PB,PC,PA,PB,PC,控制口地址分别为控制口地址分别为60H,61H,62H,63H60H,61H,62H,63H2. 8255A2. 8255A与与80868086配合时配合时因为因为8255A8255A只有只有8 8位数据线,若连位数据线,若连到到CPUCPU的的D0-D7D0-D7,则只能属于偶地,则只能属于偶地址库,若址库,若8255A8255A的的A0A0需与需与CPUCPU的的A1A1相连,假设相连,假设CSCS的片选地址为的片选地址为60H60H则则PA,PB,PC,PA,PB,PC,控制口地址分别为控制口地址分别为60H,62H,64H,66H60H,62H,64H,66H地址总线连接及端口地址计算:地址总线连接及端口地址计算:3深思虑①工作方式0—基本输入输出工作方式 A、B、C端口都可以作为输入或输出数据端口,以无条件传送方式进行输入输出操作。
②工作方式1 —应答式单向输入输出工作方式 A、B端口作为输入或输出数据端口,C口分为两组分别作为A口和B口的应答联络线③工作方式2 —应答式双向输入输出工作方式 只有A口可以工作于方式2,可以双向操作,即可以输入也可以输出数据,C口作为应答信号④位操作工作方式 只有C口可以进行位操作4深思虑方式选择控制字方式选择控制字5深思虑C端口按位端口按位 置置1/置置0 控制字控制字6深思虑对对20H端口的端口的直接寻址,寻址范围(直接寻址,寻址范围(0-0xFF)P157IN AL,20H ;;从地址为从地址为20H的端口输入一个字节到的端口输入一个字节到ALOUT 20H,AL ;将;将AL的内容输出到地址为的内容输出到地址为20H的端口的端口对对200H端口的端口的间接寻址,寻址范围(间接寻址,寻址范围(0-0xFFFF)MOV DX,200H ;;将端口地址送将端口地址送DX寄存器寄存器IN AL,DX ;;从地址为从地址为200H的端口输入一个字节到的端口输入一个字节到ALOUT DX,AL ;将;将AL的内容输出到地址为的内容输出到地址为200H的端口的端口7深思虑设某片8255A的端口地址是60H~63H,工作于方式0,端口A和端口C高4位输出,端口B和端口C低4位输入,设置该8255A的方式选择控制字。
8深思虑已知8255A的端口地址为02E0H-02E3H,请实现对端口C的PC2置位和PC4复位9深思虑假设8255A控制口地址为21BH,请编程实现按键按下,对应发光二极管亮10深思虑第第0行行第第0列列10KΩ+5V第第7行行第第7列列8 82 25 55 5A APA0PA0PA1PA1PA2PA2PA7PA7…… ………… ……PB0PB0PB1PB1PB2PB2PB7PB7……v非编码键盘的行扫描法识别按键非编码键盘的行扫描法识别按键11深思虑•键盘扫描程序第一步:判断有无按键按下 使A端口输出00H,读入B端口的数据,如果是FFH,则没有按键按下,继续第一步否则进行第二步第二步:行扫描法识别按键(1)使A端口的PA0输出低电平,其余为高电平2)观察列线的状态3)如果某条列线变为低电平,则第0行与该列相交位置上的键被按下;否则第0行没有键按下4)使PA1输出低电平,其余为高电平5)观察列线的状态判断是否有键按下6)如此逐行扫描下去,直到最后一行 通过分析可知,8255A的端口A工作在方式0的输出,端口B工作在方式0的输入,端口C不用8255A端口的地址如下: A端口:60H B端口:62H C端口:64H 控制口:66H12深思虑•8255的初始化及检测有无按键按下: PORTA EQU 60H PORTB EQU 62H PORTC EQU 64H PORTCN EQU 66H MOV DX,PORTCN ;置8255A端口A、B工作在方式 0 MOV AL,10000010B ;端口A为输出口,端口B为输入口 OUT DX,ALWAITK:MOV DX,PORTA ;等待键闭合 MOV AL,00 ;行码送全“0” OUT DX,AL MOV DX,PORTB ;读列码 IN AL,DX CMP AL,0FFH JZ WAITK ;无键按下,继续等待 13深思虑•行扫描法识别按键 MOV BL,0 ;扫描键盘矩阵,送键号初值 MOV BH,11111110B ;置初始扫描模式-行码送FEH MOV CX,8FNDROW: MOV AL,BH ;送行码 MOV DX,PORTA OUT DX,AL ROL BH,1 ;修改行码 MOV DX,PORTB ;读列码 IN AL,DX CMP AL,0FFH JNZ FNDCOL ;有键按下,查列号 ADD BL,8 ;无键按下,指向下一行键号初值 LOOP FNDROW ;8行扫描未完,送下一行扫描码 JMP DONE ;8行扫描完,无键按下FNDCOL: ROR AL,1 ;查哪一列有键按下 JNC RIGHT ;查到按下键的键号 INC BL ;键号加1,查下一列 JMP FNDCOLRIGHT: … ;按下键的编号在BL中DONE: … ;无键闭合 14深思虑共阴极共阴极:公共端接公共端接低电平低电平“L”发光段接发光段接高电平高电平“H”共阳极共阳极:公共端接公共端接高电平高电平“H”发光段接发光段接低电平低电平“L”分类:分类:h—小数点小数点*3. LED数码管数码管a ab bc cd de ef fg g+5V+5V共阴极的情况下共阴极的情况下定义字形码:定义字形码:FECDBA9876543210 15深思虑8位7段数码管动态显示电路图16深思虑 显示系统的具体工作步骤如下:显示系统的具体工作步骤如下:a a、、 设要显示的初始位码设要显示的初始位码i i==0 0;;b b、、 送第送第i i位的段信号;位的段信号;c c、、 送第送第i i位的位信号;位的位信号;d d、、 延时;延时;e e、、 i i++1 1-->i >if f、、 如果如果i i小于小于8 8,转,转b bg g、、 8 8位数据显示结束。
位数据显示结束17深思虑 程序如下:程序如下:a_port equ 80h;定义;定义8255A的四个端口的四个端口b_port equ 82hc_port equ 84hctrl_port equ 86h……datasegment;定义数据段;定义数据段tab1db 3FH,06H,5BH,4FH,…,;;定义段码表定义段码表dispbuffdb 2,0,0,6,1,2,0,9 ;定义显示缓冲区;定义显示缓冲区dataends……18深思虑displayproc ;显示子程序,数据在;显示子程序,数据在dispbuff中中…..;保护现场;保护现场mov bx,offset tab1mov si,offset dispbuff;步骤;步骤amov cx,8mov ah,01disp1:mov al,[si];步骤;步骤bxlatout a_port,almov al,ah;步骤;步骤cout b_port,alcall delay5ms;步骤;步骤d,延时,延时5msshl ah,1;步骤;步骤einc siloop disp1……;恢复现场;恢复现场retdisplayendp19深思虑。












