sbit p1_0=p1^o//管脚定义,可能是光耦三极管,错把字母o当成数字0
void main()
{
unsigned char i,j
SCON=0x00//串口工作方式0,允许接收
j=0x01//要从串口发送的数据
for()//死循环,相当于while(1)
{
p1_0=0
SBUF=j//j送到SBUF,从串口发送
while(!TI) { }//等待发送完成
p1_0=0TI=0//TI软件清0
for ( i=0i<=254i++) { }//延时
j=j*2//左移一位,即led灯往左轮流亮
if (j= =0x00) j=0x01//一轮左移完成,从头再次左移,循环左移
}
}
可以使用位 *** 作指令,使用并行口来模拟串行口,达到向“串入并出寄存器”输入数据的目的。发送ACC到4094的子程序如下:
SEND_ACC:
MOV R2, #8
S_LOOP:
RRC A A中的最低位移动到C
MOV P3.3, C 移动到D口
NOP
CLR P3.4 P3.4输出一个脉冲
NOP
NOP
SETB P3.4
DJNZ R2, S_LOOP
RET
完
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)