单片机原理实验报告(详细)

单片机原理实验报告(详细)


2024年5月3日发(作者:)

湖 南 城 市 学 院

实 验 报 告

2018-2019 学年 上 学期

姓 名: ***

班 级学 号: ******

实 验课 程: 单片机原理及应用

实验室名称: 电子工程实验室

湖南城市学院信息与电子工程学院实验中心印制

实验项目名称: 实验一 指示灯和开关控制器实验

实验时间:第 周 星期 第五六节, 年 月 日

学生姓名:****

指导老师:*****

班级学号:*****

实验成绩:

一、实验目的及要求

1、学习51单片机I/O基本输入/输出功能,掌握汇编语言的编程与调试方

法;

2、熟悉proteus软件,了解软件的结构组成与功能;

3、学会在ISIS模块中进行汇编程序录入、编译和调试;

4、理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。

二、实验原理

实验电路原理图如图1所示,图中输入电路由外接在P3口的8只拨动开关

组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还

包括时钟电路、复位电路和片选电路。

+5V

C2

30pF

C1

22uF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

R1

1k

9

RST

+5V

+

5

V

D1

Y1

LED-YELLOW

D2

Y2

LED-YELLOW

D3

Y3

29

30

31

R2

200

PSEN

ALE

EA

R3

200

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

R4

200

Y4

D4

LED-YELLOW

D5

LED-YELLOW

LED-YELLOW

D6

R5

200

Y5

R6

200

Y6

R7

200

Y7

D7

LED-YELLOW

LED-YELLOW

D8

R8

200

Y8

LED-YELLOW

R9

200

图1 实验原理图

在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8

只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可

观察到为准),然后根据开关状态控制对应发光二极管的灯亮状态,即开关闭合

相应灯亮,开关断开相应灯灭,直至停止程序运行。软件编程原理为:

