以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
使用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的串口输出扩为并口输出
——