单片机实验指导书.docx

上传人:b****5 文档编号:7162213 上传时间:2023-01-21 格式:DOCX 页数:19 大小:381.64KB
下载 相关 举报
单片机实验指导书.docx_第1页
第1页 / 共19页
单片机实验指导书.docx_第2页
第2页 / 共19页
单片机实验指导书.docx_第3页
第3页 / 共19页
单片机实验指导书.docx_第4页
第4页 / 共19页
单片机实验指导书.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机实验指导书.docx

《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(19页珍藏版)》请在冰豆网上搜索。

单片机实验指导书.docx

单片机实验指导书

实验一、输入输出接口编程

一、实验目的

1、掌握Keil软件的基本使用。

2、掌握单片机汇编语言基本编程。

二、实验内容

1、学习用Keil软件进行51单片机的软件开发;

学习Keil软件的一般操作,步骤为:

项目建立、程序录入、添加文件、编译生成HEX文件、仿真调试。

(见参考程序一)

2、霓虹灯控制程序设计

用P1口控制8个LED,按P3口输入信号的不同模式选择4种16次循环点亮方式,用软件延时实现1秒的扫描周期。

将生成的HEX文件下载到实验板上验证。

(见参考程序二)

三、实验原理

1、Keil软件使用练习

设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,

(22H)=0A0H,(25H)=0A0H,(26H)=6FH,(27H)=76H,执行程序后,问程序完成什么功能,写出运行结果。

(见参考程序一)

2、霓虹灯控制程序设计

电路原理图如下,所需元件为:

AT89C51、SW-SPST、LED-RED

图中用单片机的P1口作输出口接8个LED,8个LED按共阳极连接,端口逻辑值为0点亮LED;P3口作输入口接2个SW-SPST开关,P3口内含上拉电阻,当开关打开时逻辑值为1,开关闭合时逻辑值为0。

本实验中要实现循环输出,最常用的方法是循环计数实现循环次数控制,对计数器值进行查表转换得出输出值,输出到P1口进行显示,灯亮表示输出为“0”,灯灭表示输出为“1”。

本实验中的延时,用软件延时方法产生,延时时间=程序总机器周期数*循环次数*机器周期。

输出表格确定发光模式,实验中定义表格如下:

TAB1:

DB01H,02H,04H,08H,10H,20H,40H,80H(SW3,SW4为:

00)

TAB2:

DB03H,06H,0CH,18H,30H,60H,0CH,81H(SW3,SW4为:

01)

TAB3:

DB80H,40H,20H,10H,08H,04H,02H,01H(SW3,SW4为:

10)

TAB4:

DB用户自己定义(SW3,SW4为:

11)

输入信号使用P3口的2个位,如P3.2和P3.3,可以确定4种模式。

实验程序框图如下:

 

图1.1主程序图1.2转换输出子程序

四、实验预习

1、学习汇编语言编程的有关知识。

2、提前预习KEIL软件的使用方法,写出预习报告。

五、实验报告

1、总结出实验的详细步骤。

2、写出调试正确的程序及运行结果。

六、参考程序:

参考程序一

ORG0000H

MOVR0,#20H

MOVR1,#25H

MOV20H,#80H

MOV21H,#90H

MOV22H,#0A0H

MOV25H,#0A0H

MOV26H,#6FH

MOV27H,#76H

CLRC

MOVR2,#3

LOOP:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

CLRC

INCR0

INCR1

DJNZR2,LOOP

JNCNEXT

MOV@R0,#01H

SJMP$

NEXT:

DECR0

SJMP$

END

参考程序二:

ORG0000H

MOVP1,#0FFH

SETBP3.2

SETBP3.3

LOOP0:

MOVR7,#08

MOVR6,#0

LOOP3:

LCALLFLASH

MOVA,R6

MOVCA,@A+DPTR

;CPLA

MOVP1,A

INCR6

LCALLDELAY1

DJNZR7,LOOP3

SJMPLOOP0

DELAY1:

MOVR5,250

LOOP1:

LCALLDELAY0

LCALLDELAY0

LCALLDELAY0

LCALLDELAY0

DJNZR5,LOOP1

RET

DELAY0:

MOVR4,#0FFH

LOOP2:

NOP

NOP

DJNZR4,LOOP2

