- 17
- 0
- 约1.08千字
- 约 2页
- 2020-10-05 发布于浙江
- 举报
实验四(一) 串并转换实验(2学时)
二、实验内容
(1)在实验箱上完成:
利用8031串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个共阳极数码显示器,在数码显示器上循环显示8031串行口输出的0~9这10个数字
三、实验说明
串行口工作在方式0时,可通过外接移位存储器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。
共阳极数码管的0~9的显示码如下0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09
四、实验步骤
⑴将串并单元DATA插孔接P3.0插孔。
⑵将串并单元CLK插孔接P3.1插孔。
⑶将串并单元CLR插孔接地址线A9下方CLR插孔。上电时对164复位。
⑷执行程序
⑸在串并单元数码管上循环显示0~9这10个数字。
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
uint num,i=0;
uchar code Table[]={0x03,0x9F,0x25,0x0D,0x99,
0x49,0x41,0x1F,0x01,0x09};
void main()
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
SCON=0x00;
while(1);
}
void T0_() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==10)
{
num=0;
i++;
if(i==10)
{
i=0;
}
SBUF=~Table[i];
}
}
原创力文档

文档评论(0)