一.实验要求
利用8031串行口,和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。
二.实验目的
1.掌握8031串行口方式0工作方式及编程方法。
2.掌握利用串行口扩展I/O通道的方法。
三.实验电路及连线
RXD接DATAIN,TXD接DCLK。
四.实验说明
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。
五.实验程序框图 六.实验程序TIMER EQU 01H ORG 0000H AJMP START ORG 000BH ;T0 中断程序入口地址 AJMP INT_T0 ORG 0040H START: MOV SP,#60H MOV TMOD,#01H ;T0 方式 1 MOV TL0,#00H ;延时 50mS 的常数 MOV TH0,#4BH MOV R0,#0H MOV TIMER,#20 MOV SCON,#00H ;置串口工作方式 0 CLR TI CLR RI SETB TR0 ;开中断 SETB ET0 SETB EA SJMP $ INT_T0: ;T0 中断子程序 PUSH ACC ;保护现场 PUSH PSW CLR EA ;关中断 CLR TR0 MOV TL0,#00H ;延时 50mS 的常数 MOV TH0,#4BH SETB TR0 DJNZ TIMER,EXIT MOV TIMER,#20 ;延时一秒的常数 MOV DPTR,#DATA ;置表格基址 MOV A,R0 ;置表格偏移量 MOVC A,@A+DPTR ;读表格数据 CLR TI MOV SBUF,A ;串行发送数据 INC R0 CJNE R0,#0AH,EXIT ;判断是否到表尾 MOV R0,#00H ;调整表格偏移量 EXIT: SETB EA ;开中断 POP PSW POP ACC ;恢复现场 RETI ;数码管显示常数表 DATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H ;0 1 2 3 4 5 6 7 8 9 END |