2片51单片机通过74LS164串行转并行通信
核心区别
功能
typedef:为数据类型(包括内置类型和自定义类型)定义别名,增强可读性。例如:typedef unsigned char uchar;
define:宏定义,用于文本替换(如常量、函数式宏),无类型检查。例如:#define uchar unsigned char
处理阶段
typedef:编译阶段处理,支持类型检查。
define:预处理阶段替换,仅机械替换字符串。
作用域
typedef:受作用域限制(如函数内定义仅限当前函数)。
define:全局有效,除非用#undef取消。
DSA 1 数据输入
DSB 2 数据输入
Q0~Q3 3~6 输出
GND 7 地 (0 V)
CP 8 时钟输入(低电平到高电平边沿触发)
/M/R 9 中央复位输入(低电平有效)
Q4~Q7 10~13 输出
VCC 14 正电源*/
//2片74Ls164串行数据转换为并行数据,数码管显示
核心区别
功能
typedef:为数据类型(包括内置类型和自定义类型)定义别名,增强可读性。例如:typedef unsigned char uchar;
define:宏定义,用于文本替换(如常量、函数式宏),无类型检查。例如:#define uchar unsigned char
处理阶段
typedef:编译阶段处理,支持类型检查。
define:预处理阶段替换,仅机械替换字符串。
作用域
typedef:受作用域限制(如函数内定义仅限当前函数)。
define:全局有效,除非用#undef取消。
DSA 1 数据输入
DSB 2 数据输入
Q0~Q3 3~6 输出
GND 7 地 (0 V)
CP 8 时钟输入(低电平到高电平边沿触发)
/M/R 9 中央复位输入(低电平有效)
Q4~Q7 10~13 输出
VCC 14 正电源*/
//2片74Ls164串行数据转换为并行数据,数码管显示,进行通信
#include<reg51.h>
typedef unsigned char uchar;
typedef unsigned int uint;
void delay(void);
uchar led[]={0x03, 0x9f, 0x25, 0x0d, 0x99,0x49, 0x41, 0x1f, 0x01, 0x09};//数码管编码
//延时
void yan_shi(uint ms)
{
uint i,j;
for(i=0;i
}
void main(void)
{
int temp;
P3=0xff;
SCON=0x00; //51单片机串口工作于方式0,SM2、RB8、TB8、TI清0
for(temp=90; temp>=0; temp--)
{
SBUF=led[temp%10]; //个位数的编码送SBUF,串口开始发送数据,
while(TI==0); //发送完TI置1
TI=0;//重新将TI置0,否则不能继续发送数据进行通信
SBUF=led[temp/10]; //十位数的编码送SBUF,串口开始新一轮发送数据
while(TI==0);
TI=0;
yan_shi(200); //延时时间不要太短,否则观察不到结果
}
}
//通过网盘分享的文件:2片51单片机通过74LS164串行转并行通信









最新发布