51单片机最小系统工程训练指导书_第1页
51单片机最小系统工程训练指导书_第2页
51单片机最小系统工程训练指导书_第3页
51单片机最小系统工程训练指导书_第4页
51单片机最小系统工程训练指导书_第5页
已阅读5页,还剩144页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验板

工程训练指导书

物理与电子工程系

目录

实验一LED闪烁灯设计-------------------------------------------------------4

实验二模拟开关控制指示灯设计-----------------------------------------------7

实验三多路开关状态指示设计-------------------------------------------------10

实验四广告灯左、右移设计------------------------------------------------14

实验五查询法设计广告灯------------------------------------------------18

实验六报警产生器设计-----------------------------------------------------21

实验七I/O并行口直接驱动LED显示设计------------------------------------25

实验八单键识别设计-------------------------------------------------------29

实验九一键多功能按键识别设计-------------------------------------------33

实验十00-99计数器设计--------------------------------------------------38

实验H"一,六十秒计时器设计---------------------------------------------------42

实验十二可预置可逆4位计数器设计-----------------------------------------46

实验十三动态数码显示设计--------------------------------------------------51

实验十四4X4矩阵式键盘识别设计-----------------------------------------55

实验十五定时计数器T0作定时应用设计(一)-----------------------------64

实验十六定时计数器T0作定时应用设计(二)--------------------------------71

实验十七9.9秒跑马表设计---------------------------------------------------76

实验十八“嘀、嘀、……”报警声设计----------------------------------------82

实验十九“叮咚”门铃设计---------------------------------------------------87

实验二十智能电子钟设计------------------------------------------------------92

实验二十一“新年好”音乐设计--------------------------------------------------102

实验二十二电子琴设计--------------------------------------------------------108

实验二十三模拟计算器数字输入及显示设计---------------------------------119

实验二十四数字电压表设计----------------------------------------------------126

实验二十五DS18B20数字温度计设计-----------------------------------------131

附录A实验板中模拟/数字转换器ADC0804的参数及使用说明-------------------------139

附录B实验板中DS18B20智能温度控制器的参数及使用-----------------------------141

单片机实验板详细说明

该单片机实验板设计巧妙,经过了严格的检查,可放心使用。

由于考虑到众多的实验要在此单片机实验板上完成,然而每个实验用到的单片机的I/O

口不尽相同,所以设计时采用拨动拨码开关和替换跳线帽的位置来完成每个实验内容。

在完成各个实验内容时,首先要看清楚实验电路原理图,然后按照实验内容给出的单片

机实验板上的硬件连线、拨动拨码开关或替换跳线帽的位置来完成系统设计。检查无误后下

载程序。由于每个程序都经过了单片机实验板的验证,证明程序没有问题。所以要是调不出

来,肯定是硬件没有连好,再次检查直到完成实验。每做完一个实验后,把拨动拨码开关和

跳线帽恢复到初始状态。

一、拨码开关和跳线帽的初始化状态介绍如下:

单片机实验板上有8联拨动拨码开关4个(JP1、JP2、JP3、JP4),2联拨动拨码开关

1个(JP5),跳线帽13个。在初始化状态下,拨动拨码开关都处于紧靠数字的位置,此

位置下的拨动拨码开关为不用状态。8排针接插件J3上的8个跳线帽要全部连接在标号为

P0位置上。单排针接插件J4上的跳线帽要连接在0E和GND的位置上。单排针接插件J5上

的跳线帽连接在0E和GND的位置上。单排针接插件J6上的跳线帽要连接在0E和VCC的位

置。单排针接插件J7上的跳线帽要连接在CS和GND的位置。双排针接插件J8上的跳线帽

应该和J8上排插针相连。4个8联拨动拨码开关(JP1、JP2、JP3、JP4)应该全部所至下

方。

二、实验中具体使用介绍如下:

(1)当用到发光二极管时,要把8联拨动拨码开关JP4拨到ON状态。

(2)当用到喇叭输出时,把2联拨动拨码开关JP5的1号拨动开关拨上去;当用DS18B20

做测温时,把2联拨动拨码开关JP5的2号拨动开关拨上去。

(3)当用到矩阵键盘输入时,把8联拨动拨码开关JP3的拨动开关全部拨上去。

