单片机实验.docx
《单片机实验.docx》由会员分享,可在线阅读,更多相关《单片机实验.docx(16页珍藏版)》请在冰豆网上搜索。
单片机实验
实验一并行口实验
一、实验目的
1、掌握51汇编语言设计和调试方法。
2、掌握protues软件平台及实验箱的操作步骤。
二、实验内容及步骤
(一)、在单片机外部扩展8KBRAM芯片6264,其地址范围为0000H~1FFFH。
将片内ROM从1000H开始的存放的15个数据转存到外部RAM1000H开始的单元中。
请编写程序实现。
查看并给出外部RAM地址为1000H~100EH的内容。
(提示:
程序中定义的数据存放在内部ROM中。
ORG1000H
Data1:
DB11h,22h,33h、、、、、FFh)
图1电路原理图
实验步骤:
1、运行protues7软件。
或者双击打开实验一中的shiy1_P0.DSN。
2、记事本编辑51汇编源程序。
3、按图2~图4步骤添加、编译源程序。
4、编译通过后,运行程序。
观察8051CPU寄存器、RAM、SFR的内容,及外部RAM1000H开始的内容。
步骤见图5~图9。
图2添加源代码
图3编译源代码
图4编译成功提示
图5运行程序
图6选择8051CPU寄存器、RAM、SFR
图7打开8051CPU寄存器、RAM、SFR
图8暂停运行程序,打开外部RAM(即U3)窗口
图9外部RAM地址1000H~100FH单元内容
(二)编写汇编程序,用P1口控制LED灯,显示为流水灯的形式。
按图10所示电路原理图,搭接电路,编写程序,实现功能。
图10P1口控制流水灯显示
(三)实验箱的连接
1、将实验箱与计算机通过USB口连接。
2、运行桌面上的下载器“风标电子ISP”。
3、选中“擦除芯片”、“编程Flash”、“校验Flash”。
然后点击“打开文件”,选择由自己编写的汇编程序成功编译生成的hex文件,最后点击“自动编程”将程序下载到实验箱的单片机。
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。
实验二中断控制实验
一、实验目的
1、掌握中断程序的编程方法。
2、进一步掌握并行口的双功能使用方法。
二、实验内容
1、编程实现:
正常情况下,仅绿灯亮。
有故障发生时,绿灯灭,红灯闪烁;故障排除后,拨上总开关,恢复正常,即绿灯亮,红灯灭。
思路:
使用P1.0控制绿灯的亮灭;P1.1控制红灯的亮灭;P1.2读取总开关的状态;
P3.3复用为外部中断1的输入源,模拟故障发生。
注意:
(1)实验的LED是共阳极接法,输出“0”时,灯亮。
(2)有故障时(产生中断),总开关跳闸,即P1.2接的开关合上。
故障排除后,开关打开。
图2-1外部中断1电路
主程序及子程序框图:
思考题1:
将外部中断1改为使用外部中断0,电路与程序如何变动?
(1)硬件电路上,将中断源引至P3.2引脚。
(2)外部中断0的中断向量地址为0003H。
(3)初始化外部中断0的指令。
(SETBEX0;SETBIT0)
思考题2:
当有中断请求时,即有故障发生时,红灯闪烁同时报警器响。
程序应该如何变动?
提示:
报警器响,需要在P1.7输出至少2个不同频率的方波。
即分别重复调用2个不同时间的延时程序。
图2-2添加报警器的电路原理图
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。
实验三定时/计数实验
一、实验目的
1、熟悉8031定时/计数功能。
2、掌握定时/计数初始化编程方法。
二、实验内容
1、选择T1工作于模式0定时,在P1.0脚上输出周期为4ms的方波,单片机采用6MHZ晶振。
分析:
输出周期为4ms的方波,即高低电平的持续时间均为2ms,那么只要使P1.0脚上的电平每隔2ms取反一次,就可得到周期为4ms的方波。
将T1设为定时方式0:
GATE=0,C/T=0,M1M0=00;T0不用,可为任意,只要不使其进入方式3(此时,定时器1对外停止计数),一般取0即可。
计数初值的计算:
单片机系统默认的定时/计数器的工作时钟是晶振经12分频的,即T=12/(6*106),所以计数初值为
X=(213-2ms/T)=213-(2*10-3*6*106)/12=8192-1000=7192=1110000011000B
因为是13位计数器,所以X的高8位装入TH1,X的低5位装入TL1的低5位,即TH1=0E0H,TL1=18H。
思考:
T1计数结束采用中断工作方式,程序应如何编写?
2、在P1.7端接一个发光二极管LED,要求利用定时器控制,使LED亮1秒、灭1秒,周而复始,设
=6MHZ。
提示:
=6MHZ时,定时/计数器工作在方式0,最大定时值16.384ms;方式1,最大定时值为131.082ms。
因此需要软硬结合循环嵌套。
3、利用定时/计数器,产生1、2、3、4、、
的音符。
设定T0为工作方式1,
=12MHZ,各音符频率与计数初值对照下表:
音符
1
2
3
4
5
6
7
初值
64580
64684
64777
64820
64898
64968
65030
65058
TH
FC
FC
FD
FD
FD
FD
FE
FE
TL
44
AC
09
34
82
C8
06
22
三、实验内容一参考程序框图:
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。
实验四串行口应用实验
一、实验目的
掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。
二、实验内容
1、重复发送同一个数据,观察TXD端输出的波形。
将8031串口设为工作方式1,即10位异步收发,发送时钟由计数器控制;计数器T1设为定时工作,工作方式2,即自动重装8位计数器;波特率取1000bps,不加倍;单片机采用6MHZ晶振。
计数初值的计算:
TH1=256-[(1+0)*fosc]/(12*32*BPS)
P3.1复用为串行发送端TXD,将其接至示波器,观察输出波形。
注意观察8位数据位前后的起始位和停止位。
2、自发自收。
将代码段中定义的10个数据0~9,通过串口发送和接收,存放在外部存储器7000H开始的单元中。
实验内容一参考程序框图:
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。
实验五D/A转换实验
一、实验目的
1、掌握D/A转换与单片机的接口方法。
2、了解芯片DAC0832转换性能及编程方法。
二、实验内容
编写程序,使用DAC0832进行数模转换,产生锯齿波、三角波。
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。
实验六A/D转换实验
一、实验目的
1、掌握A/D转换与单片机的接口方法。
2、了解芯片ADC0809转换性能及编程方法。
二、实验内容
编写程序,使用ADC0809将电位器W1提供模拟量转换成数字量,通过发光二极管L1—L8显示。
模拟电量(V)
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
数字量
(注:
分析电路,得出ADC0809的片选地址)
三、实验报告
1、画出电路原理图。
(有学号、姓名)
2、写出程序清单、运行结果截图。