当前位置:文档之家› 单片机串并口转换实验定稿版

单片机串并口转换实验定稿版

单片机串并口转换实验定稿版
单片机串并口转换实验定稿版

单片机串并口转换实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能

#include

本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。

#include

#include< intrins.h >

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit SO=P1^0; //定义165的输出

sbit STCP=P1^1;

sbit DS=P1^2;

sbit SHCP=P1^3;

sbit SHLD=P1^4;

sbit CLK=P1^5;

sbit cs573=P1^6;

/**************************************************/

void delay(ulong X) //延时函数,采用了形参传递函数{

while(X--);

}

/**************************************************/

void LED(); //函数声明

/**************************************************/

void main() //主函数

{

while(1)

{

LED ();

}

}

/****************************************************/

void LED()

{

uint i,j,k;

uchar n,m;

for(i=0;i<8;i++)

{

cs573=1;

P2=a[i]; //往P2口送流水灯字符,因为有8个流水灯,所以i=8循环八次,LED小灯依次被点亮

cs573=0; //把P2口送过来的数据锁存

SHLD=0; //74HC165开始装载数据

delay(10);

SHLD=1;

for(j=0;j<8;j++) //开始八次循环移位

{

n<<=1;

delay(10);

CLK=0;

n|=SO;

delay(10);

CLK=1;

}

P3=n;

m=n;

for(k=0;k<8;k++) //74HC595开始转换数据

{

SHCP=0;

if((m&0x80)==0x80)

DS=1;

else

DS=0;

m<<=1;

SHCP=1;

delay(300);

}

STCP=0;

STCP=1;

delay(30000);

}

}

相关主题
文本预览
相关文档 最新文档