当前位置:文档之家› 基于52单片机的多机通信

基于52单片机的多机通信

基于52单片机的多机通信
基于52单片机的多机通信

课程设计报告

课程52单片机技术

题目串口通信-多机通信系统系别

年级07级专业电子科学与技术班级学号

学生姓名

指导教师职称

设计时间

目录

1 题设要求分析 .................................... 错误!未定义书签。

2 硬件电路的设计 (2)

2.1 系统的组成 (2)

2.2 系统的工作原理 (2)

2.3 硬件电路原理图设计 (3)

2.4 硬件电路的实现 (5)

3 软件电路的设计 (7)

3.1 通信协议的设计 (7)

3.2 主机程序设计 (7)

3.3 从机程序设计 (11)

4 系统的调试与实现 (14)

4.1 从机模块调试 (14)

4.2 LED显示模块调试 (14)

4.3电平转换模块功能调试 (14)

4.4主机模块功能调试 (15)

4.5整体设计功能调试 (15)

参考文献 (17)

2 硬件电路的设计

2.1 系统的组成

根据题目分析可知硬件电分为主机模块和从机模块。主机模块中包含单片机子模块、led 数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD 转换子模块和串口电平转换子模块。在主模块中由AT89S51单片机担任主机,六个led 数码管担任显示设备和一片MAX485担任串口的电平转换。在整个主机系统中有三个从机模块三个从机模块结构一样,有一片AT89S51单片机担任从机外接一片ADC0809转换芯片和一片MAX485担任串口的电平转换。串口采用单工及异步通信方式。整个硬件结构原如图1所示。

主机

数码管显示设备

MA X 485

MA X 485MA X 485

MA X 485

从机1从机2从机3

TX D

R X D

TX D

TX D TX D

R X D R X D R X D A D 转换设备1A D 转换设备2A D 转换设备3

A T89S 51A T89S 51

A T89S 51

A T89S 51

R 1

R 2

.

..

...

.

.

图 1 系统结构原理图

2.2 系统的工作原理

主机AT89S51编程可实现循环访问个从机,当从机接受主机访问后启动AD

转换设备ADC0809对外部模拟信号进行转换。当从机获得转换结果后通过串口将其发送到主机,主机接受到转换结果后再将其发送到相应的led 数码管显示。

2.3 硬件电路原理图设计

(1)led数码管显示电路led数码管显示电路如图2所示显示子模块由六个数码管和相应的启动芯片构成。其中每路通道的采集值用量为数码管显示。为了节约单片机的I/O口本题的数码管采用MAX7219芯片。给芯片的优点在于可完成电路的刷新。MAX7219芯片的SEG A-SEG DP为数码管段码接口,DIG0-DIG7为位码接口,CLK、DIN、LOAD分别与单片机P1.0、P1.1、P1.2连接。单片机通过串行的方式将要显示的数据通过CLK、DIN、LOAD三个接口送入相应的显示寄存器内,MAX7219将自动完成对数码管的刷新工作。具体的电路如图2所示。

图 2 led显示电路

(2)串口电平转换电路串口电平转换电路的电路图如图3所示:本实验中采用MAX485的电平转换芯片。MAX485是一种RS-485标准接口的电平转换芯片。RS-485采用差分式半双工通信方式,真正实现多点总线连接,具有传输距离远可靠性高的特点。基于以上原因本小组选择该芯片实现电平转换。MAX485的1号引脚RO为接收端接单片RXD, 4号引脚DI为发送端接单片TXD, 2、3号引脚

分别为发送接收使能端端接单片P1.3引脚。6、7号引脚总线接线口。

12

D

C

B

A

P1.01P1.12P1.23P1.34P1.4

5(MOS I)P1.56(MIS O)P1.67(SC K)P1.78

R ST 9(RX D )P 3.010(TX D)P3.111(IN T0)P 3.212(IN T1)P 3.313(T0)P3.414(T1)P3.515(W R )P 3.616(RD )P3.717X TA L218X TA L119G ND 20

U 1

A T89S51

W R R D

EO C

C 1

22p f

Y 1

11.0592M

C 2

22p f

V CC 8B 7A 6G ND

5

D I

18D E 3R O 1R E 2MA X485

R R

C 310u F

R 28.2K

V CC

123JP1

H EA DE R 3

V CC

图 3 电平转换电路

(3)主机模块电路

根据设计要求绘制主机模块电路图如图4所示。

1

2

3

4

A

B

C

D

4

3

2

1

D

C

B

A

Title

N u mb er

R ev isio n

Size A 4D ate:20-Ju n -2010Sh eet o f File:

C :\U sers\y an g \

D esk to p \主机\7420 - 副本\my 1.d db D raw n B y :

Y 111.0592M

C 1

51PF C 2

51PF

P1.01P1.12P1.23

P1.34P1.4

5(MOS I)P1.56(MIS O)P1.67(SC K)P1.78

R ST 9(RX D )P 3.010(TX D)P3.111(IN T0)P 3.212(IN T1)P 3.313(T0)P3.414(T1)P3.515(W R )P 3.616(RD )P3.717X TA L218X TA L119

C N

D 20

P2.0(A 8)

21

P2.1(A 9)22P2.2(A 10)23P2.3(A 11)24P2.4(A 12)25P2.5(A 13)26P2.6(A 14)27P2.7(A 15)28PS EN

29

A LE/PR O G

30EA /VP P 31P0.7(A D 7)

32

P0.6(A D 6)33P0.5(A D 5)34P0.4(A D 4)35P0.3(A D 3)36P0.2(A D 2)37P0.1(A D 1)38P0.0(A D 0)39V CC 40U 1

A T89S51/52

R 18.2K

C 410u F

V CC

v cc

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910D S5

D PY _7-S

E G_DP

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910D S4

D PY _7-S

E G_DP

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910D S3

D PY _7-S

E G_DP

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910D S2

D PY _7-S

E G_DP

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910D S1

D PY _7-S

E G_DP

a b

f c

g d e D PY 1234567a

b

c d

e f

g

8

d p

d p 910

D S0

D PY _7-S

E G_DP

a b c d e f g d p a b c d e f g d p a b c d e f g d p a b c d e f g d p a b c d e f g d p a b c d e f g d p a b c d e f g d p

R 247K

