单片机实验指导书AWord格式.docx

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

单片机实验指导书AWord格式.docx

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

单片机实验指导书AWord格式.docx

rla

AcallDelay

djnzr2,Output

LjmpLoop

Delay:

movr6,#0

movr7,#0

DelayLoop:

延时程序

djnzr6,DelayLoop

djnzr7,DelayLoop

ret

end

(二)实验二

KeyLeftBITP1.0;

定义

KeyRightBITP1.1

LedleftBITP1.2

LedRightBITP1.3

ORG0

SETBKeyLeft;

欲读先置一

SETBKeyRight

Movc,keyleft

MovLEDLeft,c

MOVC,KeyRight

MovLEDRIGHt,c

LJMPLoop

END

五、思考题

(1)对于本实验延时子程序

Delay:

MOVR6,0

MOVR7,0

DelayLoop:

DJNZR6,DelayLoop

DJNZR7,DelayLoop

RET

本模块使用12MHz晶振,粗略计算此程序的执行时间为多少?

六、电路图

实验二定时器输出PWM实验

1、了解脉宽调制(PWM)的原理

2、学习用PWM输出模拟量

3、熟悉51系列单片机的延时程序

PWM是单片机上常用的模拟量输出方法,通过外接的转换电路,可以将脉冲的占空比变成电压。

程序中通过调整占空比来调节输出模拟电压。

占空比是制脉冲中高电平与低电平的宽度比。

P1.0输出PWM信号接转换电路,转换电压值送数字电压表显示。

1、选用89C51最小应用系统模块,用导线将P1.0接到PWM转换电压输入端,电压输出接电压表“+”端,电压表“-”端接地。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“PWM.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序,观察电压表显示值,并做记录,程序默认是占空比5:

5的PWM。

修改源程序LOOP程序段两次给累加器A的赋值,改为①“MOVA,#1”②“MOVA,#9”,重新编译后运行,记录电压表显示值,这是占空比1:

9的PWM。

同样,用户可做占空比9:

1的PWM,并做记录。

比较三种PWM信号转换电压的大小,与理论值相比较。

5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。

四、流程图及源程序

1.源程序清单:

输出50%(5:

5)占空比PWM

输出10%(1:

9)占空比PWM

输出90%(9:

1)占空比PWM

ORG20H

OUTPUTBITP1.0

LOOP:

CLROUTPUT

MOVA,#5

CALLDELAY

SERBOUTPUT

LJMPLOOP

DELAY:

MOVR0,#0

DLOOP:

DJNZR0,DLOOP

DJNZACC,DLOOP

2.流程图

高电平延时

1、分析PWM转换电路的原理。

2、改变延时子程序R0的值,观察转换电压如何改变。

六、实验电路图

实验三蜂鸣器驱动实验

1、学习输入/输出端口控制方法

2、了解音频发声原理

本实验是利用89C51端口定时器输出控制端口,驱动扬声器发声,声音的频率高低由延时快慢控制。

本实验是利用单片机唱歌的声音控制程序,请用户思考如何修改程序,可以让蜂鸣器发出不同频率,不同长短的声音。

INT1输出音频信号接音频驱动电路,使蜂鸣器的发声。

1、使用单片机最小应用系统和蜂鸣器模块。

蜂鸣器模块的短路帽J1插到VCC方向,用导线将INT1接到蜂鸣器输入端。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“MUSIC.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序,扬声器周期性的发出“八月桂花”开声音。

(添加“MUSIC1.ASM”程序为“祝你平安”歌曲)

延时

五、电路图

实验四电子琴模拟实验

1、了解单片机系统发声原理

2、进一步熟悉定时器编程方法

1、利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。

2、定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。

由于定时参数不同,就发出了不同频率的脉冲。

本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。

发完后继续检测键盘,如果键还按下,继续发音。

各音阶标称频率值:

音阶

1

2

3

4

5

6

7

频率(HZ)

261.1

293.7

329.6

349.2

392.0

440.0

493.9

利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。

用P3.2口发出音频脉冲,驱动喇叭。

1、单片机最小应用系统的P1口接查询式键盘,单片机INT0口接扬声器的SP+,SP-接GND,扬声器的J19打在23处,P1口接查询式键盘的JD3口

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“电子琴.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序,按查询式键盘的1~7键,扬声器发出高低不同的声音。

关闭定时

停止发声

中断返回

定时中断程序框图

2.源程序:

PulseBIT10h;

脉冲

ToneHighequ30h;

高音调

ToneLowequ31h;

低音调

 Toneequ32h;

音调

 Speaker BIT P3.2

ljmpStart

org000bh

Timer0Int:

定时中断

pushPSW

clrTR0

movTH0,ToneHigh

movTL0,ToneLow

setbTR0

movC,Pulse

movSpeaker,C

CPLPulse

popPSW

reti

ToneTable:

dw64578,64686,64778,64821

DW64898,64968,65029

TestKey:

MOVP1,#0FFH

MOVA,P1;

读入键状态

KeyTable:

DB0FEH,0FDH,0FBH,0F7H;

键值表

DB0EFH,0DFH,0BFH,07FH

