历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2019年08月13日 | 壹拾贰:单片机与芯片164的通信

2019-08-13 来源:eefocus

本篇之后都是提高篇
1)只为学习,不讨论现实意义
2)与实物电路会有差距(以实物为准)
3)讲解范围:串行通信、数码管、1602、12864、点阵、直流电机、AD、DA等基础电路。
高级内容暂不讲(USB、CAN、DMA、Wifi、网络、真彩大液晶、触摸屏、GPS、GPRS、Zigbee、NandFlash、Camera等等)(ARM11上讨论这些)

#基础知识
通信分为两种:并行通信和串行通信。
并行通信是将要所传送的数据的各位同时发送或接受,在该通信中,使用几条数据线,将数据分段同时进行传输,传输速度快,信息率高。
串行通信时使用很少的数据线,将要传送数据各个位按顺序一位一位地发送或接收,每一位都需要固定的时间长度,在串行通信中仅少量的传输线即可。

并行口

串行口

1)串行通信的几种制式

单工

半双工

全双工

2)串行通信标准

常见的串行通信标准

串行通信标准
引脚
引脚说明
通信方式
通信制失
UARTTXD、RXD、GND
(三线)
TXD:发送端
RXD:接收端
异步全双工
1-WireDQ
(一线)
DQ:发送/接收端异步半双工
SPISCK、MISO、MOSI
(三线)
SCK:同步时钟
MISO:主机输入,从机输出
MIOSI:主机输出,从机输入
同步全双工
I2CSCL、SDA
(二线)
SCL:同步时钟
SDA:数据输入/输出端
同步半双工

#实验
这里写图片描述

1)了解164芯片引脚
这里写图片描述
A、B:串行数据输入端。
Clock:时钟输入端。
Clear:清零端。当次引脚为低电平时,并行输出引脚将全部为低电平。
QAQH:数据输出引脚。这八个引脚为bit0bit8,8位数据输出引脚。

2)通信过程
74HC164真值表

单工
半双工
Clear
Clock
A和B
QA QB … QH
L
X
X
L L … L
H
L
X

H
H
QH=QG… QB=QA、QA=H
H
L
QH=QG… QB=QA、QA=L

这里写图片描述

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

*   【课程13】 ****单片机与164的通信***********

*   【说  明】 ****74HC164串行单工通信

*   【描  述】 ****用IO口模拟时序,实现单片机与164的通信

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

#include //  对51特殊功能寄存器进行定义


//---------常用的两个宏定义-------------- 

#define uint8 unsigned char

#define uint16  unsigned int


sbit Data=P0^0; // 定义P0.0为数据输入端口

sbit Clr=P0^2; // 定义P0.2为清零端口

sbit Clk=P0^1; // 定义P0.1为时钟端口


//------------函数的声明-----------------

void DelayMS(uint16 dly);

void Data_Send(uint8 num);


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

函数名:main()

主函数

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

void main()

{

while(1)

{

//显示数字1

Data_Send(0x00);   //发送数据0x9f进行显示

DelayMS(100); //适当延长,延时过短二极管会出现闪烁现象

while(1) ;

}

}



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

** 名称 :void DelayMS(uint16 dly)

** 功能 :毫秒级延时(24M的晶振)

** 入口参数 :dly

用户的延时参数   

** 出口参数 :无   

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

void DelayMS(uint16 dly)

{

uint16 x,y;

for(x=dly;x>0;x--)

for(y=10;y>0;y--);

}


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

名称:Data_Send()  

功能:用164实现数字显示 

入口参数:uchar num 为要传送的数据变量

出口参数:无 

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

void Data_Send(uint8 num)

{

uint8 i;

Clr=1;

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

{

Clk=0;

if((num&0x01)!=0)

Data = 1;

else

Data = 0;

// Data=num&0x01; //先传送要发送数据的最低位

num=num>>1; //右移1位,再传数据的高位

DelayMS(5);

Clk=1;

DelayMS(5);

}

}




推荐阅读

史海拾趣

Cellergy公司的发展小趣事

为了进一步扩大市场份额,Cellergy公司积极寻求与其他电子企业的战略合作。通过与一家知名电子产品制造商的合作,Cellergy公司的电容器产品得以进入更广阔的市场。双方共同研发新产品,共享技术和市场资源,实现了互利共赢。这一合作不仅提升了Cellergy公司的知名度,也为其带来了更多的商业机会。

EM Microelectronic-Marin SA公司的发展小趣事

多年来,EM Microelectronic-Marin始终保持着对技术的热爱和追求。公司不断投入资源进行研发,推动电子技术的持续发展。在未来,随着物联网、人工智能等技术的不断兴起,EM Microelectronic-Marin将继续致力于技术创新和产品升级,为电子行业的发展贡献自己的力量。

