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

来自丢石头百科
Admin讨论 | 贡献2019年11月18日 (一) 16:37的版本 (系统功能   使用74LS165将C8051F的串口输入扩为并口输入。硬件设计串行输入扩展为并行输入芯片74LS165控制电路原理图软件设计下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!//目标系统 ...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
<tbody></tbody>
<tbody></tbody>
系统功能

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


<tbody></tbody>
硬件设计

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


<tbody></tbody>
软件设计

下面部分从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*/

  1. define _DVK501_F320_EX_
  2. include <c8051f320.h>
  3. include <../../../../library/C8051F/ws_clock.h>
  4. 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;

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