(4)当用到拨动开关SW1-SW4时,把8联拨动拨码开关JP2对应的拨动开关拨上去。

(5)当用到按键开关S18-S21时,把8联拨动拨码开关JP2对应的拨动开关拨上去。

(6)当用8个动态数码管显示时,首先应该把单排针接插件J4的0E与VCC用跳线帽

相连。同时8联拨动拨码开关JP1对应的拨动开关拨上去。8联拨动拨码开关JP1的S1-S8

分别对应三极管Q2—Q9o

(7)当用8个动态数码管输入a—h数码时,如果用到POD,不用移动跳线帽;如果

用到P1口,把8个跳线帽移到下面的标有P1的位置。

(8)当用P0口做数码管静态显示时,把单排针接插件J5的0E与VCC用跳线帽相连。

(9)当用P2口做数码管静态显示时,把单排针接插件J6的0E与GND用跳线帽相连。

总之,在用单片机编写简单程序时,汇编语言编写起来比较简单,但复杂的程序还是用

C51编写起来比较简单。所以C51编程是必学的。这里基本上所有的实验程序都采用汇编和

C51两种编程方法。有的实验还给出了两套设计方案,便于比较学习。

实验一LED闪烁灯设计

一、实验目的

1、初步了解单片机I/O口的简单控制。

2、掌握单片机外围常用电路的固定接法。

二、设计原理

利用单片机控制一个发光二极管,使此发光二极管间隔0.2秒亮、灭一次。

三、参考电路

VCCR15

VCC

图1.1LED闪烁灯外部电路原理图

四、电路硬件说明

如图1.1所示:在单片机的P1.0端口上通过8联拨动拨码开关JP4的相应拨码开关连

接一个发光二极管D1。

五、程序设计内容

(1)延时程序的设计方法:

单片机指令的执行时间是很短的,它的数量级为微秒级。在本程序设计中,要求LED

闪烁灯的闪烁时间间隔为0.2秒。相对于微秒来说,相差太大,所以在执行某一指令时,需

要插入延时程序,来达到的要求。然而这样的延时程序是如何设计呢?下面具体介绍其原理:

如图1.1所示,单片机所用的石英晶体为12MHz。因此,1个机器周期为1微秒。

延时10ms子程序机器周期微秒

MOVR6,#201个1

DI:MOVR7,#2481个1+1X20

DJNZR7,$2个2X248+2X20X248

DJNZR6,DI2个2X20

因此,上面的延时程序时间为10.478ms。

由以上可知,当R6=10、R7=248时,延时时间为5ms;R6=20、R7=248时,延时时

间为10ms。通常所用延时时间以此为基本的计时单位。比如本实验要求为0.2秒=200ms,

所以用10msXR5=200ms,得到R5=20。延时子程序如下:

DELAY:MOVR5,#201

D1:MOVR6,#201+20

D2:MOVR7,#2481+20+20(1+20)

DJNZR7,$2X248+20X2X248+20(2X248+20X2X248)

DJNZR6,D22X20+2X20X20

DJNZR5,D12X20

RET2

上面的延时程序为0.220081so

(2)单片机的PL0端口的输出控制方法:

如图1.1所示,根据发光二极管的单向导电性,当单片机的P1.0端口输出高电平,即

P1.0=l时,发光二极管D1熄灭;当单片机的P1.0端口输出低电平,即P1.0=0时,发光

二极管D1亮。可以使用SETBP1.0指令使单片机的P1.0端口输出高电平,使用CLRP1.0

指令使单片机的P1.0端口输出低电平。

六、程序流程图(如图1.2所示)

图1.2LED闪烁灯设计流程图

七、汇编源程序

ORG0000H系统复位

LJMPSTART转入主程序

ORG0003H外部中断0

RETI中断返回

ORGOOOBH定时器。溢出中断

RETI

ORG0013H外部中断1

RETI

ORG001BH定时器1溢出中断

RETI

ORG0023H外部中断2

RETI

ORG0100H

START:CLRP1.0和P1.0口接的二极管亮

LCALLDELAY200MS延时0.2秒

SETBP1.0和P1.0口接的二极管灭

LCALLDELAY200MS延时0.2秒

LJMPSTART循环

DELAY200MS:MOVR5,#20延时子程序

DI:MOVR6,#20

D2:MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

八、C语言源程序