C 30.1u F

v cc

C LK

D IN LO A D LO A D D IN C LK V CC 8B 7A 6G ND

5

D I

18D E 3R O 1R E 2MA X485

U 3

123

JP1H EA DE R 3

v cc

V +

19

SE G A 1SE G B 16SE G C 20SE G D 23SE G E 21SE G F 15SE G G 17SE G D P 22D IG 02D IG 111D IG 26D IG 37D IG 43D IG 510D IG 65D IG 7

8

ISET 18

C LK 13

D IN 1LO A D 12

D OU T 24G ND 4

G ND 19

U 2MA X7219

图 4 主机模块电路图

(4)从机模块电路

根据设计要求绘制从机模块电路图如图5所示。

1

2

3

4

A

B

C

D

4

321D

C

B

A

Title

N u mb er

R ev isio n

Size A 4D ate:20-Ju n -2010Sh eet o f File:

C :\U sers\y an g \

D esk to p \从机\A DD A _test2.DD B D raw n B y :

IN31IN42IN53IN64IN7

5

ST AR T

6

EO C 7

D 38O

E 9

C LK

10

V CC

11

V RE F(+)12G ND

13

D 114D 215V R

E F(-)

16D 0

17

D 418D 519D 620D 721A L

E 22A DD C 23A DD B 24A DD A

25

IN026IN127IN228A DC 0809

V CC C B1

V CC

R 1

V CC

O E 1LE 11

1D 2

2D 33D 44D 55D 66D 77D 88D 91Q

19

2Q 183Q 174Q 165Q 156Q 147Q 138Q 12V CC 20

G ND 10U 374AL S573

EO C

A DC LK V CC

A LE C B2A LE 12345678910111213141516

A IN 7~AIN 0

H EA DE R 8X 2

1

23A

74AL S024

5

6

B

74AL S028

910

C

74AL S02A DC

R D

EO C

W R P1.01P1.12P1.23P1.34P1.4

5(MOS I)P1.56(MIS O)P1.67(SC K)P1.78R ST 9(RX D )P 3.010(TX D)P3.111(IN T0)P 3.212(IN T1)P 3.313(T0)P3.414(T1)P3.515(W R )P 3.616(RD )P3.717X TA L218X TA L119

G ND 20

P2.0(A 8)

21

P2.1(A 9)22P2.2(A 10)23P2.3(A 11)24P2.4(A 12)25P2.5(A 13)26P2.6(A 14)27P2.7(15)28PS EN 29

A LE/PR O G

30EA /VP P 31

P0.7(A D 7)

32P0.6(A D 6)33P0.5(A D 5)34P0.4(A D 4)35P0.3(A D 3)36P0.2(A D 2)37P0.1(A D 1)38P0.0(A D 0)39V CC 40U 1

A T89S51

A LE A DC W R R D

EO C

V CC

C 1

22p f

Y 1

11.0592M

C 2

22p f

V CC V CC 8B 7A 6G ND

5

D I

18D E 3R O 1R E 2MA X485

R R

C 310u F

R 28.2K

V CC

123JP1

H EA DE R 3

V CC

U 2

图 5 从机模块电路图

2.4 硬件电路的实现

首先是主从机电路的实现。主机的电路的搭建采用主CPU 板、键盘显示接

口板各一块。照实验原理图将主CPU 板的P0口接到键盘显示接口板的位码接口,P1口接到键盘显示接口板的段码的接口。从机的电路由CPU 板和ADDA 转换板构成。

其次是电平转换电路的焊接。电平转换的路的实现是通过自己搭建电路完

成。电平转换的电路主要有四块MAX485和两个100Ω电阻构成。四块MAX485采用总线方式连接,每个芯片分别引出三个引脚用于单片的连接。

最后将各个模块的按照原理图连接起来。

图 6 硬件电路的连接

3 软件电路的设计

3.1 通信协议的设计

通信协议的设计的设计是本题的重点难点,本题通信协议主要是区别主机和从机。由于串口的方式2、3发送和接收都是11位其第九为可编程置位可以此作为区分地址帧与数据帧从而实现主机与从机,从机与从机的区别。通信协议同样要规定相同通信速率。参考相关资料后编写如下的通信协议。

?数据传输的双方均使用9600kb/s的速率传送数据,使用主从式通信,

主机发送数据,从机接受数据,双方在发送数据时使用查询方式。

?双机开始数据传输时,主机发送地址帧呼叫从机。

?各从机开始都处于只收地址帧状态。接收到地址帧后,将接收到的

地址内容和本机地址比较,如果地址相同,则向主机返回本机地址作为确认信息,并开始接收数据;如果不同,则继续等待。

?主机在发送地址帧后等待,如果接收到的应答信息中的内容和所发

地址帧的内容相同,就开始发送数据,如果不一致,主机将继续发送地址帧。

如多次应答仍无回应则认为出错则主机跳出本次通信。

?从机在接收完数据后,将根据最后的校验结果判断数据接收是否正

确,若校验真确,则向主机发送2AH信号,同时点亮led灯半秒钟,表示本次通信成功;若校验错误,则发送F0H信号,表示接收数据错误,并请求从发。

?主机接收到2AH信号,则通信结束,否则主机将重新发送这组数据。

3.2 主机程序设计

依据试验要求及相应的通信协议现绘制如下的主机程序流程图:

开始

初始化串口

初始化数码管

从机是否应答?

主机发送地址帧

应答地址相符?

接受数据

接受完毕?N

Y

N

N

Y

显示接受结果

地址循环

图 7 主机程序流程图

主机程序:

#include #include

unsigned char LED_seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char LED_bit[6]={0x01,0x02,0x04,0x08,0x10,0x20}; unsigned char LED_buf[6]={0x00,0x00,0x00,0x00,0x00,0x00};

void delay(unsigned long n) //延时子程序 {

unsigned int i; for(i=1;i

void convert(unsigned char a ,unsigned char j) //电压转换子程序{

unsigned char m,n,i;

unsigned char b=0;

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

{

b=i*5;

if(b

{

i++;

}

else

{

break;

}

}

m=i/10;

n=i%10;

j=j*2;

LED_buf[j]=LED_seg[n];

LED_buf[j+1]=LED_seg[m]+0x80;

}

void sbuf_init(void) //串口初始化子程序{

SCON=0xd0; //工作方式3

PCON=0x00;

TMOD=(TMOD&0xf)|0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

}

