📄 模拟并口时序.txt
字号:
采用模拟并口时序的话,你只需要修改写索引地址:CH375HM_INDEX_WR( Index )、写数据:CH375HM_DATA_WR( Data )、读数据:CH375HM_DATA_RD( )这三个子程序就行了。大体时序为:
写索引口:
向并口输出数据、A0=0 ;注意,A0一定要在CS和WR变化之前
CS=0和WR=0
延时几十纳秒
CS=1和WR=1
I/O禁止输出、A0=1 ;注意,A0一定要在CS和WR变化之后,建议操作完后的A0默认为低电平
写数据:
向并口输出数据、A0=1
CS=0和WR=0
延时几十纳秒
CS=1和WR=1 ;如果A0默认为低电平,则一定要注意,A0不能早于CS和WR为高电平
I/O禁止输出
读数据:
并口I/O方向设为输入
A0=1 ;注意,A0一定要在CS和WR变化之前,如果A0默认为低电平则此处可省掉
CS=0和RD=0
延时几十纳秒 ;对于低速单片机无所谓,对高速单片机很关键,要让并口有20nS的准备时间
从并口输入数据
CS=1和RD=1
↓简单引用
void CH375HM_INDEX_WR(index)
{
P3MDOUT=0xff;
USB_A0=0;
P3=index;
USB_RD=1;
USB_WR=1;
USB_CS=0;
USB_WR=0;
_nop_();_nop_();_nop_();_nop_();
USB_WR=1;
USB_CS=1;
USB_A0=1;
P3=0xff;
}
void CH375HM_DATA_WR(Data)
{
P3MDOUT=0xff;
USB_A0=1;
P3=Data;
USB_RD=1;
USB_WR=1;
USB_CS=0;
USB_WR=0;
_nop_();_nop_();_nop_();_nop_();
USB_WR=1;
USB_CS=1;
P3=0xff;
}
uchar CH375HM_DATA_RD( void)
{
uchar m;
P3MDOUT=0x00;
USB_A0=1;
P3=0xff;
USB_RD=1;
USB_WR=1;
USB_CS=0;
USB_RD=0;
_nop_();_nop_();_nop_();_nop_();
m=P3;
USB_RD=1;
USB_CS=1;
P3=0xff;
return m;
}
↓简单引用
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -