使用74LS165将C8051F的串口输入扩为并口输入
<tbody></tbody>
使用74LS165将C8051F的串口输入扩为并口输入。
| |
---|---|
<tbody></tbody>
| |
<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*/
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>
|