单片机实验指导_第1页
单片机实验指导_第2页
单片机实验指导_第3页
单片机实验指导_第4页
单片机实验指导_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 清零程序一、实验目的(1)掌握汇编语言设计和调试方法;(2)熟悉MCS-51 单片机实验系统。二、实验内容程序一:把2000H20FFH的内容清零。三、程序框图清零四、实验步骤程序一:用连续或单步方式运行程序,检查200020FF中执行程序前后的内容变化。五、思考(1)对于清零程序,假使把2000H20FFH中的内容改成FF,如何修改本程序?(2)如何用断点方式调试程序?ORG 0000HSE01:MOV R0,#00HMOV DPTR, #2000HLOO1:CLR AMOVX DPTR, AINC DPTRINC R0CJNE R0, #00H, LOO1LOOP:SJMP LOO

2、PEND实验二 拆字程序一、实验目的(1)掌握汇编语言设计和调试方法;(2)熟悉MCS-51 单片机实验系统。二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H,高位清零,一般本程序用于把数据送显示缓冲区时用。三、程序框图 拆字 四、实验步骤用连续或单步方式运行程序,检查20002002H中内容变化情况。五、思考编写程序:把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。ORG 0000HSE02:MOV DPTR, #2000HMOVX A, DPTRMOV B, ASWAP AAN

3、L A, #0FHINC DPTRMOVX DPTR, AINC DPTRMOV A, BANL A, #0FHMOVX DPTR, ASJMP $END实验三 P1口亮灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。二、实验预备知识(1)P1口对准双向口,每一位都可独立地定义为输出或输入。(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。三、实验内容P1口作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。四、程序框图五、实验电路六、实验步骤A2区的P10P17用8芯

4、排线连接到D1区的LED1LED8,运行程序后,观察发光二极管闪亮移位情况。七、思考(1)改变延时常数,使发光二极管闪亮时间改变;(2)修改程序,使发光二极管闪亮移位方向改变。ORG 0000HSE18:MOV P1, #0FFHLO34:MOV A, #0FEHLO33:MOV P1, ALCALL SE19RL ASJMP LO33SE19:MOV R6, #0A0HLO36:MOV R7, #0FEHLO35:DJNZ R7,LO35DJNZ R6,LO36RETEND实验四 定时流水灯实验(定时器简单应用)一、实验目的通过学习单片机定时器的简单定时操作,掌握单片机定时器使用的一般方法。

5、二、实验内容 利用查询方式,利用定时器T0(或T1),实现在8051单片机的P1.0引脚输出一个周期为1S的连续方波,并通过L1指示观察其输出。(fosc=6MHz)三、实验原理图四、实验步骤用排线连接A2区P1口和D2区LED1LED8,编写定时控制程序,观察LED发光情况6MHz的晶振,采用50ms定时,工作方式1,循环10次来实现。X=65536-500/2*10-3=40536=9E58HTH=9EHTL=58H查询方式源代码:ORG 0000HMAIN:MOV TMOD, #10H;T1工作方式1MOV R3, #10LOOP1:MOV TH1, #9EHMOV TL1, #58HS

6、ETB TR1NOPLOOP:JNB TF1, LOOPCLR TF1CLR TR1DJNZ R3, LOOP1MOV R3, #10CPL P1.1SJMP LOOP1END中断方式源代码:ORG 0000HLJMP MAINORG 001BHLJMP TF1INTORG 0030HMAIN:MOV TMOD, #10HMOV R3,#10MOV TH1, #9EHMOV TL1, #58HSETB ET1SETB TR1SETB EAHERE:SJMP HERETF1INT:CLR TR1MOV TH1, #9EHMOV TL1, #58HSETB TR1DJNZ R3, LOOPCPL

7、P1.1MOV R3, #10LOOP:RETIEND 实验五 数据区传送程序一、实验目的(1)掌握RAM中的数据操作;(2)熟悉8031(8051)指令系统,掌握程序设计方法。二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。三、程序框图数据区传送四、实验步骤在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如1FFFH),运行程序,检查00001FFFH中内容是否和20003FFFH中内容完全一致。ORG 0000HSJMP MAINMAIN: MOV R2,#00HMOV R3,#00

8、HMOV R4,#20HMOV R5,#00HMOV R6,#1FHMOV R7,#0FFHSE22:MOV DPL, R3MOV DPH, R2MOVX A, DPTRMOV DPL, R5MOV DPH, R4MOVX DPTR, ACJNE R3, #0FFH, LO42INC R2LO42:INC R3CJNE R5, #0FFH, LO43INC R4LO43:INC R5CJNE R7, #00H, LO44CJNE R6, #00H, LO45SJMP $NOPLO44:DEC R7SJMP SE22LO45:DEC R7DEC R6SJMP SE22END实验六 简单I/O扩展

