《单片微型计算机机实验指导终》由会员分享,可在线阅读,更多相关《单片微型计算机机实验指导终(13页珍藏版)》请在金锄头文库上搜索。
1、单片机实验1 汇编语言程序设计实验- 存储器块清零或赋值一实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。2 熟悉循环结构程序的编写。3 熟悉编程环境和程序的调试。二实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。三实验仪器微机、WAVE6000编程环境软件,(单片机实验箱)仿真器-仿真器设置-Lab6000通用微控制器 MCS51实验 8031 使用伟福软件模拟器 勾上注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长
2、。2 查看存储器菜单使用:窗口-数据窗口-XDATA 观察存储器内容3 查看SFR:窗口-CPU窗口 查看CPU寄存器SFR4 单步执行:执行-单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。编译器默认设置:程序框图参考程序:Block equ 4000h mov dptr, #Block ; 起始地址 mov r0, #10 ; 清10个字节 mov a, #33h ; Loop: movx dptr, a inc dptr ; 指向下一个地址 d
3、jnz r0, Loop ; 记数减一 ljmp $ end单片机实验2 存储块移动一实验目的1 熟悉51汇编语言程序结构。2 熟悉循环结构程序的编写,进一步熟悉指令系统。3 熟悉编程环境和程序的调试。二实验内容将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。三实验仪器微机、WAVE6000软件,(单片机实验箱)注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。参考程序与流程图 ;参考程序 移动 3000H - 4000H, 10字节 mov r0, #30h mov r1, #00h mov r2, #40h mov r3, #00h mov r
4、7, #10Loop: mov dph, r0 mov dpl, r1 movx a, dptr mov dph, r2 mov dpl, r3 movx dptr, a inc r1 inc r3 djnz r7, Loop ljmp $单片机实验3 数据排序一实验目的1了解数据排序的常用算法,掌握冒泡算法。2 进一步熟悉编程环境和调试方法。3 熟悉汇编程序设计。二实验内容将 50H开始的10个随机数按从小到大的顺序排列。三实验仪器 微机、WAVE6000编程环境注意:由于上电后数据都一样,所以需要手动修改50H后10个数据(要排序的数)方法是:窗口-数据窗口-DATA 找到50H开始的10
5、个2位16进制数,双击,修改其数值如(6,2,4,9,3,7,1,5,8,0)之后编译(下载),单步执行,查看排序执行过程冒泡算法(两层循环,以下是内层循环开始)。6,2,9,4,3,7,1,5,8,0 前大后小交换位置如下: 2,6,9,4,3,7,1,5,8,0 前小后大不交换位置如下;2,6,9,4,3,7,1,5,8,0 前大后小交换位置如下;2,6,4,9,3,7,1,5,8,0第一次内层循环结束顺序如下:最大的数9先冒出来2,6,4,3,7,1,5,8,0,9 接着开始第二次内层循环参考程序:Size equ 10 ; 数据个数Array equ 50h ; 数据起始地址Chang
6、e equ 0 ; 交换标志Sort: mov r0, #Array mov r7, #Size-1 clr ChangeGoon: mov a, r0 mov r2, a inc r0 mov B, r0 cjne a, B, NotEqual sjmp NextNotEqual: jc Next ; 前小后大, 不交换 setb Change ; 前大后小, 置交换标志 xch a, r0 ; 交换 dec r0 xch a, r0 inc r0Next: djnz r7, Goon jb Change, Sort ljmp $ end流程图单片机实验4 P1口输入输出实验一实验目的1熟悉
7、P1 口的功能。2熟悉延时子程序或定时中断程序的编写和使用。3初步熟悉单片机软硬件设计方法。二实验内容(两内容分开做)注意:硬件实验 小实验箱的仿真器设置:选择仿真器 选择仿真头 选择CPUG6W POD51 80311P1口做输出口接八只发光二极管,编写程序,使发光二极管循环亮灭。注意:小实验箱(G2010)的发光二级管LED是低电平亮,高电平灭;大实验箱(LAB6000)的发光二级管LED是高电平点亮,低电平灭。2P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管。编写程序读取开关状态,将此状态在发光二极管上显示出来。三实验仪器微机,WAVE6000编程
8、环境、实验箱注意:当P1口用作输入口时,必须先对它置”1”。编程时应注意P1.0,P1.1作为输入时应先置1,才能正确读入值。S0,S1就是实验箱上K0,K1 键2延时子程序示例如下:()延时程序可以作为子程序在主程序里面调用,也可以放在程序中间,顺序执行大实验箱参考程序:注:大实验箱 LED灯 1 亮 0 灭注:小实验箱LED灯是 1 灭 0 亮 ,程序应做相应修改内容1大实验箱参考程序:Loop: mov a, #01h 内容2大实验箱参考程序 KeyLeft equ P1.0 mov r2, #8 KeyRight equ P1.1Output: LedLeft equ P1.2 mov
9、 P1, a LedRight equ P1.3 rl a SETB KeyLeft call Delay SETB KeyRight djnz r2, Output Loop: ljmp Loop MOV C, KeyLeftDelay: MOV LedLeft, C mov r6, #0 MOV C,KeyRight mov r7, #0 MOV Ledright,CDelayLoop: LJMP Loop djnz r6, DelayLoop END djnz r7, DelayLoop ret end实验五 计数器实验一实验目的1 熟悉计数器的使用方法。2 熟悉计数器的硬件电路连接。3
10、 熟悉计数器的软件设计。二实验内容注意:硬件实验 小实验箱的仿真器设置:选择仿真器 选择仿真头 选择CPUG6W POD51 80318031内部定时计数器0,按计数器模式和工作方式1工作,对P3.4(计数器0计数脉冲输入T0)引脚进行计数。将其计数数值按二进制数用P1口驱动LED灯显示出来。说明三实验仪器微机、WAVE6000编程环境,伟福6000实验箱 注意:P3.4接单次脉冲小实验箱单次脉冲按钮在显示屏下的(黄色)按钮。小实验箱与大实验箱不同,黄色按钮可以轻轻按压产生单次脉冲,也可以彻底按下锁定脉冲。彻底按下时,按一次,其保持为高(低)电平,然后需要手动复位按下松开,之后再按下松开其保持为低(高)电平,或者轻按松开产生单次脉冲。单次脉冲输出端在单次脉冲黄色按钮左侧5厘米处。实验连线如图: 大实验箱单次脉冲小实验箱的单次脉冲(高电平,低电平)接口如下图最左侧中间位置:单次脉冲按键为图中间所示黄色按钮高电平接口 低电平接口 程序流程:注:小实验箱LED灯是 1 灭 0 亮 ,程序应做相应修改 mov TMOD, #00000101b ; 方式1,记数器 mov TH0, #0 mov TL0, #0