stc 89c52单片机。P0 口接了8颗灯,P3口第4个脚接了QC1602的EN 脚,都是直连的没有接上拉或者下拉。
下面这个程序,本意为了看这两个口的工作状况(没有具体意义), 这个灯没有想象中的1秒亮,一秒灭。
而是不停的闪烁。这个程序什么都不改,把P3口的操作屏蔽掉。灯的工作状况如程序所写。亮1秒灭一秒,
P3口和P0口不能同时工作?还是我的程序有问题或者是电路没有上拉?
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
sbit a = P0^4;
sbit b = P3^4;
int Delay1000ms(void) //@12.000MHz
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 154;
k = 122;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
int main(void)
{
while(1)
{
a = 0;
b = 0;//屏蔽
Delay1000ms();
a = 1;
b = 1;//屏蔽
Delay1000ms();
}
}
|