51单片机串-并转换实验
发布时间:2008/5/27 0:00:00 访问次数:891
    
    
    一.实验要求
    利用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
    
    
    
    
    一.实验要求
    利用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
    
    
上一篇:51单片机定时器实验