单片机实验指导书Word格式.docx
- 文档编号:20260693
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:19
- 大小:381.64KB
单片机实验指导书Word格式.docx
《单片机实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
输入信号使用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
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
DJNZR5,LOOP1
RET
DELAY0:
MOVR4,#0FFH
LOOP2:
NOP
DJNZR4,LOOP2
FLASH:
JBP3.2,L0
JBP3.3,L1
MOVDPTR,#TAB1
L0:
JBP3.3,L2
MOVDPTR,#TAB2
L1:
JBP3.2,L2
MOVDPTR,#TAB3
L2:
MOVDPTR,#TAB4
DB01H,02H,04H,08H,10H,20H,40H,80H
DB03H,06H,0CH,18H,30H,60H,0CH,81H
DB80H,40H,20H,10H,08H,04H,02H,01H
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、提前编写程序,写出预习报告。
七、实验报告要求
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、掌握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.5
1
1.5
2
2.5
3
3.5
4
4.5
5
TLC549
A/D仿真结果
A/D实验板
测量结果
2、在KILL51软件下编辑TLC1549的A/D转换源程序,汇编通过后下载到单片机实验板:
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、学习模数转换的原理与编程
五、实验步骤
1、用Proteus软件仿真,改变输入数据,使D/A输出电压从0V到5V变化,记录数码管的显示数值。
输入数据
输出电压V
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、学习有关数码管扫描显示和键盘扫描的知识。
六、实验报告
参考程序附录:
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
MOVA,DIS
LCALLGETDIS
ADDA,#DISP
MOVR1,A
MOVA,@R1
LCALLGETSEG
KEY0P:
JBK1,KEY1P
ADDA,#1
MOVKEY,A
KEY1P:
JBK2,KEY2P
ADDA,#5
KEY2P:
JBK3,KEY3P
ADDA,#9
KEY3P:
JBK4,KEYP
ADDA,#13
KEYP:
INCDIS
CJNEA,#4,TIME
MOVDIS,#0
TIME:
POPPSW
POPACC
RETI
DLYTIM:
MOVR6,#200
DLYR7:
MOVR7,#200
DJNZR7,$
DJNZR6,DLYR7
GETSEG:
LCALLDISPLAY
GETDIS:
MOVDPTR,#NUMTAB
CPLA
MOVP2,A
DISPLAY:
MOVA,R1
MOVDPTR,#TABLE
MOVR2,#8
CLRCLK
DLP:
RRCA
MOVDAT,C
SETBCLK
DJNZR2,DLP
SETBSTR
CLRSTR
TABLE:
DB0F5H,05H,0E3H,67H,17H,76H,0F6H,25H
DB0F7H,77H,0B7H,0D6H,0F0H,0C7H,0F2H,0B2H
NUMTAB:
DB10H,20H,40H,80H
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书