void flash_led(void) //led显示子程序

{

unsigned char i;

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

{

P2=LED_buf[i];

P0=LED_bit[i];

delay(200);

}

P0=0x00;

}

void main(void) //主函数{ unsigned char ADDR=0x00;

unsigned char tmp;

unsigned char a=0;

unsigned char i=0;

unsigned char j=0;

sbuf_init();

while(1)

{

tmp = ADDR+1;

while(tmp!=ADDR)

{

/* 发送从机地址*/

TI = 0;

TB8 = 1; // 发送地址帧

P1 = 0xff; //发送使能

delay(20);

SBUF = ADDR;

while(!TI);

TI = 0;

delay(20);

/* 接收从机应答*/

P1 = 0x00; //接受使能

delay(50);

while(!RI);

tmp = SBUF;

RI = 0;

delay(20);

}

P1 = 0x00; //接受使能

delay(10);

while(!RI);

a = SBUF;

RI = 0;

delay(10);

j=ADDR;

i++;

ADDR++;

if (i>=3)

{

i=0;

ADDR=0x00;

}

convert(a,j);

flash_led();

}

}

3.3 从机程序设计

从程序流程图如下:

开始

R I清零

保护现场

地址是否符合?

置S M2=0

向主机回送本机地址

发送准备就绪?

向主机放回 R R D Y=1

发送数据

发送完毕

置S M2=1

恢复现场

结束向主机返回R R D Y=0

N

Y

Y

N

N

Y

图8 从机模块流程图从机程序:

#include

#include

#include

#define INO XBYTE[0x0000]

#define ADDR 0x02 //从机地址0x00、ox01、0x02 sbit AD_BUSY=P3^3;

void delay(unsigned long n) //延时子程序

