欢迎来到天天文库
浏览记录
ID:42161128
大小:181.94 KB
页数:3页
时间:2019-09-09
《51单片机串并口转换实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能#include本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573锁存器。实验者请按上图连接好实验电路。#include2、52.h>#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongcodeuinta[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};sbitSO=P1^0;//定义165的输出sbitSTCP=P1^1;sbitDS=P1^2;sbitSHCP=P1^3;sbitSHLD=P1^4;sbitCLK=P1^5;sbitcs573=P1^63、;/**************************************************/voiddelay(ulongX)//延时函数,采用了形参传递函数{while(X--);}/**************************************************/voidLED();//函数声明/**************************************************/voidmain()//主函数{while(1){LED();}4、}/****************************************************/voidLED(){uinti,j,k;ucharn,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<<=5、1;delay(10);CLK=0;n6、=SO;delay(10);CLK=1;}P3=n;m=n;for(k=0;k<8;k++)//74HC595开始转换数据{SHCP=0;if((m&0x80)==0x80)DS=1;elseDS=0;m<<=1;SHCP=1;delay(300);}STCP=0;STCP=1;delay(30000);}}
2、52.h>#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongcodeuinta[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};sbitSO=P1^0;//定义165的输出sbitSTCP=P1^1;sbitDS=P1^2;sbitSHCP=P1^3;sbitSHLD=P1^4;sbitCLK=P1^5;sbitcs573=P1^6
3、;/**************************************************/voiddelay(ulongX)//延时函数,采用了形参传递函数{while(X--);}/**************************************************/voidLED();//函数声明/**************************************************/voidmain()//主函数{while(1){LED();}
4、}/****************************************************/voidLED(){uinti,j,k;ucharn,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<<=
5、1;delay(10);CLK=0;n
6、=SO;delay(10);CLK=1;}P3=n;m=n;for(k=0;k<8;k++)//74HC595开始转换数据{SHCP=0;if((m&0x80)==0x80)DS=1;elseDS=0;m<<=1;SHCP=1;delay(300);}STCP=0;STCP=1;delay(30000);}}
此文档下载收益归作者所有