(1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0;

灭灯:向P2口送入数值0FFH;

闪烁3次:循环3次;

闪烁快慢:由软件延时时间决定。

(2)根据开关状态控制灯亮或灯灭

开关控制灯:将P3口(即开关状态)内容送入P2口;

无限持续:无条件循环。

程序流程图如图2所示。

主程序

延时子程序

计数器 R5←#3

计数器R0←#100

P2←#0

计数器R1←#50

延时子程序

计数器R2←#25

P2←#0FFH

N

R2-1=0?

延时子程序

Y

N

R5-1=0?

N

R5-1=0?

Y

R5-1=0?

N

Y

P2←P3

Y

子程序返回

图2 实验程序流程图

三、实验仪器设备及装置

(1) 硬件:电脑一台;

(2) 仿真软件:Proteus;

(3) 编程软件Keil uVision4。

其中,仿真软件ISIS元件清单如表1所示。

表1 仿真软件ISIS元件清单

元件类别

Microprocessor ICs

Miscellaneous

Capacitors

Capacitors

Resistors

Resistors

Optoelectronices

Switches&RelayS

电路符号

U1

X1/12MHz

C2~C3/30pF

C1/22uF

R1/10k

R2~R9/200

D1~D8

SW1~SW8

元件名称

80C51

CRYSTAL

CAP

CAP-ELEC

RES

RES

LED-RED

SWITCH

四、实验内容和步骤

(一)实验内容:

(1)熟悉ISIS模块的汇编程序编辑、编译与调试过程;

(2)完成实验的汇编语言的设计与编译;

(3)练习ISIS汇编程序调试方法,并最终实现实验的预期功能。

(二)实验步骤:

(1)提前阅读与实验相关的阅读材料;

(2)参考指示灯/开关控制器的原理图和实验的元件清单,在ISIS中完成电

路原理的绘制;

(3)参考程序流程图在Keil uVision4中编写和编译汇编语言程序;

(4)利用ISIS的汇编调试功能检查程序的语法和逻辑错误;

(5)观察仿真结果,检验与电路的正确性。

五、实验数据记录与处理或实验现象与分析

1、实验程序

#include

#define uchar unsigned char

#define uint unsigned int

void delay(uchar k)

{

uint j;

while(k--)

for(j=0;j<1000;j++);

}

void main(void)

{

uchar temp;

uint i;

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

{

P2=0;

delay(100);

P2=0xff;

delay(100);

}

while(1)

{

temp=P1;

P2=temp;

}

}

2、实验现象

① 程序开始运行后,8只发光二极管先整体闪烁3次(亮→暗→亮→暗→

亮→暗)实验结果如图3图4所示。

+5V

C2

30pF

C1

22uF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

R1

1k

9

RST

+5V

+

5

V

D1

Y1

LED-YELLOW

D2

Y2

LED-YELLOW

D3

Y3

29

30

31

R2

200

PSEN

ALE

EA

R3

200

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

R4

200

Y4

D4

LED-YELLOW

D5

LED-YELLOW

LED-YELLOW

D6

R5

200

Y5

R6

200

Y6

R7

200

Y7

D7

LED-YELLOW

LED-YELLOW

D8

R8

200

Y8

LED-YELLOW

R9

200

图3 二极管灯亮图

+5V

C2

30pF

C1

22uF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

R1

1k

9

RST

+5V

+

5

V

D1

Y1

LED-YELLOW

D2

Y2

LED-YELLOW

D3

Y3

29

30

31

R2

200

PSEN

ALE

EA

R3

200

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

R4

200

Y4

D4

LED-YELLOW

D5

LED-YELLOW

LED-YELLOW

D6

R5

200

Y5

R6

200

Y6

R7

200

Y7

D7

LED-YELLOW

LED-YELLOW

D8

R8

200

Y8

LED-YELLOW

R9

200

图4 二极管灯灭图

② 开关可以控制二极管的最终状态(即开关闭合则对应二极管最后的状态

为亮,开关断开则对应二极管最后的状态为暗)。

(1)当按下开关1 2 7 8时结果如图5.1所示。

+5V

C2

30pF

C1

22uF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

R1

1k

9

RST

+5V

+

5

V

D1

Y1

LED-YELLOW

D2

Y2

LED-YELLOW

D3

Y3

29

30

31

R2

200

PSEN

ALE

EA

R3

200

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

R4

200

Y4

D4

LED-YELLOW

D5

LED-YELLOW

LED-YELLOW

D6

R5

200

Y5

R6

200

Y6

R7

200

Y7

D7

LED-YELLOW

LED-YELLOW

D8

R8

200

Y8

LED-YELLOW

R9

200

图5.1 二极管状态图

(2)当按下开关1 3 4 6时结果如图5.2所示。

+5V

C2

30pF

C1

22uF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

R1

1k

9

RST

+5V

+

5

V

D1

Y1

LED-YELLOW

D2

Y2

LED-YELLOW

D3

Y3

29

30

31

R2

200

PSEN

ALE

EA

R3

200

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

R4

200

Y4

D4

LED-YELLOW

D5

LED-YELLOW

LED-YELLOW

D6

R5

200

Y5

R6

200

Y6

R7

200

Y7

D7

LED-YELLOW

LED-YELLOW

D8

R8

200

Y8

LED-YELLOW

R9

200

图5.2 二极管状态图

实验结果分析:当程序启动时,可以看到8只发光二极管整体循环闪烁三次,

闪烁快慢由延时时间决定,然后根据所设开关的状态对应二极管的亮灯状态。

六、问题讨论

下图6中单片机80C51中31号引脚为什么接+5V?

C2

30pF

X1

CRYSTAL

U1

19

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

C3

30pF

18

XTAL2

9

RST

+

5

V

29

30

31

PSEN

ALE

EA

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

图6 问题分析图

答:31号引脚为使能端(EA非),通过+5V电压是使单片机访问内部程序

存储器,但当PC(程序计数器)值超过某值时,将自动转向执行外部程序存储

器内的程序。

实验项目名称:

实验二 LED灯和数码显示器的中断控制

实验时间:第 周 星期 第 节, 年 月 日

学生姓名:

指导老师:

班级学号:

实验成绩:

一、实验目的及要求

1.掌握外部中断原理,学习中断编程与程序调试方法;

2.

熟悉

Keil uVision4平台软件调试方法。

二、实验原理

实验电路原理图如图1所示,图中按键K1和K2分别接于P3.2和P3.3,发

光二极管D1接于P0.4,共阴极数码管LED1接于P2口。时钟电路、复位电路、

片选电路忽略。

C3

30pF

+5V

X1

CRYSTAL

R3

10k

+5V

C2

19

30pF

18

U1

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

D1

LED-GREEN

R2

100

XTAL2

+5V

9

RST

29

30

31

C1

22uF

1

2

3

4

5

6

7

8

PSEN

ALE

EA

R1

1k

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

图1实验原理图

在编程软件的配合下,要求实现如下功能:程序启动后,D1处于熄灯、LED1

处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显

示增加1,并按十六进制数显示,达到F后重新从1开始。

软件编程原理为:K1和K2的按键动作分别作为INT0和INT1的中断请求,

在中断函数中进行指示灯与数码管的信息处理。初始化后,主函数处于无限循环

状态,等待中断请求。

三、 实验仪器设备及装置

(1)硬件:电脑一台;

(2)仿真软件:Proteus;

(3)编程软件Keil uVision4。

其中,仿真软件ISIS元件清单如表1所示。

表1 仿真软件ISIS元件清单

元件类别

Microprocessor ICs

Optoelectronics

Switches&Relays

Resistors

Optoelectronics

电路符号

U1

D1

K1~K2

R1~R2/100

LED

元件名称

80C51

LED-GREEN

BUTTON

RES

7SEG-COM-CAT-GRN

四、实验内容和步骤

(一)实验内容:

(1)熟悉Keil uVision4的软件调试方法;

(2)完成实验的C51语言编程;

(3)练习Keil uVision4与ISIS的联机仿真方法。

(二)实验步骤:

(1)提前阅读与实验相关的阅读材料;

(2)参考实验电路原理图和元件清单在ISIS中完成电路原理图的绘制;

(3)在Keil uVision4中编写和编译C51程序,生成可执行文件;

(4)在Keil uVision4中启动ISIS的仿真运行,并进行联机调试;

(5)观察仿真结果,检验与电路的正确性。

五、实验数据记录与处理或实验现象与分析

1、实验程序

#include

#define uchar unsigned char

sbit led=P0^4;

uchar led_mod[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39,

0x5e, 0x79, 0x71};

uchar i=0;

void init()

{

}

void int0() interrupt 0{

}

void int1() interrupt 2

{

}

void main()

{

{

P2=led_mod[i];}}

init();

while(1)

led=~led;

IT0=1;

IT1=1;

EA=1;

EX0=1;

EX1=1; //开总中断、中断0、中断1

//中断0边沿触发

//中断1边沿触发

if(++i>=16) i=0; //先加再用

2.实验现象

图2为仿真运行效果图。

+5V

C3

30pF

X1

CRYSTAL

R3

10k

+5V

C2

19

30pF

18

U1

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

D1

LED-GREEN

R2

100

XTAL2

+5V

9

RST

29

30

31

C1

22uF

1

2

3

4

5

6

7

8

PSEN

ALE

EA

R1

1k

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

K1

K2

图2 仿真图

按下K1,D1灯亮,如图3(a)所示:

+5V

C3

30pF

X1

CRYSTAL

R3

10k

+5V

C2

19

30pF

18

U1

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

D1

LED-GREEN

R2

100

XTAL2

+5V

9

RST

29

30

31

C1

22uF

1

2

3

4

5

6

7

8

PSEN

ALE

EA

R1

1k

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

K1

K2

图3(a) 二极管状态图

再按下K1,D1灯灭,如图3(b)所示:

+5V

C3

30pF

X1

CRYSTAL

R3

10k

+5V

C2

19

30pF

18

U1

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

D1

LED-GREEN

R2

100

XTAL2

+5V

9

RST

29

30

31

C1

22uF

1

2

3

4

5

6

7

8

PSEN

ALE

EA

R1

1k

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

K1

K2

图3(b) 二极管状态图

继续按下K1则D1将“亮→灭→亮→灭→亮→灭”如此循环。

当按K2时,每按一次数码显示管上的字符变化一次:持续按K2则数码显示

管依次显示1-F:如图4所示。

图4 LED状态图

实验结果分析:

① 持续按下K1则D1将“亮→灭→亮→灭→…→亮→灭”如此循环表明实现了

K1对应于D1状态反转这个功能;

②持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0-F间的数

码管加一计数显示。

六、问题讨论

uchar led_mod[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,

0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};这些就代表0-F,为什么呢?

答:数码分为7段式(7个发光二极管)和8段式(8个发光二极管,见图6)

的,而二极管的亮灭对应0x3F的一位(1或0),为0时灭,1为亮;比如 0x3f 就

是是 0b00111111 那么它对应的数码管的最外面一圈的二极管是1,是亮的,中间

的一横和小数点都输0,是灭的,所以显示出来的 就是0。

图5二极管示意图

实验项目名称: 实验三 双机通信及PCB设计

实验时间:第 周 星期 第 节, 年 月 日

学生姓名:

指导老师:

班级学号:

实验成绩:

一、 实验目的及要求

1. 掌握串行口通信工作原理;

2. 熟悉单片机电路的PCB设计过程。

二、 实验原理

实验的电路原理图如图1所示,图中1#机的发送线与2#机的接收线相连,

1#机的接收线与2#机的发送线相连,共阴极BCD数码管BCD_LED1和

BCD_LED2分别接各机的P2 口,两机共地(默认),晶振为11.0592MHz,波特

率为2400bps,串口方式1。软件编程原理如下:

1#机采用查寻法编程,根据RI和TI标志的软件查询结果完成收发过程;2#

机采用中断法编程,根据RI和TI的中断请求,在中断函数中完成收发过程。

PCB设计原理:在1#机的电路原理图中添加接线端,并定义电源端口,图

中BCD数码管需要自定义PCB封装。

J1

CONN-H4

J2

CONN-H4

J3

12341234

B

3

B

2

B

1

B

0

A

3

A

2

A

1

A

0

VCC

GND

1

2

CONN-H2

A

3

A

2

A

1

A

0

B

3

B

2

B

1

B

0

C1

1nF

C4

U1

X1

19

XTAL1

CRYSTAL

18

XTAL2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

XRD

A0

A1

A2

A3

B0

B1

B2

B3

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

U2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

80C51

XTAL1

19

1nF

X2

CRYSTAL

C2

GND

VCC

1nF

C5

1nF

VCC

XTAL2

18

GND

9

RSTRST

9

C3

22uF

29

30

31

PSEN

ALE

EA

PSEN

ALE

EA

29

30

31

C6

22uF

R1

1k

1

2

3

4

5

6

7

8

TXD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

TXDXRD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

1

2

3

4

5

6

7

8

R2

1k

GND

GND

图1实验原理图

三、 实验仪器设备及装置

(1)硬件:电脑一台;

(2)仿真软件:Proteus ARES;

(3)编程软件Keil uVision4。

其中,仿真软件ISIS元件清单如表1所示。

表1 仿真软件ISIS元件清单

Category

Microprocessor TCs

Miscellaneous

Capacitors

Capacitors

Capacitors

Resistors

Optoelectronics

Connectors

Connectors

Reference

U1、U2

X1、X2

C1、C2/1nF

C4、C5/1nF

C3、C6/22μF

R1、R2/1K

LED

J1、J4

J2

Value

80C51

CRYSTAL

CAP

CAP

CAP-ELEC

RES

7SEG-BCD-GRN

CONN-H2

CONN-H4

四、 实验内容和步骤

(一)实验内容:

(1)掌握串行通信原理和中断法通信软件编程;

(2)完成实验的C51编程;

(3)学习使用ARES软件,完成实验电路(见图1)PCB设计。

(二)实验步骤

(1)提前阅读与实验相关的阅读材料;

(2)参考图1及表1,在ISIS中完成电路原理图的绘制;

(3)采用Keil μVision4进行C51串行通信编程和调试;

(4)对电路进行PCB设计,生成Gerber输出文件。

五、 实验数据记录与处理或实验现象与分析

1、 实验程序

//实例 实现两个单片机点对点的数据通信

//*甲机程序*//

#include

#define uchar unsigned char

void delay (unsigned int time){

unsigned int j=0;

for(;time>0;time--)

for(j=0;j<125;j++);

}

void main(void){

uchar counter=0;

P2=0x3f;

TMOD=0x20;

TH1=0xf4;

TL1=0xf4;

PCON=0x00;

TR1=1;

SCON=0x50;

while(1){

SBUF=counter;

while(TI==0);

TI=0;

while(RI==0);

RI=0;

if(SBUF==counter){

P2=counter;

if(++counter>15) counter=0;

delay(500);

}

}

}

//*乙机程序*//

#include

#define uchar unsigned char

void main(void){

uchar receiv;

P2=0x3f;

TMOD=0x20;

TH1=0xf4;

TL1=0xf4;

PCON=0x00;

TR1=1;

SCON=0x50;

while(1){

while(RI==1){

RI=0;

receiv=SBUF;

SBUF=receiv;

while(TI==0);

TI=0;

P2=receiv;

}

}

}

2、实验现象

下面的图2.1和图2.2仿真的效果图,发送值和接收值分别显示在双方LED

数码管上。双机通信双方LED数码管上面显示相同的数字,从0—F递加,保持

双方一致。

J1

CONN-H4

J2

CONN-H4

J3

12341234

B

3

B

2

B

1

B

0

A

3

A

2

A

1

A

0

VCC

GND

1

2

CONN-H2

A

3

A

2

A

1

A

0

B

3

B

2

B

1

B

0

C1

1nF

C4

U1

X1

19

XTAL1

CRYSTAL

18

XTAL2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

XRD

A0

A1

A2

A3

B0

B1

B2

B3

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

U2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

80C51

XTAL1

19

1nF

X2

CRYSTAL

C2

GND

VCC

1nF

C5

1nF

VCC

XTAL2

18

GND

9

RSTRST

9

C3

22uF

29

30

31

PSEN

ALE

EA

PSEN

ALE

EA

29

30

31

C6

22uF

R1

1k

1

2

3

4

5

6

7

8

TXD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

TXDXRD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

1

2

3

4

5

6

7

8

R2

1k

GND

GND

图2.1 仿真图

J1

CONN-H4

J2

CONN-H4

J3

12341234

B

3

B

2

B

1

B

0

A

3

A

2

A

1

A

0

VCC

GND

1

2

CONN-H2

A

3

A

2

A

1

A

0

B

3

B

2

B

1

B

0

C1

1nF

C4

U1

X1

19

XTAL1

CRYSTAL

18

XTAL2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

XRD

A0

A1

A2

A3

B0

B1

B2

B3

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

U2

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

80C51

XTAL1

19

1nF

X2

CRYSTAL

C2

GND

VCC

1nF

C5

1nF

VCC

XTAL2

18

GND

9

RSTRST

9

C3

22uF

29

30

31

PSEN

ALE

EA

PSEN

ALE

EA

29

30

31

C6

22uF

R1

1k

1

2

3

4

5

6

7

8

TXD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

80C51

TXDXRD

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

1

2

3

4

5

6

7

8

R2

1k

GND

GND

图2.2 仿真图

3.

PCB设计图

图3 PCB设计图

图4 3D仿真电路图

六、 问题讨论

实验程序中PCON=0x00是什么意思?

答:PCON是电源控制寄存器,是为CHMOS型单片机(如80C51)的电源

控制而设置的专用寄存器。在HMOS单片机中,该寄存器中除最高位之外,其

他位都没有定义。最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,

串行口波特率加倍。系统复位时,SMOD=0。

实验项目名称: 实验四 直流数字电压表设计

实验时间:第 周 星期 第 节, 年 月 日

学生姓名:

指导老师:

班级学号:

实验成绩:

一、实验目的及要求

掌握LED动态显示和A/D转换接口设计方法。

二、实验原理

实验电路原理图如图1所示,图中4联共阴极数码管以I/O口方式连接单片

机,其中段码A—G和DP接P0.0—P0.7口(需上拉电阻),位码1—4(4#为最

低位数码管,依此类推)接P2.0—P2.3口;ADC0808采用I/O口方式接线,其

中被测模拟量由0#通道接入,位地址引脚ADDA、ADDB、ADDC均接地,START

和ALE并联接P2.51,EOC接P2.6,OE接P2.7,CLOCK接P2.4。

C1

30pF

C2

30pF

X1

19

CRYSTAL

U1

XTAL1P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

P2.0/A8

P2.1/A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15

P3.0/RXD

P3.1/TXD

P3.2/INT0

P3.3/INT1

P3.4/T0

P3.5/T1

P3.6/WR

P3.7/RD

39

38

37

36

35

34

33

32

21

22

23

24

25

26

27

28

10

11

12

13

14

15

16

17

18

XTAL2

C3

9

10uF

R9

10k

29

30

31

RST

R1

R2

R3

R4

R5

R6

R7

R8

1k

1k

1k

1k

1k

1k

1k

1k

PSEN

ALE

EA

80C51

4.7k

图1 实验原理图

在编程软件配合下,要求实现如下功能:解调电位器RV1可使其输出电压

在0—5V之间变化。经A/D转换后,数码管以十进制数形式动态显示电位器的

调节电压。

DO

D1

D2

D3

D4

D5

D6

D7

1

2

3

4

5

6

7

8

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

RV1

26

27

28

1

2

3

4

5

25

24

23

22

12

16

U3

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

ADD A

ADD B

ADD C

ALE

VREF(+)

VREF(-)

ADC0808

CLOCK

START

EOC

OUT1

OUT2

OUT3

OUT4

OUT5

OUT6

OUT7

OUT8

10

6

7

21

20

19

18

8

15

14

17

D7

D6

D5

D4

D3

D2

D1

D0

U3(CLOCK)

OE

9

动态显示编程原理:将待显示数据拆解为3位十进制数,并分时地将其在相

应数码管上显示。一次完整的输出过程为:最低位数据送P0口→P2.3清零→软

件延时→P2.3置1→中间位数据送P0口→P2.2清零→软件延时→P2.2置1→最

高位数据送P0口→P2.1清零→软件延时→P2.1置1,如此无限循环。

A/D转换编程原理:启动信号与输出使能信号(START、ALE、OE)均由

软件方式的正脉冲提供;结束信号(EOC)由P2.6的高电平提供。A/D转换时

钟信号由T0定时方式2中断提供(设系统晶振频率为12MHz)。一次完整的A/D

转换过程为:发出启动信号→查询EOC标志→发出OE置1信号→读取A/D结

果→发出OE清零结果。如此无限循环

三、实验仪器设备及装置

(1)硬件:电脑一台;

(2)仿真软件:Proteus;

(3)编程软件Keil uVision4。

其中,仿真软件ISIS元件清单如表1所示。

表1 仿真软件ISIS元件清单

Category

Microprocessor ICs

Data Converter

Miscellaneous

Capacitors

Capacitors

Resistors

Resistors

Resistors

Optoelectronics

Reference

U1

U3

X1

C1 C2

C3

R1-R8

R9

RV1

Value

80C51

ADC0808

CRYSTAL

CAP

CAP-ELEC

PULLUP

RES

POT-HG

7SEG-MPX4-CC-BLUE

四、实验内容和步骤

(一)实验内容

(1)数码管动态显示编程;

(2)A/D转换查询法编程;

(3)考察延时量对动态显示效果的影响。

(二)实验步骤

(1)提前阅读与实验相关的阅读材料

(2)参考图1及表1,在ISIS中完成电路原理图的绘制;

(3)采用Keil uVision4进行C51动态显示和A/D转换的编程及调试。

五、实验数据记录与处理或实验现象与分析

1、实验程序

#include

#include

unsigned int tmp;

sbit START=P2^5;

sbit ad_busy=P2^6;

sbit OE=P2^7;

sbit P2_0=P2^0;

sbit P2_1=P2^1;

sbit P2_2=P2^2;

sbit P2_3=P2^3;

char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay(unsigned int time)

{

unsigned int j=0;

for(;time>0;time--)

for(j=0;j<125;j++);

}

void show ()

{

unsigned int i,j;

P2_0=0;

j=tmp/1000;

i=j%1000;

P0=led_mod[i];

delay(10);

P2_0=1;

P2_1=0;

j=tmp/100;

i=j%100;

P0=led_mod[i];

delay(10);

P2_1=1;

P2_2=0;

j=tmp/10;

i=j%10;

P0=led_mod[i];

delay(10);

P2_2=1;

P2_3=0;

i=tmp%10;

P0=led_mod[i];

delay(10);

P2_3=1;

}

void main()

{

while(1){

START=0;

START=1;

START=0;

while(ad_busy==1);

OE=1;

tmp=P1;

OE=0;

show();}

}

2、实验现象

C1

C2

X1

U1

C3

R9

R1

R2

R3

R4

R5

R6

R7

R8

图2 实验效果图

C1

C2

X1

U1

C3

R9

R1

R2

R3

R4

R5

R6

R7

R8

图3 运行效果图

00

RV1

RV1U3

U3

实验结果分析:本实验是使用A/D转换器将模拟信号(电位器输出电压)

转换为数字信号,A/D转换器与80C51接在一起,转换结果通过80C51以十进

制形式动态显示在四个共阴极数码管上,通过改变模拟信号大小可以显示

0—255之间的任意数据。启动信号与输出使能信号(START、ALE、OE)均由

软件方式的正脉冲提供;结束信号(EOC)由P2.6的高电平提供。A/D转换时

钟信号由T0定时方式2中断提供(设系统晶振频率为12MHz)。

六、问题讨论

段码A—G和DP接P0.0—P0.7口为什么需上拉电阻(如图4)?

R1

R2

R3

R4

R5

R6

R7

R8

1k

1k

1k

1k

1k

1k

1k

1k

图6 问题分析图

答:上拉电阻的作用就是将不确定的信号通过一个电阻钳位在高电平,电阻

同时起限流作用。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714741130a2506484.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信