《单片机原理及应用实验.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验.docx(20页珍藏版)》请在三一办公上搜索。
1、实验一 Dais-52FD仿真开发系统的使用练习1、实验目的:(l)熟悉实验Daid-52FD实验箱的基本结构和使用方法;(2) 熟悉MCS-51软件集成开发环境的使用方法;(3) 掌握存储器的扩展方法;(4) 掌握汇编语言设计和调试方法。2、实验设备及器件:微机一台,Daid-52FD实验箱3、实验内容:把外部SRAM芯片6264的200020FFH数据存储器单元的内容清零。4、实验电路:SRAM芯片6264与单片机的连线如下图所示。地址总哉数据总践t . t.0 1 2 4 LD.-t-.ll 109 0 1 2A A A A A .nA A A A L 11-A A A0 1 2 3 4
2、 E A- ? 8 Q.-1L1112 A A A A A A .p A A fl A A A0 1 2 3 4 E A- ? DDDDDDDD0 1 2 2 4 G 6 7 DDDDDDDDIQRD II凭IOUR祭A155、实验步骤:(1) 熟悉了实验箱和集成开发环境的基本使用方法(2) 将存储器单元的D0D7总线接口用8芯排线或8芯扁平线与数据总线单元D0 D7的任一接口相连(3) 存储器单元的A0A7地址接口与地址总线单元(低8)A0A7的任一接口相连, 存储器单元的A8A12地址接口与地址总线单元(高8) A8A12的任一接口相 连。(4) 存储器单元的WE/PGM插孔与六位LED左
3、下方的WR或IOWR插孔相连。(5) 存储器单元的CS1插孔连到六位LED右下方的A15插孔。(6) 存储器单元的OE插孔连到六位LED左下方的RD或IORD插孔。(7) 按照以下内容建立源文件。;文件名:EX01.asmORG 0000HLJMP SE01ORG 0060HSE01: MOV R0,#00HMOV A,#00H;2000H 送 DPTR;A 送(DPTR);DPTR+1MOV DPTR,#2000HLOO1: MOVX DPTR,AINC DPTRINC R0;字节数加1CJNE R0,#00H,LOO1;不到FF个字节再清LOOP: SJMP LOOPEND(8)对源程序进
4、行编译,调试,手动单步或自动单步运行,检查存储器200020FFH 单元的变化情况,要求将程序运行前和运行后的存储器200020FFH单元的图 截下来进行比较,作为实验结果。(9)确认源程序编译,调试正常后,产生HEX文件。6. 思考题:若要存储器200020FFH单元的内容都改为FFH,应如何修改程序?注意:1.在E盘以自己的名字建立一个工作目录,用字母,不得用汉字,不超过8个字符; 源文件命名也不得使用汉字,不超过8个字符;所有源程序必须在英文输入法状态 下输入,否则编译会出错!说明:接线图中,只有粗实线需要连,其它线实验箱内均已连好。预习报告,实验报告格式1. 实验是理工科专业必不可少的
5、一个教学环节,是提高学生实践动手能力,巩固基础理论 知识的一个重要途径,所有学生必须端正学习态度,认真对待,按照实验的基本要求做 好每一个环节。2. 实验前必须按要求预习,并按指定格式写好预习报告,做实验前,预习报告交指导老师 检查,经老师签字认可后方可进行实验,未写预习报告的同学不得进行实验。预习报告格式如下:1)实验目的2)实验内容3)实验仪器4)实验原理(接口实验应包含原理接线图)5)实验源程序3. 做实验时要认真对待,不得做与实验无关的事情,比如,聊天,玩游戏,接听手机等; 不可以在实验室吃东西,要求保持环境卫生。4. 实验接线时必须先关电源,不可带电插、接线;实验完成后必须经指导老师
6、验收确认。 然后应整理好导线并归还,把实验仪器恢复成实验前状态,保持实验台整洁,方可离开。5. 实验完成后,应按指定格式及时写好实验报告6. 实验报告实验完成后,必须按要求写出实验报告,应包含以下内容:实验目的实验内容实验仪器实验原理(接口实验应包含原理接线图)实验步骤实验源程序实验结果(或现象)实验总结:对实验结果或现象的分析,自己的收获或体会等。实验二P1 口亮灯实验1、实验目的:(1)熟悉实验平台的使用方法,包括硬件平台和软件平台(2)学习P1 口的使用方法;(3)学习延时子程序的编写。2、实验预备知识:(l),Pl 口为准双向口,每一位都可独立地定义为输入或输出,在作 输入线使用前,必
7、须向锁存器相应位写入“1”,该位才能作为输入。(2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)* 指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。3、实验内容:P1 口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。4、实验程序框图:F1 口初始化点亮L位发光二极管左移一位5、实验接线图:6、实验步骤 :(1) P1.0P1.7用插针连至L1L8(2)仿真运行程序后,观察发光二极管闪亮移位情况。7、思考:(1)改变延时常数,使发光二极管闪亮时间改变。(2) 修改程序,使发光二极管闪亮移位方向改变。8、参考程序清单SE18:LO34:LO33
8、:ORG 0000HLJMP SE18ORG 0790HMOV P1,#0FFH ;送 P1 口MOV A,#0FEH ;L1发光二极管点亮MOV P1,ALCALL SE19 ;延时RL A;左移位SJMP LO33 ;循环;* 延时子程序 *SE19:MOVR5,#20LO37:MOVR6,#200LO36:MOVR7,#125LO35:DJNZR7,LO35DJNZR6,LO36 ;延时DJNZR5,LO37RETEND实验三Dais-52FD仿真开发系统的使用练习1,2,3,实验目的:实验内容:实验程序框图:4,掌握P3 口、P1 口简单使用。P3.3 口输入一脉冲,PI 口按16进制
9、加一方式点亮发光二极管。实验接线图:5, 实验步骤:P3.3用接针连至K1 ,P1.0P1.7插针连至L1L8, K1来回拨动一次,L1L8发光二极管按16进制方式加一点亮。6, 思考:修改程序,使发光二极管左移方式点亮。7, 参考程序清单:ORG 0000HLJMP J100ORG 0810HJ100:MOV A,#00HJ101:JB P3.3,J101MOV R2,#10HLCALL DELY ;延时消除抖动JB P3.3,J101; P3.3 电平为低吗?J102:JNB P3.3,J102MOV R2,#10HLCALL DELYJNB P3.3,J102;P3.3电平为高吗?INC
10、 A;加1PUSH ACCCPL A;取反MOV P1,A;驱动发光二极管POP ACCAJMP J101;循环;* 延时子程序 *DELY:PUSH02HDEL2:PUSH02HDEL3:PUSH02HDEL4:DJNZR2,DEL4 ;延时POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DELYRETEND实验四多分支程序设计1, 实验目的:a. 掌握多分支程序的编程方法,及在 仿真环境下程序的调试方法;b, 掌握LED显示器的工作原理,控 制方法及编程方法,显示电路见附件。L1:. %口字循环1字情岸循环3字循环A+散转首址1 T
11、H2, 实验内容:编写程序,根据送入 的数据转移运行。3, 实验程序框图如右:4, 实验步骤:在20H中分次送入00,01,02,03,每次运行程序后,观察数码管上数字循环情况。20H单元数据的修改在仿真环境下通过存储器窗口来修改。特别提示:运行前,必须先给20H单元送数,数码管才会正常显示,否则程序可能跑飞。5,程序清单ORG 0000HLJMP MEMSORG 0060HMEMS: MOV A,20HMOV DPTR,#KKKK ;散转首址RL AJMP A+DPTRKKKK: AJMP MEMSP0AJMP MEMSP1AJMP MEMSP2SJMP MEMSP3MEMSP0: MOV
12、20H,#0C0H LJMP SOX0MEMSP1: MOV 20H,#0F9H LJMP SOX0MEMSP2: MOV 20H,#0A4H LJMP SOX0MEMSP3: MOV 20H,#0B0H LJMP SOX0;SOX0: MOV A,20HMOV R0,#0DCHMOV R1,#0DDHMOVX R0,A MOV A,#01H SOX1: MOVX R1,AMOV R2,#20H;(20)*2;转到(20)*2+DPTR;0字循环;1字循环;2字循环;3字循环疗形口;字位口;往字形口送段码;字位码;往字位口送字位码LCALL DELY ;调用延时子程序 RL A;左移SJMP
13、SOX1;延时子程序DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DELYRET;END附件(LED显示电路):或旦I字形代码口厨目驱动字形口地址OFFDCH74LS273 字位口地址 0JFDDHLED显示采用动态显示方式,原理见教材。共阳极段码送字形口,字位码送字位口 1电平 选通)。09 共阳极段码:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H思考题:在20H中
14、分次送入00, 01, 02,,09,每次运行程序后,使数码管上循环显示 对应的数字,应如何修改程序?实验五脉冲计数实验(定时/计数器实验)1, 实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法。2, 实验内容:把定时器0外部输入的脉冲进行计数,并送显示器显示3,实验程序框图:r:i4,实验接线如右图:5,实验步骤:用插针把8MHZ插孔和 T插孔连接,P3.4依次接T0T7或单 脉冲输出孔,执行程序,观察数码管 上计数脉冲的速度及个数。dMI;己TfLKffi11itLSOtQi8NHZJi iiimE7rT旦 rTroTI-LSit7,程序清单(文件名:timer.asm):;脉
15、冲计数(定时/计数器实验)ORG 0000HSE15:LJMP SE15ORG 0060HMOV SP,#53HMOV TMOD,#05HMOV TH0,#00HMOV TL0,#00H;定时计数器初始化SETB TR0;开计数器LO29:MOV R2,TH0MOV R3,TL0;取出TH0.TL0内容LCALL ZOY0;二转十进制MOV R0,#79HMOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDS;送显示缓冲区LCALL SSEE;显示SJMP LO29;循环计数.显示ZOY0:CLR AMOV R4,AMOV R5,AMOV
16、R6,A;0送 R4 R5 R6LO30:MOV R7,#10HCLR C;R2 R3左移.移出的MOV A,R3;最高位送CYRLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6;(R4 R5 R6)*2+CY送 R4 R5 R6DA A;十进制调整MOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,LO30;循环16次RETPTDS:MOV R1,AACALL PTDS1MOV A,R1SWAP A,拆送显示缓冲区PTDS1:ANL A,#0FH
17、MOV R0,A INC R0 RET,SSEE:SETB RS1MOV R5,#05H,换工作区SSE2:MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSSE1:MOV R1,#0DDHMOV A,30HMOVX R1,AMOV R0,31HMOV A,R0MOV DPTR,#DDFF,字位送入MOVC A,A+DPTR,取字形代码MOV R1,#0DCHMOVX R1,A,字形送入MOV A,30H,右移RR AMOV 30H,ADEC 31HMOV A,#0FFHMOVX R1,A,关显示DJNZ R7,SSE1,6位显示完了吗?DJNZ R5,SSE2CLR R
18、S1RET;5次显示完了吗?DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH,END实验六A/D转换实验1, 实验目的:(1)掌握A/D转换与单片机接口的方法;(2) 了解入/。芯片0809转换性能及编程方法;(3) 通过实验了解单片机如何进行数据采集。以上内容请参阅教材,作实验前请先预习有关知识2, 实验内容:利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。3, 实验说
19、明A/D转换器大致分有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格 便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换 器,速度快,价格也昂贵。实验用ADC0809属第二类,是8位A/D转换器。每采集一次一般需100 |is。由于ADC0809 A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT。相 连,可以用中断方式读取A/D转换结果。4, 实验接线图:IN4 *INS INfe *IN7 ADC0809+ 5U12娘EF拍IN-0IN-1IN-2IN-2IN-4IN-5IN-6IN-7r-e-f i:+l
20、r-efi-iEOCAC-E-AADD-BADC-CALEENABLE:STARTCLOCh:EXIC_.-_ 4 5 6 7 8 -2 2 2 2 2 2 2b5,实验程序框图:6, 实验步骤:1). 138译码电路连接:输入端A.B.C,其中A与A2相连,B与A3相连,C与A4相连, 138使能控制输入端G与GS相连。2) . 02门电路连接:第1脚与模数转换单元的SC/ALE相连,第2脚与138译码单 元的Y0相连,第3脚与控制总线单元的IOW相连,第4脚与模数转换单元的OE相连,第5 脚与控制总线单元的IOR相连,第6脚与138译码单元的Y0相连。3) .将模数转换单元的CLK与控制总
21、线单元的ALE相连、IN0与05V模拟电压电 位器W1相连。4) .用8芯扁平电缆将A/D 0809的D0D7 (位于下方的锁存输出单元)与数据总 线单元的D0D7相连。连续运行程序,LED显示器右边二位显示当前采集的电压值转换后的数字量,调节 W1,LED的内容将随着电压变化而相应变化,LED以十六进制方式对应显示数字量。7, 思考:修改程序,用其它通道轮流采样显示。8, 程序清单:;A/D转换实验SE11:ORG 0000HLJMP SE11ORG 0060HMOV SP,#53HMOV 7EH,#00HMOV 7DH,#08HMOV 7CH,#00HMOV 7BH,#09HMOV 7AH
22、,#10HMOV 79H,#10H;显示缓冲区初值LO18:CALL DIS;显示MOV A,#00HMOV DPTR,#0FFE0HMOVX DPTR,A;0809的0通道采样CALL DIS ;SSEEMOVX A,DPTR;取出采样值MOV R0,#79HCALL PTDS;采样值送显示缓冲区SJMP LO18;循环PTDS: MOV R1,A;拆送显示缓冲区ACALL PTDS1MOV A,R1 SWAP APTDS1: ANL A,#0FHMOV R0,A INC R0 RET;显示子程序DIS:PUSH DPHPUSH DPLSETB RS1MOV R0,#7EHMOV R2,#2
23、0HMOV R3,#00HMOV DPTR,#LS0LS2:MOV A,R0MOVC A,A+DPTR MOV R1,#0DCH MOVX R1,A MOV A,R2 inc R1 MOVX R1,ALS1:DJNZ R3,LS1CLR CRRC AMOV R2,ADEC R0JNZ LS2CLR RS1POP DPLPOP DPH RET;LS0:DB 0C0H,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;END实验七8255控制交通灯1, 实验目的:(
24、1)掌握8255芯片的结构及编程方法(2)学习模拟交通控制的实现方法。2, 实验内容:用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。3, 实验程序框图和交通示意图如下:验55初始优四个路口红灯亮东西绿灯高,南北红灯延时东西黄灯闪燃南北红灯亮延时东西红灯盍,南北绿灯亮延时8255 端口T东西红灯亮,南北黄灯闪烁延时4,实验接线图:5,实验步骤:8255 PA0PA7 PB0PB3接发光二极管L12L5、L4L1。执行程序,初始 态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车, 延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口
25、红灯亮,而 同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭, 黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。附: 8255的口地址为:PA 口对应0FFD8H, PB 口对应0FFD9H, PC 口对应0FFDAH,控制口对应0FFDBH 6,程序清单:ORG 0000HLJMP JOD0ORG 0060HJOD0:MOV SP,#60HMOV DPTR,#0FFDBH MOV A,#88H MOVX DPTR,AMOV DPTR,#0FFD8H MOV A,#0B6H MOVX DPTR,A INC DPTR MOV A,#0DH MOV
26、X DPTR,A MOV R2,#25H LCALL DELYJOD3:MOV DPTR,#0FFD8HMOV A,#75H MOVX DPTR,A INC DPTR MOV A,#0DH MOVX DPTR,A MOV R2,#55H LCALL DELY MOV R7,#05HJOD1:MOV DPTR,#0FFD8HMOV A,#0F3H MOVX DPTR,A INC DPTR MOV A,#0CH MOVX DPTR,A MOV R2,#20H LCALL DELY MOV DPTR,#0FFD8H MOV A,#0F7H MOVX DPTR,A INC DPTR MOV A,#0D
27、H MOVX DPTR,A MOV R2,#20H;8255初始化,向控制口写控制字;向入口送数据;点亮4个红灯;延时;东西绿灯亮,南北红灯亮;延时;闪烁次数;东西黄灯亮,南北红灯亮;延时;南北红灯亮JOD2:DELY:DEL2:DEL3:DEL4:7.思考题LCALL DELY;延时DJNZ R7,JOD1MOV DPTR,#0FFD8HMOV A,#0AEHMOVX DPTR,AINC DPTRMOV A,#0BH;闪烁次数未到继续MOVX DPTR,AMOV R2,#55H;东西红灯亮,南北绿灯亮LCALL DELY;延时MOV R7,#05HMOV DPTR,#0FFD8HMOV A,
28、#9EHMOVX DPTR,AINC DPTRMOV A,#07H;闪烁次数MOVX DPTR,AMOV R2,#20H;东西红灯亮,南北黄灯亮LCALL DELYMOV DPTR,#0FFD8HMOV A,#0BEHMOVX DPTR,AINC DPTRMOV A,#0FH;延时MOVX DPTR,AMOV R2,#20H;东西红灯亮LCALL DELY;延时DJNZ R7,JOD2;闪烁次数未到继续LJMP JOD3;循环 延时子程序PUSH 02HPUSH 02HPUSH 02HDJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 0
29、2HDJNZ R2,DELYRETEND编程序实现以流水灯方式自右向左循环点亮发光二极管L1L12。实验八继电器控制、实验目的掌握用继电器控制的基本方法和编程。二、实验内容利用P1 口输出高低电平,控制继电器的开合,以实现对外部装置的控制。三、预备知识现代自动化控制设备都存在一个电子与电气电路的互相联结问题,一方面要使电子电路 的控制信号能够控制电器电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电 子电路和电气电路提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成 这一桥梁作用。本实验采用JZC23F型继电器,其控制电压为5V。继电器电路中一般要在继电器的线 圈两头加一
30、个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。四、实验电路五、程序流程六、实验步骤1、实验连线P1.0与继电器单元JIN相连,继电器单元JZ、JK、JB分别接GND、发光二极管L2、 L1。2、LED环境(1) 在“P. ”状态下按“0 EV/UN”,装载实验所需的代码程序。(2) 在“P.”状态下键入OF00,然后按“EXEC”进入实验项目的运行。3、PC环境在与PC联机状态下,编译、连接、下载PH51he12.asm,用连续方式运行程序。4、观察运行结果以连续方式运行程序,观察P1.0电平变化,高电平时继电器吸和,常开触点接上L2 点亮,L1熄灭,低电平时继电器不工作,常闭触点闭合,L2熄灭,L1点亮。5、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控 状态。;=继电器控制=ORG 0F00HLOP3: CLR P1.0MOV R2,#30HLCALL DELYSETB P1.0MOV R2,#30HLCALL DELYSJMP LOP3;DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DELYRET;END