C8051F应用笔记 C8051F单片机笑傲江湖 使用74LS164将C8051F的串口输出扩为并口输出

使用74LS164将C8051F的串口输出扩为并口输出

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

系统功能

   使用74LS164将AVR的串口输出扩为并口输出。


硬件设计

串行输出扩展为并行输出芯片74LS164控制电路原理图


软件设计

下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!

//目标系统: 基于C8051F单片机
//应用软件: Silicon IDE / Keil

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
使用P2口的LED指示灯查看MCU自己从模拟串口发送的数据。
----------------------------------------------------------------------
硬件连接:
将P2口和8位LED指示灯相连。
    DVK501(164PrlPort)    F320 EX
                        Q0    ---------    P2.0
                        Q1    ---------    P2.1
                        Q2    ---------    P2.2
                        Q3    ---------    P2.3
                        Q4    ---------    P2.4
                        Q5    ---------    P2.5
                        Q6    ---------    P2.6
                        Q7    ---------    P2.7    
  
                      VCC   ---------   VCC
                      GND   ---------  GND
                      MR      ---------  P1.5  
                      A / B    ---------  P1.6
                      CLK    ---------  P1.7
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“library”下的“C8051F”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“说明书首页.htm”里的相应产品说明
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#define _DVK501_F320_EX_

#include <c8051f320.h>
#include <../../../../library/C8051F/ws_clock.h>
#include <../../../../library/C8051F/ws_delay.h>
#include <../../../../library/C8051F/ws_74hc164_port.h>

void main(void)
{
uchar tmp=0;
PCA0MD &= ~0x40;
XBR1 = 0x40;
clock_external();
hc164Init();

while(1)
{
hc164SetDat(tmp);
tmp++;
delay_ms(500);
}
}

sbit HC164_DATA = P1^6;
sbit HC164_CLK = P1^7;

void hc164Init(void)
{
P1MDOUT |= 0xC0;
}

void hc164SetDat(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
HC164_CLK = 0;
if(dat & 0x80)
HC164_DATA = 1;
else
HC164_DATA = 0;
HC164_CLK = 1;
dat = dat<<1;
}
}


系统调试

将74LS164的输出端口Q0--Q7接入LED,用LED指示74LS164输出的数据。


使用74LS164将C8051F的串口输出扩为并口输出

——