RET

FLASH:

JBP3.2,L0

JBP3.3,L1

MOVDPTR,#TAB1

RET

L0:

JBP3.3,L2

MOVDPTR,#TAB2

RET

L1:

JBP3.2,L2

MOVDPTR,#TAB3

RET

L2:

MOVDPTR,#TAB4

RET

TAB1:

DB01H,02H,04H,08H,10H,20H,40H,80H

TAB2:

DB03H,06H,0CH,18H,30H,60H,0CH,81H

TAB3:

DB80H,40H,20H,10H,08H,04H,02H,01H

TAB4:

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

END

实验二、定时器/计数器编程

一、实验目的

1、掌握定时器的基本编程方法。

2、掌握计数器的基本编程方法。

二、实验内容

1、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.7接到示波器显示该方波波形;用T1作计数器对从P3.6输出的方波进行计数,计数结果通过P1口输出到发光二极管显示。

(计算机仿真)

2、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.6输出的方波接到P3.5口通过T1作计数器对该方波进行计数,计数值由LED显示,用存储示波器显示P3.7输出的方波。

(单片机实验板)

三、实验原理

电路原理图如下,所需元件为:

AT89C52、7SEG-BCD、LED-YELLOW

当晶振为22.1184M时,一个机器周期为0.54251微秒,要实现500毫秒的定时,需要921659个机器周期,对于51单片机内部定时器来说,最大只能定时65536个机器周期,定时35.535毫秒,不能满足要求,为此必须借助软件循环进行扩展。

实现的方法是:

用定时器中断定时10毫秒,再用软件扩展50倍即可得到500毫秒的定时。

当到达500毫秒时,对P3.7输出取反,可得到周期为1秒的方波。

选择模式1,每个10ms中断一次,设初值为X,根据下面公式,可求得X的值。

(216-计数初值)*机器周期=定时时间

有关定时计数器的特殊功能寄存器,请参考课本。

四、实验步骤:

1、用KEIL软件编写、汇编、调试给定内容的有关程序,并生成HEX文件;

2、用Proteus对单片机硬件电路图进行仿真;

3、下载到ZKSYS单片机实验板上验证有关程序。

五、实验接线

1、从J2插座将IC1芯片的P3.7引出接示波器的信号输入端,示波器的接地端接J10插针。

(sw1~sw4开关拨到1的位置)

2、将单片机芯片的P3.6和P3.5相连(J2插座),

六、实验预习

1、学习有关定时器和计数器的知识。

2、提前编写程序,写出预习报告。

七、实验报告要求

1、总结出实验的详细步骤。

4、写出调试正确的程序及框图。

实验三、外部中断的编程

一、实验目的

1、掌握外部中断的基本编程方法。

2、掌握计数器的扩展编程。

二、实验内容

设计单片机程序实现秒表功能;用一个开关对秒表进行启动和停止控制,用另一个开关对秒表进行清零。

用T0定时中断设计秒表计时,秒计数结果通过P1口及4094芯片送数码管显示(T0定时中断时间为10毫秒,秒表的显示间隔为1秒,用软件和硬件结合使用实现)。

用外部中断INT0(边沿触发方式)对秒计数结果进行清零,用P3.5对秒计数进行启动和停止控制。

1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;

2、程序下载到单片机实验板上验证;

(实验板数码管的驱动程序见附件)。

三、实验原理

电路原理图如下,所需元件为:

AT89C52、7SEG-BCD、SW-SPST、BUTTON

T0定时中断10毫秒,进行100次中断得到1秒的定时,秒计数结果送P1口进行LED显示,将外部中断设置成边沿触发方式。

四、实验预习

1、学习外部中断的有关知识。

2、提前编写程序,写出预习报告。

五、实验报告

1、总结出实验的详细步骤。

2、写出调试正确的程序及框图。

实验四、模数转换

一、实验目的

1、掌握A/D转换与单片机的接口方法;

2、掌握A/D芯片TLC549、TLC1549的编程方法;

3、掌握数据采集程序的设计方法;

二、实验内容

1、在PROTEUS软件仿真环境下,采用TLC549做A/D转换器,对电位器提供的模拟电压信号进行定时采样,结果送数码管模块显示;(仿真电路图如图4.1所示):