GetKey:

MOVR6,#10

ACALLDELAY

MOVA,P1

CJNEA,#0FFH,K01;

确有键按下

LJMPMLOOP

K01:

MOVR3,#8;

8个键

MOVR2,#0;

键码

MOVB,A;

暂存键值

MOVDPTR,#K0TAB

K02:

MOVA,R2

MOVCA,@A+DPTR;

从键值表中取键值

CJNEA,B,K04;

键值比较

MOVA,R2;

得键码

K04:

INCR2;

不相等,到继续访问键值表

MOVA,#0FFH;

键值不在键值中,即多键同时按下

延时子程序

djnzr6,Delay

ret

Start:

movsp,#70h

movTMOD,#01;

Timer

movIE,#82h;

EA=1,IT0=1

movTone,#0

MLoop:

callTestKey

jzMLoop

callGetKey

movb,a

jzMLoop;

=0,<

1

anla,#8

jnzMLoop;

>

7

decb

mova,b

rla;

a=a*2

movdptr,#ToneTable

movca,@a+dptr

movToneHigh,a

movTH0,a

inca

movca,@a+dptr

movToneLow,a

movTL0,a

movP1,#OFFH

Wait:

mova,P1

CJNEA,#OFFH,WAIT

MOVR6,#10

ljmpMLoop

1、请思考实验是怎样在硬件与软件上实现发声的?

2、本程序中断子程序的调用是怎样进行的?

实验五74LS164串转并实验

1、掌握89C51串行口方式0工作方式及编程方法;

2、掌握89C51的P1口的I/O功能输出;

3、掌握利用串行口入I/O口,扩展I/O通道的方法。

本实验是用74LS164把输入的串行数转换成并行数输出,74LS164为串行输入并行输出移位寄存器,其引脚图及功能如下:

A、B:

串行输入端;

Q0~Q7:

并行输出端;

MR:

清零端,低电平有效;

CLK:

时钟脉冲输入端,上升沿有效。

实验采用单片机串行工作方式0和P1端口两种方式串行输出数据。

串行口工作方式0时,数据为8位,从RXD端输出,TXD端输出移位信号,其波特率固定为Fosc/12。

在CPU将数据写入SBUF寄存器后,立即启动发送。

待8位数据输完后,硬件将状态寄存器的TI位置1,TI必须由软件清零。

串行口工作方式0数据/时钟是自动移位输出,用P1端口输出数据时,要编程位移数据,每输出一个数据位,再输出一个移位脉冲。

1、选用89C51单片机最小应用系统模块,用八位数据线把74LS164的并行输出口JD1与八位逻辑电平显示的输入口JD10连接,将74LS164的串行输入端A/B(1和2脚)接到RXD上,CLK接到TXD上,CLR接INT0。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“74164.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序,观察发光二极管亮灭情况,先右移动两次,再左移动两次,然后闪烁两次。

四、实验程序(光盘中附带)

实验六74LS165并转串实验

1、掌握89C51串行口方式0工作方式及编程方法

2、掌握用89C51的P1口的I/O功能,读入串行数据

3、掌握利用串行口及I/O口,扩展I/O通道的方法

这个实验主要是用74LS165把输入的并行数据转换成串行数据,74LS165为8位移位寄存器,其引脚图如图所示,引脚功能如下:

PL:

移位/置数端,低电平有效。

P0~P7:

并行数据输入端。

Q7、Q7:

串行数据输出端。

CLK1、CKL2:

时钟信号输入端。

SER:

串行输出端。

实验采用单片机串行工作方式0和P1口两种方式串行读入数据。

串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。

在这种方式下,数据为8位,从RXD端输入,TXD端输出移位同步时钟信号,其波特率固定为晶振频率Fosc/12。

由软件置位串行控制寄存器的允许接收位(REN)后,才启动串行接收。

待8位数据收完后,硬件将状态寄存器的RI位置1,RI必须由软件清零。

用串行口工作方式0读入数据,是自动移位完成的,用P1端口串行读入数据时,要编程输出时钟信号,移位读入数据。

三、实验步骤

用串口方式0读入开关的值,P0口接8位发光二极管,显示读入值。

1、将最小系统的P0口与八位逻辑电平显示JD10连接,用导线将74LS165串行输出端SH/LD接到P1.0上,CLK接到P1.1上,Q7接到P1.2上,JD2与八位逻辑电平输出口JD4相连。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“74165.ASM”源程序,进行编译,直到编译无误。

4、全速运行程序。

观察发光二极管的显示,是否与拨动开关的值相对应,改变拨动开关的值,显示随之变化。

5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中。

四、程序(光盘中附带)

实验七74HC138译码器实验

掌握74138电路的基本知识及由软件编译的译码器控制方式

二、实验步骤

由软件控制138译码器的工作方式,可以改变A,B,C的端口而改变其译码输出JD6口接8位发光二极管JD10,显示译码输出值。

1、最小系统的P1口接74LS138上的JD5口,而JD6口接到八位逻辑显示JD10,A,B,C接八位逻辑电平输出的K2,K1,K0。

