51单片机串行口并/串、串/并转换实验
一、实验内容
利用MCS-51单片机P1.2做控制信号(把并转串单元的LOCK和串转并单元的LOCK连接至P1.2。),实现并转串、串转并,并把串转并的数据送到发光二极管单元显示。
二、仿真图
三、代码
C语言实现:
/*
74LS164:串入并出
74LS165:并入串出
*/
#include<reg52.h>
#include<intrins.h>
#define uchar8 unsigned char
#define uint16 unsigned int
sbit CLK=P1^0;
sbit SH=P2^7;
uchar8 nSendByte ;
void delay1s(void)
void main()
{
int i;
nSendByte=0x80;
nSendByte=_crol_(nSendByte,1);
while(1)
{
SH=~SH;
P0=0x80;
SH=1;
for(i=0;i<8;i++)
{
CLK=0;
delay1s();
CLK=1; //上升沿有效
}
}
}
void delay1s(void) //误差 0us
{
unsigned char a,b,c;
for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
汇编实现:
/*
74LS164:串入并出
74LS165:并入串出
*/
CLK EQU P1.0
SH EPQ P2.7
ORG 0000H
LJMP START
ORG 0030H
START: MOV A,#080H ;1000 0000
MOV R7,#8
MOV P0,A
CLR SH
NOP
SETB SH
ACALL DELAY
OUT: CPL CLK
ACALL DELAY
CPL CLK
ACALL DELAY
DJNZ R7,TLOOP
DELAY: MOV R6,#0FFH
DELAY1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R6,DELAY1
RET
END
评论(0)
您还未登录,请登录后发表或查看评论