ftinclude<AT89X51.H>

sbitL1=P1"O;

voiddelay02s(void)〃延时子程序〃

unsignedchari,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j—)

for(k=248;k>0;k一);

)

voidmain(void)〃主程序//

{while(1)//进入循环//

{Ll=0;//指示灯亮//

delay02s();//延时0.2秒//

Ll=l;〃指示灯灭//

delay02s();〃延时0.2秒//

}

九、注意事项

(1)用Keil软件时,注意中文说明及注释。

(2)用汇编语言编写程序时不区分大小写,但用C语言编写程序时注意区分大小写。

(3)汇编语言和C语言定义口的方式不同,如汇编语言为P1.0,P2.0,P3.0,而C语

言为Pl_0,P2_0,P3_0»

实验二模拟开关控制指示灯设计

一、实验目的

1、掌握单片机外围常用电路的固定接法。

2、掌握单片机利用模拟开关控制指示灯的简单设计。

二、设计原理

如图2.1所示,用发光二极管监视模拟开关的状态。如果模拟开关合上,发光二极管点

亮;如果模拟开关打开,发光二极管熄灭。

三、参考电路

VCCR15

「10K

]40

二TP10VCC~39_1

~TPHPOO茎2

二±P12P01373

P13P024

二53?

P14P035

二737

P15P046

二717

P16P057

二TUI

P17P06亘8

~~RST"AT89C51

RESETP079

P3.010

P30EA

11

---vccP31ALE

10K12

1~P32PSEN

P33P27

14

P34P26

15

P35P25

C316

P36P24

17

P37P23

18

HPT-iXTAL1P22

19

XTAL2P21

惮吊2募Z120

EVSS20

图2.1模拟开关控制指示灯原理图

四、电路硬件说明

如图2.1所示,模拟开关SW1通过8联拨动拨码开关连接在单片机的P3.0端口上,用

发光二极管D1(通过8联拨动拨码开关接在单片机的P1.0端口上)显示模拟开关SW1的状

态。当模拟开关SW1断开时,单片机的P3.0端口为高电平;当模拟开关闭合时,单片机的

P3.0端口为低电平。

五、程序设计内容

(1)开关状态的检测过程

对于单片机来说,开关状态的检测是从单片机的P3.0端口输入信号,然而输入的信号

只有高、低电平两种。当拨动开关SW1拨上去(输入高电平)时,拨动开关SW1断开;当拨

动开关SW1拨下来(输入低电平)时,拨动开关SW1闭合。单片机可以采用JBBIT或者

JNBBIT指令来完成对拨动开关状态的检测。

(2)输出控制

如图2.1所示,当单片机的PL0端口输出为高电平,即P1.0=1时,根据发光二极管

的单向导电性可知,这时发光二极管D1熄灭;当单片机的P1.0端口输出为低电平,即P1.0

=0时,发光二极管D1亮。可以使用SETBP1.0指令使单片机的P1.0端口输出高电平,

使用CLRP1.0指令使单片机PL0端口输出低电平。

六、程序流程图(如图2.2所示)

图2.2模拟开关控制指示灯程序流程图

七、汇编源程序

0RG0000H程序复位入口地址

LJMPSTART跳到主程序

0RG0003H外部中断0入口地址

RETI中断返回

0RGOOOBH定时器中断0入口地址

RETI中断返回

0RG0013H外部中断1入口地址

RETI中断返回

0RG001BH定时器中断1入口地址

RETI中断返回

ORG0023H串行口中断入口地址

RETI中断返回

ORG002BH定时器中断2入口地址

RETI中断返回

ORG0100H

START:JBP3.0,NEXP3.0为1,则跳NEX

CLRP1.0PL0亮

SJMPSTART

NEX:SETBP1.0P1.0灭

SJMPSTART

END

八、C语言源程序

ttinclude<AT89X51.H>

main()