{ unsigned int i;

for(i=1;i

{ ; }

}

void sbuf_init(void) //串口初始换子程序

{ SCON=0xd0; //工作方式3

PCON=0x00;

TMOD=(TMOD&0xf)|0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

}

void main(void) //主程序

{ unsigned char a;

unsigned char tmp=0xff;

sbuf_init();

while(1)

{ SM2=1; // 只接收地址帧

/* 如果接收到的地址帧不是本机地址,则继续等待*/

tmp=ADDR+1;

P1=0x00; //接受使能

while(tmp!=ADDR)

{ while(!RI);

tmp=SBUF;

RI=0;

}

delay(20);

/* 发送本机地址作为应答信号,准备接收数据*/

P1=0xff; //发送使能

delay(40);

TI=0;

TB8=0; // 主机不检测该位

SBUF = ADDR;

delay(10);

while(!TI);

TI = 0;

//SM2 = 0; //允许接收数据

/* 数据发送*/

delay(40);

/*INO=0;

i=i;

i=i;

while(AD_BUSY==0);

a=INO;*/

a=0x88;

SBUF=a;

while(TI==0);

TI=0;

delay(60);

}

}

4 系统的调试与实现

对本课题的设计思路清晰之后,我们接下来所需要做的工作就是依据我们的方案编程实现功能。本过程可以分为五个部分:从机模块调试、 LED显示模块调试、电平转换模块功能调试、主机模块功能调试、整体设计功能调试。

4.1 从机模块调试

从机部分实现的功能是针对主机发送来的地址进行对照,如果是自己的从机地址,就会发送AD转换结果。为了检测此部分的功能是否能够实现,我们借助串口测试软件,发送预设的从机地址看看该从机是否会把AD转换的结果发送来。此从机调试模块分为两个层次:1、用一个简单的程序测试从机硬件部分是否能正常运行;2、在硬件良好的情况下测试编写的从机部分代码能否顺利实现功能。

4.2 LED显示模块调试

该部分相比较而言简单一点,其实也可以归为主机模块调试的一部分。LED 功能就是用来显示DA转换的结果。连接好电路之后,用个小程序测试LED显示功能良好的情况下显示从机发送来的数据。此部分在主机模块功能调试具体介绍。

4.3电平转换模块功能调试

此部分硬件电路多为我们自己焊接。包括4片MAX485转换芯片组成的电平转换电路。它们完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD 和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A 端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片

机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。由于经验知识不足,我们匹配电阻选择了一个阻值为10KΩ的电阻,造成芯片烧坏,此处应引起注意。

4.4主机模块功能调试

当主机发送地址帧呼叫从机时从机将接收到的内容与自己的地址比较,如若相同从机会向主机发送主机所需要的数据。而主机接收到正确的数据,便会通过LED数码管显示出来,这样便会实现我们预想的主机模块功能。当然主机部分程序包含上面调试好的LED显示模块程序。此处将从机送来的数值通过调用LED

显示模块子程序显示出来。LED显示模块分为三个区域,从机0、从机1、从机2分别占用2个显示管。

4.5整体设计功能调试

各个模块程序功能调试好之后,将他们各就各位。但此时我们又遇到一个难题:从机送给主机的数据在经MAX485传递给主机时读出来的不是理想的结果,后经过示波器查看输出波形,经多次调试,将主机与从机时序调整一致才得以在主机收到从机发送来的数据。

5 总结与体会

为期一个礼拜的单片机课程设计就这么快的结束了,在这短暂的一个星期里我们学到了很多很多。我们在课堂上掌握的仅仅是书面的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做此类的课程设计就为我们提供了良好的实践平台。

在做本次课程设计的过程中,我感触最深的当属查阅大量的资料,无论是课本上的还是网上的我们都学习了不少,从中也借鉴了别人的思想,开阔了自己的思路。做单片机课程设计,对设计者对软硬件的理解和掌握的要求比较高。在设计程序之前,设计者必学对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。我们在实验中就遇到了一系列问题,比如刚刚开始时硬件电路的连接,针对MAX485芯片匹配电阻的选择,从机与主机握手的过程等等,在大家仔细的思考和老师同学的帮助下顺利解决。

此次课程设计在组长杨小强同学的带领下我们步步为营,大家学会了一个重要的设计技巧,就是一步一个脚印,踏踏实实的编程,每编写好一个模块的程序后应及时检测是否正确。若是“一步登天”,一次性将所有程序编写好再进行测试,这样如若出现问题,但无法知道问题出在何处,这样会带来更大的麻烦,修改就无从下手。总而言之,此次的单片机课程设计让我们“吃尽了苦头”,花费了不少脑细胞,无论是软件的使用还是对单片机内部资源硬件的了解,我们的认识都大大加深了。

同时感谢李老师及同学们,感谢你们给予我们小组的指导和帮助,谢谢你们!

参考文献

[1] 戴佳,戴卫恒,刘博文 51单片机C语言应用程序设计实例精讲.第二版电子工业出版社 2008.12

基于STC89C52单片机的动态数码管显示C语言程序

* 实验说明 : 8位数码管显示0~F #include #define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选 //--定义全局变量--// unsigned char code DIG_PLACE[8] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制查表的方法控制unsigned char code DIG_CODE[17] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 unsigned char DisplayData[8]; //用来存放要显示的8位数的值 void DigDisplay(); //动态显示函数 void main(void) { unsigned char i; for(i=0; i<8; i++) { DisplayData[i] = DIG_CODE[i]; } while(1) { DigDisplay(); } } void DigDisplay() { unsigned char i; unsigned int j; for(i=0; i<8; i++) { GPIO_PLACE = DIG_PLACE[i]; //发送位选 GPIO_DIG = DisplayData[i]; //发送段码 j = 10; //扫描间隔时间设定 while(j--); GPIO_DIG = 0x00;//消隐 } }

STC89C52单片机详细介绍

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL 搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 单片机总控制电路如下图4—1: 图4—1单片机总控制电路 1.时钟电路 STC89C52内部有一个用于构成振荡器的高增益反相放大器,引

脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图4—2(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。 外部方式的时钟电路如图4—2(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。 示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。 RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。

基于51单片机的多机通信系统设计

单片机多机通信系统 一、引言 随着单片机技术的不断发展,单片机的应用已经从单机向多机互联化方向发展。单片机在实时数据采集和数据处理方面,有着成本低、能满足一般要求、开发周期短等优点,其在智能家居、计算机的网络通信与数据传输、工业控制自动化等方面有着广泛的应用。 本系统是面向智能家居应用而设计的。在初期,采用红外无线通信方式,其传输距离短,适于一般家庭应用,且成本相对较低;待方案成熟、成本允许,可以改用GSM无线通信方式。 二、系统原理及方案设计 1 、系统框架介绍 本系统为基于51单片机的多机红外无线通信系统,由三个51单片机模块组成。其中一个作为主机(即上位机),负责接收来自从机1(即下位机)采集的数据信息,以及向从机2(即下位机)发送控制信息。从机1是数据采集模块,采集温度、光强等室内数据,并将其发送给主机。主机经分析处理,作出相应判断,并给从机2发送控制信息,使由从机2控制的电机作出相应反应,调节室内环境状况。 系统总体框图如下图1所示,图2为红外收发模块简图:

图1 系统总体框图 图2 红外收发模块简图 2 、多机通信原理介绍 在多机通信系统中,要保证主机与从机间可靠的通信,必须要让通信接口具有识别功能,51单片机串行口控制寄存器SCON中的控制位SM2正是为了满足这一要求而设置的。当串行口以方式2或方式3工作时,发送或接收的每一帧信息都是11位的,其中除了包含SBUF寄存器传送的8位数据之外,还包含一个可编程的第9位数据TB8或RB8。主机可以通过对TB8赋予1或0,来区别发送的是数据帧还是地址帧。 根据串行口接收有效条件可知,若从机的SCON控制位SM2为1,则当接收的是地址帧时,接收数据将被装入SBUF并将RI标志置1,

AVR单片机串口多机通讯程序

A VR单片机串口多机通讯程序 [日期:2010-09-01 ] [来源:本站原创作者:admin] [字体:大中小] (投递新闻) 在多机通信过程中,所有设备的RS232接口是并在通信线上的,其中只能有一个设备为主机,其他为从机,通信由主机发起。数据帧一般采用1位起始位、9位数据位,其中第9位(RXB8)被用作为表征该帧是地址帧还是数据帧。当帧类型表征位为“1”时,表示该帧数据为一个地址帧;当帧类型表征位为“0”时,表示这个帧为一个数据帧。 在A VR中,通过设置从机的UCSRA寄存器中标志位MPCM,可以使能USART接收器对接收的数据帧进行过滤的功能。如果使能了过滤功能,从机接收器对接收到的那些不是地址信息帧的数据帧将进行过滤,不将其放入接收缓冲器中,这在多机通信中有效的方便了从机MCU处理数据帧程序的编写(同标准51 结构相比)。而发送器则不受MPCM位设置的影响。 多机通信模式允许多个从机并在通信线路上,接收一个主机发出的数据。通过对接收到的地址帧中的地址进行解码,确定哪个从机被主机寻址。如果某个从机被主机寻址,它将接收接下来主机发出的数据帧,而其它的从机将忽略数据帧,直到再次接收到一个地址帧。(从机地址是由各个从机自己的软件决定的)。 对于在多机通信系统中的主机MCU,可以设置使用9位数据帧结构(UCSZ=7)。当发送地址帧时,置第9位为“1”;发送数据帧时,置第9位为“0”。在这种情况下,从机也必须设置成接收9位数据帧结构。 多机通信方式的数据交换过程如下: 1)设置所有从机工作在多机通信模式(MPCM=1)。 2) 通信开始是由主机先发送一个地址帧,如8位数据为0X01(1号从机地址),第9位=“1”,呼叫1号从机。 3)所有从机都接收和读取该主机发出的地址帧。在所有从机的MCU中,RXC标志位被置位,表示接收到地址帧。 4)每一个从机MCU读UDR寄存器,并判断自己是否被主机寻址。如果被寻址,清UCSAR寄存器中的MPCM位,等待接收数据;否则保持MPCM为“1”,等待下一个地址帧的接收(该步应由用户软件处理实现): A)作为1号从机的MCU处理过程为:收到地址帧后,判定读取UDR数据0X01为自己的地址,将MPCM位置“0”,接收之后所有主机下发的数据帧,直到下一个地址帧为止。 B)其它从机MCU的处理过程:收到地址帧后,判定读取UDR数据0X01不是自己的地址,将MPCM位置“1”,这样他们将忽略主机随后发送的数据帧,直到主机再次发送地址帧。 5)当被寻址的从机MCU接收完最后一个数据帧后,将MPCM位置位,等待下一个地址帧的出现(该步也应由用户软件处理实现),然后从步骤2开始重复。 [转]例子; 通讯规则: 1:时钟7.3728 MHz/波特率9600/9个数据位/奇校验/1个停止位/硬件多机通讯功能/ 2:通讯连接采用硬件MAX485,双向单工

