[size=4] cs直接接地,程序是这样的: void main() { unsigned char i; a0=1; P1=0x15; wr=0; for(i=0;i<255;i++); wr=1;
a0=0; P1=0x02; wr=0; for(i=0;i<255;i++); wr=1; } 帮忙看一看,有问题请指出。[/size][Emot]1[/Emot][Emot]2[/Emot]
[size=4] cs直接接地,程序是这样的: void main() { unsigned char i; a0=1; P1=0x15; wr=0; for(i=0;i<255;i++); wr=1;
a0=0; P1=0x02; wr=0; for(i=0;i<255;i++); wr=1; } 帮忙看一看,有问题请指出。[/size][Emot]1[/Emot][Emot]2[/Emot]
不知道你的单片机速度是多快的需要这么多延时,
模拟并口的三个读写子程序,大体可以按下面的流程:
写命令: 向并口输出数据、A0=1 ;注意,A0一定要在CS和WR变化之前 CS=0和WR=0 延时几十纳秒 CS=1和WR=1 I/O禁止输出、A0=0 ;注意,A0一定要在CS和WR变化之后,建议操作完后的A0默认为低电平
写数据: 向并口输出数据、A0=0 CS=0和WR=0 延时几十纳秒 CS=1和WR=1 ;如果A0默认为低电平,则一定要注意,A0不能早于CS和WR为高电平 I/O禁止输出
读数据: 并口I/O方向设为输入 A0=0 ;注意,A0一定要在CS和WR变化之前,如果A0默认为低电平则此处可省掉 CS=0和RD=0 延时几十纳秒 ;对于低速单片机无所谓,对高速单片机很关键,要让并口有20nS的准备时间 从并口输入数据 CS=1和RD=1
并且命令与命令之间延时2um,命令与数据之间延时2um,数据与数据之间延时1um。