Carlisle Interconnect Technologies公司的发展小趣事

随着科技的进步和市场的变化,Carlisle Interconnect Technologies敏锐地捕捉到了新型材料的发展潜力。公司成为第一批采用PTFE(聚四氟乙烯)这种独特材料生产高温电线和电缆的公司之一。PTFE材料具有出色的耐高温、耐腐蚀和电气性能,使得公司的产品在航空航天、电子通信等领域得到了广泛应用。这一创新举措不仅提升了公司的市场竞争力,也为整个行业的技术进步做出了贡献。

Gustav Klauke GmbH公司的发展小趣事

1959年,对于Carlisle Interconnect Technologies来说是一个里程碑式的年份。这一年,公司正式成为Carlisle Companies Incorporated的一部分,这标志着公司从一个小型创业企业迈入了大型跨国公司的行列。这一转变为公司带来了更多的资源和机会,也使其能够更好地满足主要电子OEM的需求,专注于提供增值解决方案。

Cristek Interconnects Inc公司的发展小趣事

Cristek Interconnects Inc公司自成立以来,一直致力于电子连接器技术的研发与创新。在早期的发展阶段,公司凭借其出色的研发团队,成功开发出一种新型的高性能连接器,这种连接器具有更高的导电性和更低的信号衰减,极大地提高了电子设备的性能。这一技术突破为公司赢得了市场的广泛认可,也奠定了Cristek在电子行业中的重要地位。

启攀微(CHIPHOM)公司的发展小趣事

启攀微电子(CHIPHOM)的创始人们是一群从英美归国的留学精英和国内资深的技术人员。他们在2003年的一个深秋,聚集在上海漕河泾开发区的一间办公室里,怀揣着对集成电路技术的共同热爱和追求,决定创立自己的公司。初始阶段,公司面临着资金紧张、技术难度大等种种挑战,但他们凭借着对技术的执着追求和对市场的敏锐洞察,成功开发出了第一款LED背光驱动芯片,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

基于单片机的电子密码锁实际设计

基于单片机的电子密码锁实际设计…

查看全部问答>

请教:PWM 到底是什么?怎么使用?谢谢!

请教: 是这样的,直接电机的一条线接 VCC (通过改变电流的大小能改变输出力的大小) 假设电机接在 20V 的电压上 现在用 PWM 来改变电流 PWM 由单片机产生 问题1: 我要怎么接线 才能使通过单片机控制电流大小? 2: PWM 到底是控制电流大 ...…

查看全部问答>

Pos机的原理,用什么语言开发?C#?Java?

公司交给我让我先了解下pos机,但是我对Pos机一点不了解,公司做的pos机是和银行没有关系的。就是给本公司的会员使用 想问下大虾: 1:Pos机的相关硬件有什么设备 2:用什么语言开发,能运行到什么系统,是否认能兼容 3:软硬件两者怎么相互嵌 ...…

查看全部问答>

SD WiFi 插拔之后工作不正常(Wince 5.0) Urgent

SD WiFi在首次插入后均可以与指定AP(Access Point)成功连接,后经过一次拔插后,就无法工作了,只有重新系统才可以。经Trace log可知,无法得到BSSI List,其列表为空,由此可知,WiFi Adapter处于异常状态,至今没有找到具体原因,曾试过NdisReset ...…

查看全部问答>

单片机输出端可以直接接动态数码管吗?

有的地方说驱动电流不够,需要加锁存器进行驱动,是吗?…

查看全部问答>

STM32 ,用固件库写一个流水灯的程序需要哪些库?

STM32 ,用固件库写一个流水灯的程序需要哪些库?我知道肯定要用GPIO,RCC要用到USART,NVIC吗?为什么啊? 初学者求助…

查看全部问答>

MSP430F149 串口1设置问题

***************************************************************************************************/ #include \"io430.h\" #include     //引用本征函数需包含本头文件 #include \"nbc430.h\" #define uchar unsigned ...…

查看全部问答>

在厦门电子行业工作的前辈请进来帮个忙

我是今年6月毕业的本科生 在上海读的书,在上海工作直到9月末,现在想回到厦门工作 今天有家公司发给了我offer(厦门大洋通信),职位是嵌入式软件工程师助理 请了解这家公司的前辈们介绍下此公司各方面的情况 还有想了解下厦门市的工资水平, ...…

查看全部问答>

跪求大神,,这程序错在哪

                              #include                 //器件配置文件 #include #define   ...…

查看全部问答>