微雪官网产品资料
立即注册 找回密码

QQ登录

只需一步,快速开始

微雪课堂

搜索

使用74LS165将C8051F的串口输入扩为并口输入

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

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

   使用74LS165将C8051F的串口输入扩为并口输入。


硬件设计

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


软件设计

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

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

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
使用P2口作为信号源输入到74LS165,74LS165将会将该信号转为串行信号,
MCU再自己接收串行信号,使用P2口的LED指示灯查看数据是否正确。
----------------------------------------------------------------------
硬件连接:
将PB口的LED指示灯开关切换到"ON"状态。
    DVK501(165PrlPort)    F320 EX
                        D0    ---------    P2.0
                        D1    ---------    P2.1
                        D2    ---------    P2.2
                        D3    ---------    P2.3
                        D4    ---------    P2.4
                        D5    ---------    P2.5
                        D6    ---------    P2.6
                        D7    ---------    P2.7    
  
                      VCC   ---------   VCC
                      GND   ---------  GND
                      PL       ---------  P1.0  
                      QH      ---------  P0.5
                      CLK    ---------  P0.4
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“library”下的“C8051F”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“说明书首页.htm”里的相应产品说明
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#define _DVK501_F320_EX_

#include <c8051f320.h>
#include <../../../../library/C8051F/ws_clock.h>
#include <../../../../library/C8051F/ws_74hc165_port.h>

void main(void)
{
uchar a = 0;
PCA0MD &= ~0x40; 
XBR1 = 0x40;
clock_external();
P2MDOUT = 0xFF;
hc165Init();

while(1)
{
P2 = 0x55;
a = hc165GetDat();
P2 = a;

}

sbit HC165_RXD = P0^5; 
sbit HC165_TXD = P0^4; 
sbit HC165_PL = P1^0;

uchar hc165GetDat(void)
{
uchar i,dat=0;
HC165_PL = 0;
HC165_PL = 1;
for(i=0;i<8;i++)
{
HC165_TXD = 0;
dat = dat<<1;
if(HC165_RXD)
dat |= 0x01;
HC165_TXD = 1;
}
return dat;
}

void hc165Init(void)
{
P0MDOUT |= 0x08;
P1MDOUT |= 0x01;
}


系统调试

将74LS165的输入端口D0--D7接入单片机的P2口,那么P2口输出的数据经过74LS165的转换变为串行数据,将串行数据接入串口,那样若正常工作接收到的数据将与从P2口发出的数据一致,用LED指示串口接收到的数据,进行观察。

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


184

顶一下

刚表态过的朋友 (184 人)

最新评论

所有教程

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

GMT+8, 2019-3-25 10:03 , Processed in 0.074831 second(s), 23 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc & Style Design

返回顶部