单片机及其接口技术实验报告.doc
《单片机及其接口技术实验报告.doc》由会员分享,可在线阅读,更多相关《单片机及其接口技术实验报告.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机及接口技术实验报告实验一 数据传送程序一、 实验目的1、掌握汇编语言设计和调试方法。2、掌握DVCC实验系统的操作步骤。二、 实验内容1、编程实现,把7000H70FFH单元的内容清零。 2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。三、DVCC实验系统操作说明1、 接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。2、 运行DVCC软件。(程序 DVCC598H实验系统 DVCC实验系统)3、 单击工具栏上“新建”或“打开”按钮,编写源程序。单击“编译”按钮,使其形成可执行文件。4、 单
2、击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。5、 在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。6、 单击工具栏上“运行”或“单步”按钮,运行实验程序。7、 单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。8、 运行完毕,先按实验箱上的复位按钮Reset键,再按
3、PCDBG键,并且点击屏幕上OK,即可退出运行状态。四、实验程序代码 1、把7000H70FFH单元的内容清零。 程序代码: ORG 0000HAJMPSTARTORG70HSTART:MOVP2, #70H;送地址高8位到P2端口MOVR0, #00H;R0=00H,表地址低8位CLR A;将累加器A清0LOOP: MOVX R0, A;将A送入以R0内容为地址的外部RAM.INCR0;R0+1-R0CJNER0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $;暂停END2、 编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传
4、送个数为0FFFH个。程序代码: ORG 0000H AJMP STARTORG 50HSTART: MOV DPTR, #6000HMOVP2, #70HMOVR0,#00HLOOP: MOVX A, DPTR MOVX R0, AINC DPTRINCR0CJNE R0,#00H,LOOP;比较条件转移,若R0不等于0,则程序循环,执行loop. INC P2MOVR1,P2CJNE R1,#80H,LOOP; 若R1不等与80h,则程序循环执行loop. AJMP $ END五、实验结果1、把7000H70FFH单元的内容清零。2、编程实现,将源地址为6000H开始的单元,传送到目的地址
5、7000H开始的单元,传送个数为0FFFH个。上图是左下角的窗口显示的是存储器源地址为6000H开始的单元里的内容。上图是程序运行后,存储器源地址为7000H开始的单元里的内容。经比较可以看出传送成功。六、问题与讨论 在做实验内容1时编译现在第10行出错,后来将第9和第10行后的注释都删除就编译通过了。实验二 并行口实验一、实验目的1、掌握P3口、P1口简单使用。2、学习延时程序的编写和使用。二、实验内容1、编写程序用P1.0输出1kHz和500Hz的音频信号,以驱动扬声器作为报警信号。要求1kHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关,进行控制。当开关合上,
6、报警信号响;当开关断开,报警信号停止。(教材单片机原理、接口及应用嵌入式系统技术基础 P75 例4-3)2、P3口做输入口,P1口做输出口。P3.3外接一脉冲,P1.0P1.7接的8个发光二极管L1L8。编写程序,使P3.3每输入一个脉冲,P1口按16进制加一方式逐次点亮发光二极管。三、实验接线图(实验内容二接线图)四、实验步骤1、编写程序用P1.0输出1kHz和500Hz的音频信号,以驱动扬声器作为报警信号。要求1kHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关,进行控制。当开关合上,报警信号响;当开关断开,报警信号停止。由于实验箱单片机P1.0是坏的,编程P1
7、.1为输出,其他不变。程序代码:ORG 00hSTART: SETB P1.7 ;P1. 7置1 JB P1.7, $;若P1.7为高电平,则循环检测,否则向下执行 MOV R1,#200;LOOP: ACALL D500 ; CPL P1.1 ; 产生1KHz的频率,P1.1取反输出 DJNZ R1,LOOP; R1减1,不为0时转移到LOOP,响100ms MOV R2,#200LOOP1: ACALL D500 ; ACALL D500 ; CPL P1.1 ; 产生500Hz的频率,P1.1取反输出 DJNZ R2,LOOP1; R2减1,不为0时转移到LOOP,响200ms SJMP
8、 START ; 跳转至STARTD500: MOV R6,#125 ; 延迟500us DJNZ R6,$ RET END2、P3口做输入口,P1口做输出口。P3.3外接一脉冲,P1.0P1.7接的8个发光二极管L1L8。编写程序,使P3.3每输入一个脉冲,P1口按16进制加一方式逐次点亮发光二极管。实验2接了4个口,从P1.1到P1.4,两次脉冲,灯变化程序代码:ORG 00H CLRA SETBP3.3 ;将P3.3置1BEG:JBP3.3, $ ACALL D500; JNB P3.3,$ ACALLD500 INC A MOV P1,A ; P1口输出 SJMP BEGD500: M
9、OV R7,#125;延时500us(6Mhz) DJNZ R7,$ RET END五问题与讨论1、做实验内容1时,刚开始用P1.0口输出,铃总是不响,接示波器也不输出波形。经测试铃是好的,怀疑程序有问题,就将程序改成一直只输出1KHz的频率,还是不出波形。最后换成P1.1口输出,调试程序运行铃就响了。2、实验内容2要求P1口输出接8个LED管,为节省时间,接4个输出观察实验结果就行了。我们实验箱接的是P1.1P1.4,实验结果有所不同,P3.3每输入两个脉冲,P1口按4进制加一方式逐次点亮发光二极管。实验三 中断实验一、实验目的1)掌握中断程序的编程方法。2)进一步掌握P1、P3口的双功能使
10、用方法。二、实验内容正常情况下,仅绿灯亮。有故障发生时,绿灯灭,同时红灯闪烁;故障排除后,拨上总开关,恢复正常,绿灯亮,红灯灭。可由P1.0 控制绿灯的亮灭;P3.3 接外部中断源,模拟故障发生;P1.1 控制红灯的亮灭;P1.2 读取总开头的状态。编写程序实现以上功能。(P3.3 复用为外部中断1输入,即为INT1。其中断向量地址为0013H,使用下降沿触发中断。)三、实验程序框图主程序: 中断服务程序:四、实验步骤1、由P1.1 控制绿灯的亮灭;P3.3 接外部中断源,模拟故障发生;P1.2 控制红灯的亮灭;P1.3读取总开头的状态。P3.3 复用为外部中断1输入,即为INT1。其中断向量
11、地址为0013H,使用下降沿触发中断。程序代码: ORG0000hAJMPMAIN;主程序ORG0013H;中断矢量表p211AJMPIRPRO ;中断服务程序入口 ORG 0050H;主程序MAIN: CLR P1.2;红灯灭 SETB P1.1;绿灯亮 SETB IT1;设置INT1负边缘触发p206(定时器控制寄存器TCON) SETB EX1;外部中断1有效p208(中断容许控制器IE)SETB EA;开中断p208(中断容许控制器IE)LOOP1: JB P1.1, LOOP1LOOP2: JNB P1.3,LOOP2SETB P1.1 SJMP LOOP1AL1: AJMP AL1
12、;中断服务程序IRPRO: PUSH PSW PUSH ACC CLR P1.1; 灭绿灯LOOP3: SETB P1.2;亮红灯 ACALL D500 CPL P1.2 ACALL D500 JNB P1.3,LOOP3 ;这里用P1.2进行监视,若开关没有闭合,则红灯一直闪烁。 POP ACC POP PSW RETID500: MOV R6,#255 ;延时子程序DELAY: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DELAY RET END实验接线:P1.1 接绿灯; P1.2接红灯; P1.3 开关K1; P3.3 接点触开关SP2、将实验内容1中的外部中断源换
13、成INT0,其中断向量地址为0003H,使用下降沿触发中断。程序代码:ORG0000hAJMPMAIN;主程序ORG0003H;中断矢量表p211AJMPIRPRO ;中断服务程序入口 ORG 0050H;主程序MAIN: CLR P1.2;红灯灭 SETB P1.1;绿灯亮 SETB IT0;设置INT0负边缘触发p206(定时器控制寄存器TCON) SETB EX0;外部中断0有效p208(中断容许控制器IE) SETB EA;开中断p208(中断容许控制器IE) LOOP1: JB P1.1, LOOP1 LOOP2: JNB P1.3,LOOP2 SETB P1.1 SJMP LOOP
14、1 AL1: AJMP AL1;中断服务程序 IRPRO: PUSH PSW PUSH ACC CLR P1.1; 灭绿灯LOOP3: SETB P1.2;亮红灯 ACALL D500 CPL P1.2 ACALL D500 JNB P1.3,LOOP3 ;这里用P1.3进行监视,若开关没有闭合,则红灯一直闪烁。 POP ACC POP PSW RETI ; 中断返回D500: MOV R6,#255 ;延时子程序DELAY: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DELAY RET END实验接线:P1.1 接绿灯; P1.2接红灯; P1.3 开关K1; P3.2
15、接点触开关SP3、在实验内容1的实现功能中加上有故障发生时,绿灯灭,红灯闪烁同时报警;程序代码:ORG0000hAJMPMAIN;主程序ORG0013H;中断矢量表p211AJMPIRPRO ;中断服务程序入口 ORG 0050H;主程序MAIN: CLR P1.2;红灯灭 SETB P1.1;绿灯亮 SETB IT1;设置INT1负边缘触发p206(定时器控制寄存器TCON) SETB EX1;外部中断1有效p208(中断容许控制器IE)SETB EA;开中断p208(中断容许控制器IE)LOOP1: JB P1.1, LOOP1LOOP2: JNB P1.3,LOOP2 SETB P1.1
16、 SJMP LOOP1AL1: AJMP AL1;中断服务程序IRPRO: PUSH PSW PUSH ACC CLR P1.1; 灭绿灯LOOP3: SETB P1.2;亮红灯 ACALL D500 CPL P1.2 MOV R1,#200; LOOP: ACALL D500U ; CPL P1.4 ;P1.4取反输出 DJNZ R1,LOOP ;R1减1,不为0时转移到LOOP JNB P1.3,LOOP3 ;这里用P1.2进行监视,若开关没有闭合,则红灯一直闪烁。 POP ACC POP PSW RETID500: MOV R6,#255 ;延时子程序DELAY: MOV R7,#0FF
17、H DJNZ R7,$ DJNZ R6,DELAY RETD500U: MOV R5,#125 ;延迟500us DJNZ R5,$ RET END实验接线:P1.1 接绿灯; P1.2接红灯;P1.3 开关K1;P1.4接响铃;P3.3 接点触开关SP五、问题与讨论1、实验内容1要注意P3.3 复用为外部中断1输入,即为INT1。其中断向量地址为0013H,使用下降沿触发中断将IT1置1,开总中断将EA置1,开外部中断1将EX1置1.2、实验内容2要注意P3.2 复用为外部中断0输入,即为INT0。其中断向量地址为0003H,使用下降沿触发中断将IT0置1,开总中断将EA置1,开外部中断1将
18、EX0置1.3、实验内容3要加上一个输出接响铃,加上的响铃代码必须加在中断服务程序中红灯闪烁的那一段。响铃的声音要大一点,输出频率就要变大,最简单的方法就是加上一个延时子程序,响铃时调用。因为原有的延时子程序是使红灯闪烁,频率很低。实验四 定时/计数实验一、实验目的1、 熟悉8031定时/计数功能。2、 掌握定时/计数初始化编程方法。二、实验内容1、 选择T1工作于模式0定时,在P1.0脚上输出周期为4ms的方波,单片机采用6MHZ晶振。分析:输出周期为4ms的方波,即高低电平的持续时间均为2ms,那么只要使P1.0脚上的电平每隔2ms取反一次,就可得到周期为4ms的方波。 将T1设为定时方式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 及其 接口 技术 实验 报告
限制150内