9、实验一、实验目的(1)掌握P3口、P1口简单使用;(2)学习延时程序的编写和使用。二、实验内容1.P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。2.P1口做输出口,编写程序,使P1口接的8 个发光二极管D1D8按16进制加一方式点亮发光二极管。三、实验说明P3口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P3口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。四、实验程序框图 五、实验线路图 六、实验步骤A2区IN

10、T1用插针连至D1区SW1孔,A1区P10P17用排线连至D1区LED1LED8。连续运行程序。开关SW1每拨动一次,LED1LED8发光二极管按16进制方式加一点亮。ORG 0000HMAIN:JB P3.3,MAINLCALL DELAYJB P3.3,MAINL1:JNB P3.3,L1LCALL DELAYINC AMOV P1,ALJMP MAINDELAY:MOV R6,#0FFHL2:MOV R7,#0FFHL3:DJNZ R7,L3DJNZ R6,L2RETEND实验七 键盘实验一、实验目的 利用实验仪上提供的按键K1K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理

11、,熟悉定时器和键盘扫描电路的工作原理及编程方法。(蜂鸣器34KHz的方波)二、实验内容 编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出不同的音调。程序检测按键的状态,当按下某一键时,蜂鸣器发出对应的音调。三、实验电路六、实验步骤 (1)用导线将A2区的P3.3口(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。(2)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序。BUZZEQUP3.3ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 0100H MAIN

12、: MOV SP,#60H;初始化堆栈向量MOV30H,#00;定时器初值清零MOV31H,#00MOV P1,#0FFH;设置P1口为输入模式MOV TMOD,#01H;设置定时器0为工作模式1SETB ET0;开定时器0中断SETBEA;开总中断CLR TR0;关闭定时器0START:MOVR0,P1CJNER0,#0FFH,KEY1;键盘扫描CLR TR0SJMPSTARTKEY1:CJNER0,#0FEH,KEY2;K1键按下MOV30H,#0FBH;设置音阶1MOV31H,#0E9HLJMPSET_TIMERKEY2:CJNER0,#0FDH,KEY3;K2键按下MOV30H,#0F

13、CH;设置音阶2MOV31H,#5CHLJMPSET_TIMERKEY3:CJNER0,#0FBH,KEY4;K3键按下MOV30H,#0FCH;设置音阶3MOV31H,#0C1HLJMPSET_TIMERKEY4:CJNER0,#0F7H,KEY5;K4键按下MOV30H,#0FCH;设置音阶4MOV31H,#0EFHLJMPSET_TIMERKEY5:CJNER0,#0EFH,KEY6;K5键按下MOV30H,#0FDH;设置音阶5MOV31H,#045HLJMPSET_TIMERKEY6:CJNER0,#0DFH,KEY7;K6键按下MOV30H,#0FDH;设置音阶6MOV31H,#9

14、2HLJMPSET_TIMERKEY7:CJNER0,#0BFH,NOKEY;K7键按下MOV30H,#0FDH;设置音阶7MOV31H,#0D6HSET_TIMER:SETBTR0;发声SJMPSTARTNOKEY:CLRTR0;无键按下SJMPSTARTINT_T0:;T0中断服务程序 MOV TH0,30H;定时器附初值 MOV TL0,31H CPL BUZZ;输出方波 RETI END 实验八 D/A接口实验一、 实验目的熟悉D/A转换的工作原理,学习使用并行数模转换芯片ADC0832进行数字信号到模拟信号的转换过程。二、 实验内容通过片外总线方式访问并行模拟数字转换器芯片ADC08

15、32,掌握数字信号到模拟信号的转换方法。三、 实验原理图四、 实验步骤1. 将DAC0832模块插入PARK2区2. 将模块上的JP1跳线帽跳至右侧的VCC处3. 将A7区的P2_CS连接到A2区的A154. 将A7区的P2_IO2和P2_INT分别接入C4区的A-和AOUT,C4区的A+接D2区的GND.5. 将C4区的V+和V-分别接至C1区的+12V和-12V6. 运行程序,使用万用表观察C4区的AOUT处的电压是否和程序输出电压相同。ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR, #7FFFHMOV A, #0FFHLOOP:MOVX DPTR, A

16、LJMP LOOPEND实验九 A/D接口实验一、 实验目的熟悉A/D转换的工作原理,学习使用并行模数转换芯片ADC0809进行电压信号的采集和数据处理。二、 实验内容通过片外总线方式访问并行模拟数字转换器芯片ADC0809,掌握模拟电压的通用采集方法。三、 实验原理图四、 实验步骤1. 将ADC0809模块插入PARK2区2. 将D2区1K电位器的左端金属孔通过导线连接到该区的GND金属孔,而右端的金属孔通过导线连接到该区的VCC金属孔3. 将D2区1K电位器的中间金属孔链接到A7去的P2_IO2 金属孔4. 将A7区的P2_IO3P2_IO5分别连接到A2区的A2A0,P2_INT连接到A2区的INT0。5. 将A7区的P2_C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论