(K2为低位,K0为高位,如要选择Y1,则K2、K1、K0对应的值为001)

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“74138.ASM”源程序,进行编译,直到编译无误

4、编译无误后,全速运行程序。

改变K0,K1,K2的状态观察发光二极管的显示,是否与控制端口的对应。

三、程序

ORG0000H

LJMPMAIN

ORG1000H

MAIN:

MOVSP,#60h

MOVR4,#0

DJNZR4,$

;

设置138译码器的使能

CLRP1.5

CLRP1.4

SETBP1.3

138译码器数据输入

CLRP1.0;

对应138的A可以改变相应状态的值而改变138译码器的输出

CLRP1.1;

对应138的B

SETBP1.2;

对应138的C

SJMP$

END

实验八看门狗实验

1、掌握“看门狗”(MAX813L)复位控制的硬件接口技术

2、掌握“看门狗”(MAX813L)复位控制驱动程序的设计方法

为了控制系统不受外界干扰而出现死机现象,可采用MAX813L复位监控芯片,该芯片具备复位及监视跟踪两大功能。

主要功能:

·

精密电源电压、监控4.65V·

200ms复位脉冲宽度·

V1=1V时保证复位RESET有效。

TTL/CMOS兼容的防抖动人工复位输入·

独立的监视跟踪定时器1.6S溢出时间。

电源故障或欠电压报警的电压监控

加电,掉电有电压降低时输出复位信号。

低电平有效的人工复位输入。

各引脚的功能和意义如图:

(1)MR:

人工复位输入、当输入降至0.8V时产生复位脉冲,低电平有效的输入可用开关短路到地或TTL/CMOS逻辑驱动,不用时浮空。

(2)Vcc:

+5V输入。

(3)GND:

地。

(4)PFI:

电源故障比较器输入,高PFI低于1.25V时PFO输出低电平吸收电流;

否则PFO输出保持高电平,如果不用将PFI接地或Vcc。

(5)PFO:

电源故障比较器输出,高PFI低于1.25V时,输出低电平且吸收电流;

否则PFO输出保持高电平。

(6)WDI:

监视跟踪定时器输入,WDI保持高或低电平时间长达1.6S,WDI输出低电平,WDI浮空或接高阻三态门将禁止监控跟踪定时器功能,只要发生复位,内部监视跟踪定时的清零。

(7)RESET:

复位输出(低电平有效)。

(8)WDO:

监视跟踪定时器输出,当内部监视跟踪定时器完成1.6S计数后,本脚输出低电平,直到下一次监视跟踪定时器清零,才再变为高电平,在低电源或Vcc低于复位门限电压时,WDO就保持低电平,只要Vcc上升到复位门跟电压以上后WDO就变为高电平而没有滞后。

利用MAX813L实现单片机上电自动复位,手动复位,“看门狗”自动检测。

对于上电复位和手动复位在电源打开,或者按实验装置的复位按钮就可以实现。

1、单片机最小应用系统的P1.0接看门狗的WDI,看门狗的RESET接八位逻辑电平显示的L0,PF0、WD0悬空。

可观察到LED延时1.6s闪烁。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“看门狗.ASM”源程序,进行编译,直到编译无误。

4、编译无误后,运行程序。

改变延时程序然后观察LED的变化,要求在1.6s以内,P1.0的信号要变化一次,否则单片机会自动复位。

四、源程序

ORG0000H

START:

CALLWDOG

LJMPSTART

WDOG:

SETBP1.0;

复位看门狗

NOP

NOP

CLRP1.0

MOVR4,#02H;

此处改延时程序,看灯的变化情况。

AA:

MOVR5,#0FFH

AA1:

MOVR6,#0FFH

AA2:

DJNZR6,AA2

DJNZR5,AA1

DJNZR4,AA

注意:

DELAY子程序可以自己定义,观察DELAY延时时间小于或者大于1.6秒单片机的复位的变化。

五、思考题

试在任何具体的应用程序中插入”看门狗”的应用。

实验九查询式键盘实验

掌握查询式键盘的接口和编程方法。

二、实验内容

本实验提供了8个按键的小键盘,如果有键按下,则相应输出为低电平,否则输出为高电平。

MCU判断有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

编写一个程序,能读出键盘操作的编号,并在数码显示器上显示。

三、实验电路

本实验所需电路请参见系统原理图的第一部分和独立式键盘电路。

四、实验程序参考框图

(a)主程序框图

(b)键盘扫描子程序框图

五、实验步骤

1、把7279阵列式键盘的J9四只短路帽打在上方,J10打在VCC处,用8P排线将JD7和八位动态数码显示的JD11相连,JD8和JD12相连,查询式键盘的JD3和最小系统的P1口相连。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加“查询式键盘.ASM”源程序,进行编译,直到编译无误。

4、全速运行,键盘上按下某个键,观察数显是否与该键号一致,键号从左至右为0~7。

六、思考题

1、程序如何确保每按一次键,只处理一次。

七、原理图

实验十7279阵列式键盘实验

1、掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法。

2、熟悉键盘的工作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法。

HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LE

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

当前位置:首页 > 自然科学

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

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