《最新单片机课程设计项目一LED接口PPT课件》由会员分享,可在线阅读,更多相关《最新单片机课程设计项目一LED接口PPT课件(18页珍藏版)》请在金锄头文库上搜索。
1、单片机课程设计项目一LED接口n实训内容:实训内容:n1.熟悉和掌握单片机与熟悉和掌握单片机与LED七段显示器硬件连七段显示器硬件连接电路的设计;接电路的设计;n2.设计一字符表演程序,使字符设计一字符表演程序,使字符0F在在DJ-598KC实验箱上的实验箱上的6位位LED显示器上实现自动显示器上实现自动顺序逐位循环显示和全显示。顺序逐位循环显示和全显示。n3.编程将片内编程将片内30H单元的两位单元的两位16进制数转换成进制数转换成三位十进制数三位十进制数,并用并用DJ-598KC实验箱上的左边两位实验箱上的左边两位LED显示两位显示两位16进制数,用右边三位进制数,用右边三位LED上显示转
2、上显示转换的三位十进制值。换的三位十进制值。可编程并行可编程并行I/O接口接口8255介绍介绍8255A的逻辑结构和信号引脚的逻辑结构和信号引脚n 8255A是一个是一个40引脚的双列直插式集成电路芯片,引脚的双列直插式集成电路芯片,其逻辑结构如其逻辑结构如下图下图所示。所示。n按功能可把按功能可把8255A分为三个逻辑电路部分,即:分为三个逻辑电路部分,即:n口电路、总线接口电路和控制逻辑电路。口电路、总线接口电路和控制逻辑电路。n口电路口电路n8255A共有三个共有三个8位口,其中位口,其中A口和口和B口是单纯的数口是单纯的数据口,供数据据口,供数据I/O使用。而使用。而C口则既可以作数据
3、口,又可口则既可以作数据口,又可以作控制口使用,用于实现以作控制口使用,用于实现A口(由口(由PC7PC4提供)提供)和和B口(由口(由PC3PC0提供)的控制功能。提供)的控制功能。8255A的逻辑结构和信号引脚的逻辑结构和信号引脚总线接口电路总线接口电路n总线接口电路用于实现总线接口电路用于实现8255A和单片微机的信号连接。和单片微机的信号连接。n其中包括:其中包括:数据总线缓冲器;数据总线缓冲器;读读/写控制逻辑。写控制逻辑。n控制逻辑电路控制逻辑电路n控制逻辑电路包括控制逻辑电路包括A组控制和组控制和B组控制,合在一起构成组控制,合在一起构成8位控位控制寄存器。用于存放各口的工作方式
4、控制字。制寄存器。用于存放各口的工作方式控制字。n8255A工作方式及数据工作方式及数据I/O操作操作n8255A的工作方式的工作方式8255A共有三种工作方式:共有三种工作方式:n方式方式0基本输入基本输入/输出方式输出方式方式方式1选通输入选通输入/输出方式输出方式方式方式2双向数据传送方式双向数据传送方式n8255A的数据的数据I/O操作操作n8255A的数据的数据I/O操作有两种工作方式:操作有两种工作方式:数据输入操作;数据输入操作;数据输出操作数据输出操作8255A控制字及初始化编程控制字及初始化编程n8255A是可编程接口芯片,共是可编程接口芯片,共有两种控制字,即有两种控制字,
5、即8255A工作方式工作方式控制字和控制字和C口位置位口位置位/复位控制字。复位控制字。n工作方式控制字工作方式控制字n工作方式控制字用于确定各口工作方式控制字用于确定各口的工作方式及数据传送方向。其格的工作方式及数据传送方向。其格式如右图所示。式如右图所示。nC口位置位口位置位/复位控制字复位控制字nC口的每一位都可以进行置位或口的每一位都可以进行置位或复位。对复位。对C口各位的置位或复位是由口各位的置位或复位是由位置位位置位/复位控制字进行的。复位控制字进行的。8255A的位置位的位置位/复位控制字格式如右图所复位控制字格式如右图所示。示。nD7是该控制字的特征位,其状态固是该控制字的特征
6、位,其状态固定为定为0。在使用中,控制字每次只能。在使用中,控制字每次只能对对C口中的一位进行置位或复位。口中的一位进行置位或复位。工作方式控制字工作方式控制字C口位置位口位置位/复位控制字复位控制字8255A与与80C51的接口电路实例的接口电路实例由图分析:由图分析:8255的的CS采用部分译码线选法连接采用部分译码线选法连接PA地址为地址为7FFCH(A15=0,A1=0,A0=0)PB地址为地址为7FFDH(A15=0,A1=0,A0=1)PC地址为地址为7FFEH(A15=0,A1=1,A0=0)控制寄存器地址为控制寄存器地址为7FFFH(A15=0,A1=1,A0=1)DJ-519
7、8KC实验箱实验箱8255的的I/O口地址分配口地址分配n ORG 0100Hn MOV SP,#50H START:MOV R7, #0FFHn MEMS:INC R7n MOV A,R7n MOV DPTR, #TABLEn MOVC A, A+DPTRn MOV 20H,An ACALL SOX0n CJNE R7, #0FH, MEMSn MOV R7,#0nMEMS2:MOV A,R7n MOV DPTR, #TABLEn MOVC A, A+DPTRn MOV 20H,An ACALL SOX1n INC R7n CJNE R7, #10H, MEMS2n SJMP START O
8、RG 01A0HnSOX0:MOV P2,#0FFHn MOV DPTR,#0FF23H ; 8255初始化初始化n MOV A,#88Hn MOVX DPTR,An MOV A,20Hn MOV R0,# 21H ;字型段码口地址字型段码口地址n MOV R1,# 20H ;字型位码口地址字型位码口地址n MOVX R0,An MOV A,# 0C0Hn MOVX R1,An MOV R2,#20Hn LCALL DELYn RET SOX1:MOV P2,#0FFH MOV DPTR,#0FF23H MOV A,#88H MOVX DPTR,A MOV A,20H MOV R0,# 21H
9、 MOV R1,# 20H MOVX R0,A MOV A,# 0FE H SOX2: MOVX R1,A MOV R2,#20H LCALL DELY RL A CJNE A,#0BFH,SOX2 RET DELY:PUSH 02H DEL2:PUSH 02H DEL3:PUSH 02H DEL4:DJNZ R2,DEL4 POP 02H DJNZ R2,DEL3 POP 02H DJNZ R2,DEL2 POP 02H DJNZ R2,DELY RETTABLE:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB
10、 0C6H,0A1H,86H,8EH END0f160f16个字符自动循环显示参考程序:个字符自动循环显示参考程序:6位位LED全显示全显示子程序子程序七段字符七段字符循环显示循环显示子程序子程序将片内将片内30H单元的两位单元的两位16进制数转换成三位十进制数参考程序:进制数转换成三位十进制数参考程序: nORG0000HnLJMPSTARTnORG0100H;转换程序段转换程序段START:MOVR0,#30HnMOVA,R0nMOVB,#64H;取百位数取百位数nDIVABnINCR0nMOVR0,AnMOVA,BnMOVB,#0AH;取十位数取十位数nDIVABnINCR0nMOVR0
11、,AnMOVA,B;取个位数取个位数nINCR0nMOVR0,A;8255初始化初始化DISP:MOVDPTR,#0FF23HMOVA,#88HMOVXDPTR,A;显示两位显示两位16进制数进制数LOOP:MOVR0,#30HMOVA,R0ANLA,#0F0HSWAPAMOVDPTR,#SEGMOVCA,A+DPTRMOVDPTR,#0FF21HMOVXDPTR,AMOVA,#0DFHMOVDPTR,#0FF20HMOVXDPTR,AACALLDLMOVA,R0ANLA,#0FHMOVDPTR,#SEGMOVCA,A+DPTR;LED显示程序段显示程序段nMOVDPTR,#0FF21HnMO
12、VXDPTR,AnMOVA,#0EFHnMOVDPTR,#0FF20HnMOVXDPTR,AnACALLDLn;显示;显示3位十进制数位十进制数nINCR0nMOVR3,#0FBHnLD0:MOVA,R3nMOVDPTR,#0FF20HnMOVXDPTR,AnMOVDPTR,#SEGnMOVA,R0nDIR0:MOVCA,A+DPTRnMOVDPTR,#0FF21HnDIR1:MOVXDPTR,AnACALLDLnINCR0n(接下页)接下页)MOVA,R3JNBACC.0,LOOPRRAMOVR3,ALJMPLD0;延时子程序;延时子程序DL:MOVR6,#01FHDELAY2:MOVR7,#018HDELAY1:DJNZR7,DELAY1DJNZR6,DELAY2RET;字符;字符09的七段的七段LED代码表代码表SEG:DB0C0H,0F9H,0A4HDB0B0H,99H,92H,82HDB0F8H,80H,90H,88H,83HDB0C6H,0A1H,86H,8EHEND