{if(P3_0==l)

{P1_O=O;//Pl_o亮//

else

{P1_O=1;//Pl_o灭//

}

九、注意事项

如果程序下载到实验板上后,要把8联拨动拨码开关JP2和JP4的相应开关合上去。

实验三多路开关状态指示设计

一、实验目的

利用多路模拟开关进行指示灯控制。

二、设计原理

如图3.1所示,单片机的Pl.0-P1.3端口通过8联拨动拨码开关连接四个发光二极管

Dl-D4o单片机的P3.0—P3.3端口通过8联拨动拨码开关连接四个拨动开关SW1—SW4。编

程时将拨动开关的状态反映到发光二极管上(开关闭合,对应的灯亮,开关断开,对应的灯

灭)。

三、参考电路

VCCVCCR15

T10K

40

P10VCC1

39

P11POO2

JP438

P12P013

37

P13P024

36

P14P035

35

P15P046

34

P16P057

m33

ui8

AT89C51鳖32

RESETP079

n30

P30EAC

P31ALE29VC

P32PSEN28

P33P2727

P34P2626

P35P2525

24

P36P24

23

P37P23

22

XTAL1P2221

XTAL2P21

VCIC

1

2

3

4

5

6

7

8

图3.1多路开关状态指示电路原理图

四、电路硬件说明

如图3.1所示,拨动开关SWKSW2、SW3、SW4通过8联拨动拨码开关JP2接连单片机

的P3.0、P3.1、P3.2、P3.3端口。单片机的Pl.O、PL1、PL2、P1.3口通过8联拨动拨码

开关JP4分别连接四个指示灯DI、D2、D3、D4O

五、程序设计内容

(1)开关状态检测

拨动开关状态的检测,对于单片机来说,是一种输入关系,轮流检测每个开关的状态,

根据每个开关的状态让相应的发光二极管指示显示。在编写程序时,可以使用JBP3.X或

JNBP3.X指令来完成指示控制。

(2)单片机的输出控制

根据拨动开关SW1、SW2、SW3,SW4的状态,经由发光二极管DI-D4来指示显示。在编

写程序时,可以用SETBP1.X和CLRP1.X指令来完成。

七、汇编源程序

ORG0000H程序复位入口地址

LJMPSTART跳到主程序

ORG0003H外部中断0入口地址

RETI中断返回

ORGOOOBH定时器中断0入口地址

RETI中断返回

ORG0013H外部中断1入口地址

RETI中断返回

ORGOO1BH定时器中断1入口地址

RETI中断返回

ORG0023H串行口中断入口地址

RETI中断返回

ORG0100H

START:LCALLKAIGUAN调用检测开关状态子程序

LJMPSTART跳回继续检测

KAIGUAN:JBP3.0,N1判断P3.0是否按下

CLRP1.0p3.0按下则亮pl.0

SJMPMl跳到ml

Nl:SETBP1.0p3.0没有按下则灭pl.O

Ml:JBP3.1,N2判断p3.1是否按下

CLRPl.1p3.1按下则亮pl.1

SJMPM2跳到m2

N2:SETBPl.1p3.1没有按下则灭pl.1

M2:JBP3.2,N3判断p3.2是否按下

CLRPl.2p3.2按下则亮pl.2

SJMPM3跳到m3

N3:SETBPl.2p3.2没有按下则灭pl.2

M3:JBP3.3,N4判断P3.3是否按下

CLRPl.3p3.3按下则亮pl.3

SJMPM4跳到m4

N4:SETBPl.3P3.3没有按下则灭pl.3

M4:LJMPKAIGUAN跳回检测开关状态子程序进行循环

RET子程序返回

END结束

八、c语言源程序

#include<AT89X51.H>

main()

{if(P3_0==0)

{P1_O=O;

)

else

{P1_O=1;

}

if(P3_l==0)

{P1_1=O;

}

else

{Pl」=l;

}

if(P3_2==0)

{Pl_2=0;

)

else

{Pl_2=l;

)

if(P3_3==0)

{Pl_3=0;

}

else

{Pl3=1:

九、注意事项

(1)程序下载到实验板上后,要把8联拨动拨码开关JP2和JP4的相应按键合上去。

(2)与8联拨动拨码开关JP4相连的指示灯是高电平亮,低电平灭。

实验四广告灯左、右移设计

一、实验目的

1.初步了解广告灯的移动设计。

2.掌握循环移动的原理。

二、设计原理

如图4.1所示,八个发光二极管D1-D8通过8联拨动拨码开关JP4分别连接在单片机

的PLO—P1.7端口上,做单一灯的左移右移。如果单片机的P1端口输出为“0”时,发光

二极管亮,依次为PLO-Pl.1-Pl.2-P1.3-----*P1.7fPL6---->PL0亮,重复循环。

三、参考电路

VCCU1

图4.1广告灯左、右移设计电路原理图

四、电路硬件说明

把“单片机系统”区域中的单片机的PLO—P1.7端口通过8联拨动拨码开关JP4连接

到“八路发光二极管指示模块”区域中的DI—D8端口上,要求:P1.0对应着DI,Pl.1对

应着D2,....,PL7对应着D8。

五、程序设计内容

运用输出端口指令MOVPLA或MOVPl,#DATA,给累加器值或常数值,然后执行

上述的指令,即可达到输出控制的动作。

每次送出的数据是不同的,具体的数据如下表4.2所示

表4.28个LED循环显示真值表

P1.7P1.6P1.5P1.4P1.3P1.2Pl.1P1.0说明

D8D7D6D5D4D3D2D1

11111110D1亮

11111101D2亮

11111011D3亮

11110111D4亮

11101111D5亮

11011111D6亮

10111111D7亮

01111111D8亮

六、程序流程图(如图4.3所示)

图4.3广告灯左右移程序流程图

七、汇编源程序

ORG0000H系统复位

LJMPSTART转入主程序

ORG0003H外部中断0

RETI中断返回

ORGOOOBH定时器0溢出中断

RETI

ORG0013H外部中断1

RETI

ORGOO1BH定时器1溢出中断

RETI

ORG0023H外部中断2

RETI

ORG0100H

START:MOVR2,#7

MOVA,#OFEH

SETBc给CY置1

LOOP:MOVPl,A

LCALLDELAY

RLCA带进位左移

DJNZR2,LOOPR2减1不为0转至1]LOOP

MOVR2,#8

L00P1:MOVPl,A

LCALLDELAY

RRCA;带进位右移

DJNZR2,LOOP1;R2减1不为0转到LOOP1

LJMPSTART

DELAY:MOVR5,#20;延时0.2秒子程序

DI:MOVR6,#20

D2:MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,DI

RET

END

八、C语言源程序

#include<AT89X51.H>

unsignedchari;

unsignedchartemp;

unsignedchara,b;

voiddelay(void)〃延时子程序〃

{unsignedcharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

voidmain(void)

{while(1)

{temp=0xfe;

Pl=temp;

delay();

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

{a=temp«i;〃向左移i位〃

b=temp»(8-i);〃向右移8-i位〃

Pl=ab;〃@或”/

delay();

}

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

{a=temp>>i;

b=temp«(8-i);

Pl=a|b;

delay();

九、注意事项

(1)程序下载到实验板上后,要把8联拨动拨码开关JP4的相应按键合上去。

(2)用C语言编写程序,利用左移和右移指令时,移入单元的数为0。

(3)在硬件电路中,发光二极管和电源之间必须加上合适的电阻。

实验五查询法设计广告灯

一、实验目的

1.熟悉广告灯的移动设计。

2.掌握查询法在单片机编程中的使用。

二、设计原理

利用取表的方法,使单片机的P1端口做单一灯的变化:左移2次,右移2次,闪烁2

次(间隔的时间为0.2秒)。

三、参考电路

图5.1查询设计广告灯电路原理图

四、电路硬件说明

在“单片机系统”区域中,把单片机

的Pl.0-P1.7端口通过8联拨动拨码开关

JP4连接到“八路发光二极管指示模块”

区域中的D1—D8端口上。要求:P1.0对

应DI,Pl.1对应D2,....,P1.7对应D8»

五、程序设计内容

在利用表格进行程序设计时,要用以

下的指令来完成:

(1)利用MOVDPTR,#DATA16指

令使数据指针寄存器指到数据表格的首地

址。

(2)利用MOVCA,@A+DPTR指令,

根据累加器A的值再加上DPTR的值,就可

以使程序计数器PC指针指到表格内所需

要取出的数据。因此,只要把控制码组建

图5.2查询法设计广告灯流程图

成一个表格,利用MOVCA,@A+DPTR做取控制码的操作,就可方便地处理一些复杂的控

制动作。

六、程序流程图(如图5,2所示)

七、汇编源程序

ORG0000H系统复位

LJMPSTART转入主程序

ORG0003H外部中断0

RETI中断返回

ORGOOOBH定时器。溢出中断

RETI

ORG0013H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论