博客日历
2024年11月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 1 |
存档
2024年03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
用并口控制BH1415F调频发射芯片
1.并口简介
并口使用了3个8位的端口寄存器,分别是(默认状态下):
数据寄存器:端口0x378+0,用于输出数据,Bit0-Bit7,针脚2-9
状态寄存器:端口0x378+1,用于输入数据,Bit3-Bit7,针脚15、13、12、10、11(反相)
控制寄存器:端口0x378+2,用于输出数据,Bit0-Bit3,针脚1(反相)、14、16(反相)、17(反相)
2.并口与BH1415F模块的连接
并口的输出不足以驱动BH1415F,这里使用三极管作为驱动(信号被反相了,编程时需要注意),电路图如下:
3.并口编程
这里采用http://www.internals.com出品的WinIO库来操作端口。
编程步骤:
//初始化WinIO
InitializeWinIo();
//操作数据端口
BOOL SetData(IN BYTE byteData )
{
return ::SetPortVal(0x378,byteData,1);
}
//读取状态端口
BOOL GetStatus(OUT PDWORD lpStatus )
{
return ::GetPortVal(0x378+1,lpStatus,1);
}
//操作控制端口
BOOL SetControl(IN BYTE byteControl )
{
//并口Bit0,2,3相位是反的
byteControl ^= 0x01;
byteControl ^= 0x02;
byteControl ^= 0x08;
return ::SetPortVal(0x378+2,byteControl,1);
}
//释放WinIO
ShutdownWinIo();
4.控制BH1415F
a.频率计算程序:
int CalcFrequncy(double fMhz,BOOL bStero)
{
int d1_d10=(int)(fMhz*10);//bit0-bit10
int nData=d1_d10;
if (bStero){
nData|=18432;//0b 01 00 1 000 0000 0000
}
else{
nData|=16384;//0b 01 00 0 000 0000 0000
}
return nData;
}
b.控制数据写入芯片,根据时序图写出控制程序:
//bit 1, 并口01脚:接BH1415的Chip Enable
//bit 2, 并口14脚:接BH1415的Clock
//bit 3, 并口16脚:接BH1415的Data
//bit 4, 并口17脚:接BH1415的Muting,H=Mute on,L=Mute Off
MUTE(0);
CE(1);
for (int i=0;i<=15;i++)
{
int bit=(nData>>i) & 0x01;
DATA(bit);
CLK(1);
CLK(0);
}
CE(0);
控制软件界面:
万用板焊接的电路:
上一篇: 驱动编程.4 最简单的NT式驱动程序
下一篇: 注册全局热键
分类:Win32/C++ 查看次数:19748 发布时间:2009/12/31 23:23:39