基于STC89C52单片机毕业设计完整版附原理图pcb图源程序仿真图

基于STC89C52单片机的电子密码锁 学生姓名: xx 学生学号: xxxxx 院(系):电气信息工程学院 年级专业: 2010级电子信息工程2班 指导教师:陶文英 二〇一三年六月 摘要

随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事情屡见不鲜,电子密码锁具有安全性能高,成本低,功耗低,操作简单等优点使其作为防盗卫士的角色越来越重要。 从经济实用角度出发,采用51系列单片机,设计一款可更改密码,LCD1602显示,具有报警功能,该电子密码锁体积小,易于开发,成本较低,安全性高,能将其存储的现场历史数据及时上报给上位机系统,实现网络实时监控,方便管理人员及时分析和处理数据。其性能和安全性已大大超过了机械锁,特点有保密性好,编码量多,远远大于弹子锁,随机开锁成功率几乎为零;密码可变,用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降;误码输入保护。当输入密码多次错误时,报警系统自动启动;电子密码锁操作简单易行,受到广大用户的亲睐。 关键词单片机, 密码锁, 更改密码, LCD1602 目录

错误!未定义书签。 1 绪论 1.1电子密码锁简介 (1) 1.2 电子密码锁的发展趋势 (1) 2 设计方案 (3) 3 主要元器件 (4) 3.1 主控芯片STC89C52 (4) 3.2 晶体振荡器 (8) 3.3 LCD显示密码模块的设计 (9) 3.3.1 LCD1602简介 (9) 3.3.2 LCD1602液晶显示模块与单片机连接电路 (11) 4 硬件系统设计 (12) 4.1 设计原理 (12) 4.2 电源输入电路 (12) 4.3 矩阵键盘 (13) 4.4 复位电路 (14) 4.5 晶振电路 (14) 4.6 报警电路 (15) 4.7 显示电路 (15) 4.8 开锁电路 (16) 4.9 电路总体构成 (16) 5 软件程序设计 (18) 5.1 主程序流程介绍 (18) 5.2 键盘模块流程图 (19) 5.3 显示模块流程图 (21) 5.4 修改密码流程图 (22) 5.5 开锁和报警模块流程图 (23) 6 电子密码锁的系统调试及仿真 (25) 6.1硬件电路调试及结果分析 (25) 6.2软件调试及功能分析 (25) 6.2.1调试过程 (25) 6.2.2 仿真结果分 (26)

单片机多机通信实现

单片机多机通信实现 1、设计要求 三片单片机利用串行口进行串行通信:串行通信的波特率为9600bit/s。串行口工作方式为方式1的单工串行通信。 2、设计方案 一个主机和两个从机,主机通过按键选择要通信的从机,按键确认后通过矩阵键盘输入要传输的信息,从机接收主机发送的信息并发回长度校验码给主机,主机确认校验信息是否正确,若正确,主机液晶显示“send:信息”和从机数,从机液晶显示所接收的信息;若错误则主机从发信息,重复前面的步骤。 3、硬件电路设计 3.1 单片机最小系统的设计 本系统共用三块单片机,每块单片机均选用AT89S52,最小系统也都一样。由于三块单片机的主要任务是通信,为了得到准确的波特率,采用振荡频率为11.0592MHz的晶振,再接两个30pF的瓷片电容即可构成单片机的时钟电路。 单片机最小系统电路如下: 图3-1 单片机最小系统电路 复位电路也可以换成看门狗电路实现,可使单片机可靠的复位。为了简化电路设计,本系统采用简单方法,可使单片机上电复位,此外可以通过按键手动复位。单片机上电即可复位,R1与C3的充电时间大于两倍的机器周期,使RST引脚有足够长的时间保存高电平,使单片机可靠的复位。正常工作时,按下按键SW1就可以使单片机复位。 3.2 矩阵键盘电路设计

图3-2 矩阵键盘电路 P1口接4×4的矩阵键盘,共16个按键,分别为0~C及“开始通信”,“选择从机”和“输入信息”键。P1.0~P1.3接矩阵键盘的行,P1.4~P1.7接矩阵键盘的列。 3.3 液晶显示电路设计 液晶显示电路如下图: 图3-3 液晶LCD1602显示电路 P0口上拉10K×8的排阻,自己画的排阻符号如下: 图3-4 排阻符号 排阻具有九个引脚,一个公共端,另外八个脚分别接到需要接上拉电阻的单片机的P0口。排阻相当于8个大小均为10K的电阻,在电路中主要其电平转化作用,通过的电流很小,每只电阻的功耗也很小。如接5V电源,每只电阻的电流约为0.5mA,很小,但是由于P0口是接液晶,不用接排阻也能实现,本着节约的原则在本设计中没有接排阻。 主机整体原理图如下:

51单片机多机通信课程设计

《单片机应用与仿真训练》设计报告 单片机多机通信 姓名: 学号: 专业班级: 指导老师: 所在学院: 2011年7月5日

摘要 本设计是基于AT89S52单片机温度检测传输的三机通信系统,有三个单片机组成,其中一个作为主机(上位机),控制并负责接收来自从机1号和从机2号采集的数据信息,并显示在数码管上。由主机发送控制信息(通过按键控制),确定是接收来自想要得到各从机数据。从机1号和2号是数据采集模块,用来采集室内或室外温度信息,并通过通信协议传送给主机。为保证三机通信可靠性,通信口要有识别功能,51单片机串行口控制寄存器SCON中SM2位正是满足这一要求而设置的。当串行口以工作方式三工作时,接收和发送的信息都是11位数据,既包含SBUF寄存器传送的8位数据,还包括SCON中可编程第9位数据即TB8或RB8,主机可通过设定TB8是0或1,来区别发送的是地址还是数据。从机都先将SCON中的SM2设置为1,待主机发送地址信息,与本身的地址对照,如果是,则令从机SM2为0,准备接收主机信息并发送温度信息,如果不是,则继续等待。主机通过中断口接收数据,处理后显示在数码管上。此次设计由于只有一个18b20温度传感器,这里用三个任意的数据代替从机2采集温度数据,由于传输距离较短,这里不用MAX232,直接将主机的发送端接从机接收端,主机接收端连接从机发射端,仿真结果正常显示,实验结果正常。