2、利用单片机实验板上的TLC1549做A/D转换器,对电位器提供的模拟电压信号进行采样,结果送数码管模块进行显示。

三、实验线路

1、TLC549实验电路原理图4.1如下:

电路器件:

AT89C52、TLC549、POT-HG、7SEG-MPX4-CA、SW-SPST、4094、BUTTON、RESPACK-8、7404

图4.1实验电路原理图

2、TLC549是CMOS8位A/D转换器。

该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。

TLC549仅仅使用输入/输出时钟(I/OCLOCK)和芯片选择(/CS)信号控制数据。

最大的输入输出时钟(I/OCLOCK)为1.1MHz。

CLK时钟位

DAT数据位

CS选片位

VCC电源(5V)

REF+正基准电压输入端

REF-负基准电压输入端

实验接线:

CLK----P1.0REF+----VCC

DAT----P1.1

CS----P1.2

电位器RX1的首位两端分别接VCC、GND。

四、实验步骤

1、在KILL51软件下编辑TLC549的A/D转换源程序并汇编,运用PROTEUS软件仿真调试。

仿真步骤:

将TLC549的CLK接P1.0、DAT接P1.1、CS接P1.2,将模拟电压输入端连到电位器的电压输出端,并接电压表测量输入电压。

2、调节电位器,电压从0V到5V变化,记录数码管的显示数值。

记录到表中。

输入电压V

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

TLC549

A/D仿真结果

TLC549

A/D实验板

测量结果

2、在KILL51软件下编辑TLC1549的A/D转换源程序,汇编通过后下载到单片机实验板:

实验接线:

CLK----P1.0REF+----VCC

DAT----P1.1

CS----P1.2

TLC549模拟电压输入端ANIN,连到电位器的电压输出端ADC(J6插针的1脚)。

调节电位器,输入电压从0V到5V变化,用万用表进行测量,对应读取数码管上A/D转换后的数值,记录到上表中。

五、实验报告

(1)整理好实验程序和实验记录,进行数据处理分析并做图。

(2)数据采集中,如何实现精确的定时数据采集?

 

实验五、数模转换

一、实验目的

1、掌握模数转换芯片TLC5615的接口技术。

2、掌握模数转换芯片TLC5615的编程方法。

二、实验内容

TLC5615是一个串行10位的DAC芯片,只需通过3根串行总线就可以完成10位数据的串行输入。

要求:

1、编写程序实现下列要求:

通过DIP开关输入0~3FF位数值,由TLC5615变为模拟电压输出,记录数值与对应的对应关系。

2、利用TLC5615输出一个幅值从0V开始逐渐升至5V再降至0V、周期为1秒的三角波。

用示波器观察该波形。

三、实验线路

电路原理图如下,所需元件为:

AT89C51、7SEG-BCD、TLC5615、DIPSW。

1、TLC5615引脚排列:

2、TLC5615的时序图:

从图中可以看出,TLC5615的16位移位寄存器分为高4位虚拟位,低2位填充位以及10位有效位。

如果选择12位数据序列工作方式,则向16位移位寄存器按先后输入10位有效位和地2位填充位,2位填充位数据任意。

3、软件编程

4、TLC5615接线

将TLC5615的信号线接到相应的端口:

DIN接P2.5;

CS接P2.6

SCLK接P2.7;

REFIN接+5V

DINSW1接P1口对数值进行给定

DINSW2接P3.7,P3.6对数值进行给定

OUT接万用表(或示波器)

四、实验预习

1、学习模数转换的原理与编程

2、提前编写程序,写出预习报告。

五、实验步骤

1、用Proteus软件仿真,改变输入数据,使D/A输出电压从0V到5V变化,记录数码管的显示数值。

记录到表中。

输入数据

输出电压V

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

2、将编译好的三角波程序下载到实验板上,用示波器观察波形。

五、实验报告

1、总结出实验的详细步骤。

2、写出调试正确的程序及框图。

 

实验六、键盘与显示编程

一、实验目的

1、掌握数码管显示程序的设计;

2、掌握键盘扫描程序的设计。

二、实验内容

设计单片机程序,读取键盘的按键值(键值为1~16),送数码管显示。

(选做:

用10进制显示键值)。

三、实验原理

