立即注册 找回密码

微雪课堂

搜索
微雪课堂 C8051 C8051F单片机笑傲江湖 查看内容

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

2015-7-13 10:05| 发布者: kaloha| 查看: 5012| 评论: 0

摘要: 系统功能   使用74LS164将AVR的串口输出扩为并口输出。硬件设计串行输出扩展为并行输出芯片74LS164控制电路原理图软件设计下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!//目标系统: ...
系统功能

   使用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输出的数据。

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


410

顶一下

刚表态过的朋友 (410 人)

最新评论

所有教程

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-3-29 15:48 , Processed in 0.021869 second(s), 20 queries .

返回顶部