目录 1概述 (1) 1.1设计概述 (1) 1.2多机通信基本原理 (1) 1.3 通信协议 (2) 2系统总体方案及硬件设计 (3) 2.1总体设计方案 (3) 2.2硬件电路设计 (3) 3软件设计 (7) 3.1控制流程图 (7) 3.2串行口采集步骤 (7) 3.3软件流程图 (8) PROTEUS仿真 (9) 课程设计体会 (11) 参考文献: (12) 附件1:主机A源程序代码 (13) 附件2:原理图 (24)

STC89C52单片机用户手册

STC89C52RC单片机介绍 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051. 工作电压:~(5V单片机)/~(3V单片机) 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻。 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/,TxD/)直接下载用户程序,数秒 即可完成一片 具有EEPROM功能 具有看门狗功能 共3个16位定时器/计数器。即定时器T0、T1、T2 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) PDIP封装 STC89C52RC单片机的工作模式 掉电模式:典型功耗<μA,可由外部中断唤醒,中断返回后,继续执行

原程序 空闲模式:典型功耗2mA 正常工作模式:典型功耗4Ma~7mA 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备 STC89C52RC引脚图 STC89C52RC引脚功能说明 VCC(40引脚):电源电压 VSS(20引脚):接地 P0端口(~,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。

基于89C52单片机的多机通信

89C52单片机多机通信 一、设置定时器的工作方式及初值: TMOD=0x20; TH1=0xF4; TL1=0xF4; 二、设置串口寄存器的工作方式 SCON=0x90; PCON|=0x80; 其中SCON各位为 PCON各位为 SM2=1时:RB8=1 产生中断 RB8=0 不产生中断 SM2=0时,产生中断 四、多机通信过称:主机>>>>>>地址码+RB8=1>>>>>从机 从机判断地址码与之对应则SM2=0 主机>>>>>>数据码+RB8=0>>>>>从机 从机接收数据 五、参考程序(经过实验认证) 主机 #include int a;

void init() {EA=0; TMOD=0x20; TH1=0xF4; TL1=0xF4; SCON=0x90; PCON|=0x80; EA=1; ES=1; ET1=1; TR1=1; TI=0; RI=0; SM2=1; } void delay() {int j,k; for(j=0;j<300;j++) for(k=0;k<1000;k++); } main() {init(); TB8=1; SBUF=0x01; delay(); TB8=0; SBUF=0x88; delay();

TB8=0x02; SBUF=0x66; while(1); } 从机1:地址0x01 #include int a; void init() {EA=0; TMOD=0x20; TH1=0xF4; TL1=0xF4; SCON=0x90; PCON|=0x80; EA=1; ES=1; ET1=1; TR1=1; TI=0; RI=0; SM2=1; } void delay() {int j,k; for(j=0;j<1000;j++) for(k=0;k<1000;k++); } main()

STC89C52单片机用户手册

STC89C52F单片机介绍 STC89C52F单片机是宏晶科技推出的新一代高速 /低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: * 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051. * 工作电压:5.5V?3.3V (5V单片机)/3.8V?2.0V (3V单片机) * 工作频率范围:0?40MHz相当于普通8051的0?80MHz实际工作频率可达48MHz *用户应用程序空间为8K字节 * 片上集成512字节RAM * 通用I/O 口(32个),复位后为:P1/P2/P3/P4是准双向口 /弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口 用时,需加上拉电阻。 * ISP (在系统可编程)/IAP (在应用可编程),无需专用编程器,无需专用仿真器,可通过串口( RxD/P3.0,TxD/P3.1 )直接下载用户程序,数秒 即可完成一片 * 具有 EEPROM能 *具有看门狗功能 * 共3个16位定时器/计数器。即定时器T0、T1、T2 * 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 * 通用异步串行口( UART,还可用定时器软件实现多个 UART * 工作温度范围:-40?+85C(工业级)/0?75C(商业级) * PDIP封装 STC89C52F单片机的工作模式 *掉电模式:典型功耗<0.1吩,可由外部中断唤醒,中断返回后,继续执行原程序

串口通信-多机通信系统 - 单片机

目录 一、题目要求与功能分析 (1) 1.1题目要求 (1) 1.2功能及整体模块分析 (1) 二方案论证 (2) 2.1设计目的 (2) 2.2设计思路 (2) 2.2.1原理分析和讨论 (2) 2.2.2题设分析 (3) 三、电路设计 (5) 3.1 整体功能框架设计 (5) 3.2 硬件电路设计 (6) 3.2.1 主机硬件电路设计 (7) 3.2.2 从机硬件电路设计 (10) 3.3软件电路设计 (12) 3.3.1 协议设计 (12) 3.3.2 主机程序流程图设计 (13) 3.3.3 从机程序流程图设计 (14) 四系统的调试与实现 (16) 4.1主机模块功能调试 (16) 4.2从机模块调试 (16) 4.3整体设计功能调试 (16) 五总结与体会 (18) 参考文献 (18) 附录 (19)

一、题目要求与功能分析 1.1题目要求 本小组的试验题目如下: 一、任务: 设计实现多台单片机系统之间的串行通信 二、基本要求(难度系数0.8): (1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机; (2)选择合适总线接口芯片,正确连接主机和从机; (3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示。 三、发挥部分: (1)完善通信功能。(根据完成情况加分,上限+0.2) 1.2功能及整体模块分析 随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,多机通信系统设计的监控系统逐步普及。此多机通信系统具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。在检测大量模拟量的工业现场使用相似的多机通讯系统;单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。 本次实验的目的是就是应用单片机的串口通信功能实现一个分布式采集系统。整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD 转换结果的采集并在数码管上显示之。这样从硬件的角度上将整个系统分为两个模块—主机模块和从机模块。主机模块中包含单片机模块、数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块。就本次实验而言硬件电路的设计难点在于串口电平转换芯片MAX485的连接,而软件的设计在于串口通信协议的设定及其相互通信的过程。

基于STC89C52单片机的数字温度计

基于STC89C52单片机的数字温度计 成员姓名:邹远淳徐冰孙顺新唐高峰 专业班级:自动化2班 指导教师:杨伟新

目录 摘要··················································P1 1绪论·················································P2 2系统组成及工作原理···································P3 2.1总体设计方案········································P3 2.2系统模块组成········································P3 3系统电路设计·········································P4 3.1 STC89C52单片机主控制器······························P4 3.2 LED数码管显示模块···································P5 3.3温度检测模块·········································P7 4系统软件设计·········································P8 5系统测试·············································P9 5.1主要指标测试·········································P9 5.2测试结果分析·········································P9 参考文献·················································P10 附录··················································P11

(完整版)STC89C52RC单片机手册

STC89C52单片机用户手册 [键入作者姓名] [选取日期]

STC89C52RC单片机介绍 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: 1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意 选择,指令代码完全兼容传统8051. 2.工作电压:5.5V~ 3.3V(5V单片机)/3.8V~2.0V(3V单片机) 3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作 频率可达48MHz 4.用户应用程序空间为8K字节 5.片上集成512字节RAM 6.通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉, P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻。 7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片 8.具有EEPROM功能 9.具有看门狗功能 10.共3个16位定时器/计数器。即定时器T0、T1、T2 11.外部中断4路,下降沿中断或低电平触发电路,Power Down模式可 由外部中断低电平触发中断方式唤醒 12.通用异步串行口(UART),还可用定时器软件实现多个UART 13.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 14.PDIP封装 STC89C52RC单片机的工作模式 掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序

基于STC89C52单片机最小系统的设计

基于STC89C52单片机最小系统的设计 1 设计内容及要求 设计题目:基于STC89C52单片机最小系统的设计及制作。 设计要求:输入信号为传感器、电压、电流、开关等形式,单片机型号可以自己选择(51,128,430等),输出控制信号为模拟电压或者数字信号,控制对象可以是电机(直流电机,步进电机)、开关、显示器等。(注:可以采用单片机、传感器电路模块以及集成电路芯片制作。) 使用器材:感光板及常用PCB制版器材、常用电子装配工具、万用表、示波器及电子元器件(详见附录)。 2 STC89C52单片机 2.1 STC89C52单片机简介 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。用专业语言讲,单片机就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯片。 2.2 单片机的特点 (1)高集成度,体积小,高可靠性 单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪声性能优于一般通用的CPU。单片机程序指令,常数及表格等固体化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。 (2)控制功能强 为了满足对控制对象的要求,单片机的指令系统均有极丰富的条件:分支转移能力、I/O口的逻辑操作机位处理能力,非常适用于专门的控制功能。 (3)低电压,低功耗,便于生产携带 为了便于广泛使用于便携式系统,许多单片机内的工作电压仅为 1.8V~3.6V,工作电流仅为数百微安。 (4)易扩展 片内具有计算机正常运行所需的部件。芯片外部有许多供扩展用的三总线及

STC89C52RC单片机的特点

STC89C52RC 单片机介绍 STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051 单片机,12 时钟/机器周期和 6 时钟/机器周期可以任意选择。 主要特性如下: 1. 增强型8051 单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051. 2. 工作电压:5.5V? 3.3V (5V单片机)/3.8V?2.0V (3V单片机) 3. 工作频率范围:0?40MHz,相当于普通8051的0?80MHz,实际工作频率可达 48MHz 4. 用户应用程序空间为8K 字节 5. 片上集成512 字节RAM 6. 通用I/O 口(32 个)复位后为:,P1/P2/P3/P4 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电 阻。 7. ISP (在系统可编程)/IAP (在应用可编程),无需专用编程器,无需专用仿 真器,可通过串口(RxD/P3.0,TxD/P3.1 )直接下载用户程序,数秒即可完成一片 8. 具有EEPROM 功能 9. 具有看门狗功能 10. 共3 个16 位定时器/计数器。即定时器T0、T1、T2 11. 外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒 12. 通用异步串行口(UART ),还可用定时器软件实现多个UART 13. 工作温度范围:-40?+85 C (工业级)/0?75 C(商业级) 14. PDIP 封装 STC89C52RC 单片机的工作模式 掉电模式:典型功耗<0.1卩可由外部中断唤醒,中断返回后,继续执行原程序 空闲模式:典型功耗2mA 典型功耗正常工作模式:典型功耗4Ma?7mA 典型功耗掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备 STC89C52RC 引脚功能说明 VCC (40 引脚):电源电压 VS S(20 引脚):接地 P0端口(P0.0?P0.7 P0.7, 39?32引脚):P0 口是一个漏极开路的8位双向I/O 口。作为输出端口,每个引脚能驱动8 个TTL 负载,对端口P0 写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时在访问外部程序和数据 存储器时,P0 口也可以提供低8 位地址和8 位数据的复用总线位数据的复用总线。此时,P0 口内部上拉电阻有效。在Flash ROM 编在程时,P0 端口接收指令字节端口接收指令字节;而在校验程序时,则输出指令字节则输出指令字节。验证时,要求外接上拉电阻。 P1端口(P1.0?P1.7, 1?8引脚):P1 口是一个带内部上拉电阻的8位双向I/O 口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为 有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()。 此外,P1.0 和P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2 )和定时器/计数器 2 的触发输入(P1.1/T2EX ),具体参见下表: 在对Flash ROM 编程和程序校验时,P1 接收低8 位地址。

51单片机多机通信程序

51单片机多机通信程序(主机部分) /* multi_m.c */ /* 多机通信的主机部分*/ #ifndef __MULTI_M_C__ #define __MULTI_M_C__ #include #include #define __MAX_LEN_ 64 // 数据最大长度 #define _MHZ_ 11 // 设置单片机使用的晶振频率(11.0592MHz) /* 以下为程序协议中使用的握手信号*/ #define __SUCC_ 0x0f // 数据传送成功 #define __ERR_ 0xf0 // 数据传送错误 void init_serial(); // 串口初始化 void send_data(unsigned char *buf); // 发送数据 void delay10ms(unsigned int count); // 延时子程序(10ms) void main() { char buf[__MAX_LEN_]; unsigned char i = 0; unsigned char tmp; unsigned char addr; // 该字节用于保存要通信的从机地址 /* 为缓冲区赋初值*/ P0 = 0xff; while(P1 != 0) // 每隔100ms从P0口读取,若读取到0则表明数据采集结束 { *(buf+i) = P0; delay10ms(10); // 延时100ms P0 = 0xff; i++; } *(buf+i) = 0; // 缓冲区最后一个字节为0表示数据结束 /* 读要访问的分机地址*/ P0 = 0xff; addr = P0; /* 串口初始化*/ init_serial(); // 初始化串口 EA = 0; // 关闭所有中断 /* 发送地址帧并接收应答信息,如果接收的信号与发送的地址信息不同,则重新发送地址帧*/ tmp = addr-1; while(tmp != addr) { /* 发送从机地址*/

(完整版)基于STC89C52单片机的电子时钟设计毕业设计论文

阳泉职业技术学院 毕业设计论文 基于51单片机的电子时钟设计 系部:信息系

专业:电气自动化班级:09级一班学生姓名:张瑞勇 学号: 指导教师:耿素军 2012年 5 月 6 日

摘要 随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。 时间就是金钱、时间就是生命、时间就是胜利……,准确的掌握时间和分配时间对人们来说至关重要,时钟是我们生活中必不可少的工具。电子钟的设计方法有很多种,但是基于单片机并通过LCD显示的电子时钟具有编程灵活、精确度高、便于携带、显示直观等特点。 利用STC89C52单片机对DS1302时钟芯片进行读写操作并通过1602字符液晶显示实时时钟信息,这样便构成了一个单片机电子时钟。 关键词:单片机,电子时钟,STC89C52

ABSTRACT With the rapid development of microcomputer technology in its promotion, modern electronics into almost all areas of society, a strong impetus to the development of social productive forces and social improvement in the level of information, but also to further improve the performance of modern electronic products. Time is a money, time is life, time is victory… Accurate grasp of time and allocation of time is crucial to people, The clock is necessary in our life tools . Clock Design There are many ways, of electronic capabilities, . In this paper, through the use of STC89C52 microcontroller by DS1302 clock chips for reading and writing operation and through 1602 character liquid crystal display real-time clock information so that forming a single chip electronic clock. Key Words: Microcontroller,STC89C52,Electronic clock,

基于51单片机的多机通信系统

课程设计报告 课程单片机技术 题目串口通信-多机通信系统系别 年级 07级专业电子科学与技术班级学号 学生姓名 指导教师职称 设计时间

目录 1 题设要求分析 (1) 2 硬件电路的设计 (3) 2.1 系统的组成 (3) 2.2 系统的工作原理 (3) 2.3 硬件电路原理图设计 (4) 2.4 硬件电路的实现 (7) 3 软件电路的设计 (8) 3.1 通信协议的设计 (8) 3.2 主机程序设计 (9) 3.3 从机程序设计 (14) 4 系统的调试与实现 (18) 4.1 从机模块调试 (18) 4.2 LED显示模块调试 (19) 4.3电平转换模块功能调试 (19) 4.4主机模块功能调试 (19) 4.5整体设计功能调试 (20) 参考文献 (22)

1 题设要求分析 本小组的试验题目如下: 一、任务: 设计实现多台单片机系统之间的串行通信 二、基本要求(难度系数0.8): (1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机; (2)选择合适总线接口芯片,正确连接主机和从机; (3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示。 三、发挥部分: (1)完善通信功能。(根据完成情况加分,上限+0.2) 经过本小组成员对本课题认真讨论先做出如下分析: 对课题分析后本小组认为本次实验的目的是就是应用单片的串口通信功能实现一个分布式采集系统。整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD转换结果的采集并在数码管上显示之。这样从硬件的角度上将整个系统分为两个模块——主机模块和从机模块。主机模块中包含单片机模块、led数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块。就本次试验而言硬件电路的设计难点在于串口电平转换芯片的选择及其连接,而软件的设计难点在于串口通信协议的制定及相关程序的编写。 实现多机通信方案的实现。不同于双机通信多机通信系统中需要识别通信信息发出者或是接受者是谁。经过查阅资料发现在大多数的多机通信系统中都是才采用地址识别的方法实现的。所谓地址识别方法就是在发送或接受信息前先发送和校验地址帧。就本题目而言,先要对通信系统中的每台机器分配一个唯一的地

基于单片机的多机通信系统

课程设计报告课程单片机技术 题目串口通信-多机通信系统 系别 年级 07级专业电子科学与技术 班级学号 学生姓名 指导教师职称 设计时间

目录 1 题设要求分析 (1) 2 硬件电路的设计 (4) 2.1 系统的组成 (4) 2.2 系统的工作原理 (4) 2.3 硬件电路原理图设计 (4) 2.4 硬件电路的实现 (5) 3 软件电路的设计 (6) 3.1 通信协议的设计 (6) 3.2 主机程序设计 (7) 3.3 从机程序设计 (14) 4 系统的调试与实现 (17) 4.1 从机模块调试 (18) 4.2 LED显示模块调试 (18) 4.3电平转换模块功能调试 (18) 4.4主机模块功能调试 (19)

4.5整体设计功能调试 (19) 参考文献 (22)

1 题设要求分析 本小组的试验题目如下: 一、任务: 设计实现多台单片机系统之间的串行通信 二、基本要求(难度系数0.8): (1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机; (2)选择合适总线接口芯片,正确连接主机和从机; (3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示。 三、发挥部分: (1)完善通信功能。(根据完成情况加分,上限+0.2) 经过本小组成员对本课题认真讨论先做出如下分析: 对课题分析后本小组认为本次实验的目的是就是应用单片的串口通信功能 实现一个分布式采集系统。整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD转换结果的采集并在数码管上显示之。这样从硬件的角度上将整个系统分为两个模块——主机模块和从机模块。主机模块中包含单片机模块、led数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模

基于STC89C52单片机的多功能电子万年历

摘要 本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。 关键字:万年历温度计液晶显示

ABSTRACT This paper introduces the based on STC89C52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With STC89C52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect. Key words:Perpetual Calendar thermometer LCD display

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