数码管动态扫描显示的基本原理是,单片机依次向每个数码管发出段选码和对应的位选码,对数码管逐个循环点亮,选择适当的扫描速度,利用人眼的视觉暂留效应,使得虽然每个时刻只有一个数码管在显示,但得看上去好像同时显示,动态扫描在定时中断中调用,以保证准确的扫描速度。

需要显示的数字必须先进行译码变成能显示的段码才能进行显示,译码可以通过查表来实现。

键盘扫描的基本原理是,列线逐列输出低电平,同时检测行线的电平,如其中有低电平时,表明当位于前行列位置上的键被按下,然后由行和列确定键值。

在按键处理操作中,键被按下再被释放为一次按键操作,另外还进行键盘去抖动处理,用软件延时方法解决。

四、电路图:

主要元器件:

AT89C52,7SEG-MPX4CA,7404,4094,BUTTON

图6.1键盘与显示电路图

在电路图中,显示功能是由4094串并转换芯片与四位数码管相联实现,4094的DAT与P0.1相联;CLK与P0.0相联,STR与P0.2相联,P2.4-P2.7控制数码管的位选信号和键盘的列扫描线(输出),P2.3-P2.0用于键盘的行检测(输入)。

五、实验预习

1、学习有关数码管扫描显示和键盘扫描的知识。

2、提前编写程序,写出预习报告。

六、实验报告

1、总结出实验的详细步骤。

2、写出调试正确的程序及框图。

参考程序附录:

TIMEQU-2000

DISPDATA30H;30-34H

DISDATA35H

KEYDATA36H

CLKBITP0.0

DATBITP0.1

STRBITP0.2

S4BITP2.7

S3BITP2.6

S2BITP2.5

S1BITP2.4

K1BITP2.3

K2BITP2.2

K3BITP2.1

K4BITP2.0

ORG0000H

LJMPMAIN

ORG000BH

LJMPTIM0

MAIN:

MOVSP,#60H

MOVIE,#82H

MOVTMOD,#11H

MOVTH0,#HIGH(TIM)

MOVTL0,#LOW(TIM)

SETBTR0

MOVDISP+0,#1

MOVDISP+1,#2

MOVDISP+2,#5

MOVDISP+3,#6

MOVKEY,#0

DELAY:

MOVA,KEY

JZDELAY

MOVB,#10

DIVAB

MOVDISP,A

MOVDISP+1,B

LCALLDLYTIM

LJMPDELAY

TIM0:

PUSHACC

PUSHPSW

MOVTH0,#HIGH(TIM)

MOVTL0,#LOW(TIM)

MOVA,DIS

LCALLGETDIS

MOVA,DIS

ADDA,#DISP

MOVR1,A

MOVA,@R1

LCALLGETSEG

KEY0P:

JBK1,KEY1P

MOVA,DIS

ADDA,#1

MOVKEY,A

KEY1P:

JBK2,KEY2P

MOVA,DIS

ADDA,#5

MOVKEY,A

KEY2P:

JBK3,KEY3P

MOVA,DIS

ADDA,#9

MOVKEY,A

KEY3P:

JBK4,KEYP

MOVA,DIS

ADDA,#13

MOVKEY,A

KEYP:

INCDIS

MOVA,DIS

CJNEA,#4,TIME

MOVDIS,#0

TIME:

POPPSW

POPACC

RETI

DLYTIM:

MOVR6,#200

DLYR7:

MOVR7,#200

DJNZR7,$

DJNZR6,DLYR7

RET

GETSEG:

MOVR1,A

LCALLDISPLAY

RET

GETDIS:

MOVDPTR,#NUMTAB

MOVCA,@A+DPTR

CPLA

MOVP2,A

RET

DISPLAY:

MOVA,R1

MOVDPTR,#TABLE

MOVCA,@A+DPTR

CPLA

MOVR2,#8

CLRCLK

DLP:

RRCA

MOVDAT,C

CLRCLK

SETBCLK

DJNZR2,DLP

SETBSTR

CLRSTR

RET

TABLE:

DB0F5H,05H,0E3H,67H,17H,76H,0F6H,25H

DB0F7H,77H,0B7H,0D6H,0F0H,0C7H,0F2H,0B2H

NUMTAB:

DB10H,20H,40H,80H

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1