单片机原理与应用实验指导书.doc_第1页
单片机原理与应用实验指导书.doc_第2页
单片机原理与应用实验指导书.doc_第3页
单片机原理与应用实验指导书.doc_第4页
单片机原理与应用实验指导书.doc_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

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

文档简介

单片机原理与应用实验指导书电子信息工程系苏州市职业大学- 41 -第一章 伟福仿真器系统概述本仿真器系统由仿真主机+仿真头、mult_51c自制实验板、仿真器专用电源等组成。本系统的特点是:一、主机+仿真头的组合通过更换不同型号的仿真头即可对各种不同类型的单片机进行仿真,是一种灵活的多cpu仿真系统。采用主机+pod组合的方式,更换pod,可以对各种cpu进行仿真。本仿真器主机型号为e51/s, 仿真头型号为pod8x5x(可仿真51系列8x5x单片机)。 二、 双平台,dos版本和windows版本。windows版本功能强大,中/英文界面任选,用户源程序的大小不再有任何限制,支持asm,c,plm语言混合编程,具有项目管理功能,为用户的资源共享、课题重组提供强有力的手段。支持点屏显示,用鼠标左键点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方位,动态地显示仿真的各种过程,使用极为便利。三、双工作模式 1.软件模拟仿真(不用仿真器也可模拟仿真)。 2.硬件仿真。四、双cpu结构,100不占用户资源。全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。五、双集成环境编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类cpu仿真全部集成在一个环境下。可仿真51系列,196系列,pic系列,飞利蒲公司的552、lpc764、dallas320,华邦438等51增强型cpu。伟福windows调试软件提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编make、build和调试工具。六、强大的逻辑分析仪综合调试功能逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,并实时在线调试分析,采集深度32k(e2000/l),最高时基采样频率达20mhz,40路波形,可精确实时反映用户程序运行时的历史时间。系统在使用逻辑分析仪时,除普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点如:数据、地址、外部控制信号、cpu内部控制信号、程序区间断点等。由于逻辑仪可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。随着科学技术的发展,单片机通信方面的运用越来越多。在通信功能的调试时,如果通信不正常,查找原因是非常耗时和低效的。有了逻辑仪,情况则完全不同了,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通信报文的波形与源程序相比较,可立即发现问题所在,从而极大地方便了调试。七、强大的追踪器功能追踪功能以总线周期为单位,实时记录仿真过程中cpu发生的总线事件,其触发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的cpu指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。屏幕窗口显示波形图最多追踪记忆指令32k并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。总线跟踪可以跟踪程序的运行轨迹,可以统计软件运行时间。第二章 开发环境简介双击桌面上的wave图标或从开始/程序/wave for windows/wave进入本开发环境,其界面及主要功能如图2-1中所注。 仿真器设置打开文件新建文件打开项目保存文件编译文件复位全速执行跟踪单步cpu窗口保存文件数据窗口 图2-1 wave界面一、仿真器设置窗口如图2-2所示,在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及cpu类型,并注意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟器”前的选择。图2-2 仿真器设置窗口二、文件窗口如图2-3,可在此窗口下进行包括新建、打开、保存等文件操作。图2-3 文件窗口三、编译文件窗口如图2-4,在此窗口下可将源文件编译成目标文件。图2-4 编译文件窗口四、执行窗口如图2-5,在此窗口下,可用全速、跟踪、断点等各种方式运行程序图2-5 执行窗口五、“窗口”窗口 如图2-6-1,在此窗口下,可以观察各种窗口信息,其中最常用到的是cpu窗口和数据窗口。图2-6-1 窗口1. cpu窗口通过cpu窗口可以看到你编译正确的机器码及反汇编程序,可以让你更清楚地了解程序执行过程。cpu窗口中还有sfr窗口和位窗口,让你了解程序执行过程中寄存器内容的变化。图2-6-2 cpu窗口2. 数据窗口对51系列cpu,数据窗口有:data内部数据窗口;code程序数据窗口;xdata外部数据窗口;pdata外部数据窗口(页方式)图2-6-3 数据窗口图2-6-4 data(内部数据窗口)图2-6-5 code(程序数据窗口)图2-6-6 xdata(外部数据窗口)图2-6-7 pdata(页方式外部数据窗口)第三章 mcs51系列单片机实验软件实验一 存储器块清零一、实验目的 1. 掌握存储器读写方法。2. 了解存储器的块操作方法。二、实验内容1. 指定内部ram中某块的起始地址和长度,要求能将其内容清零。2. 指定外部ram中某块的起始地址和长度,要求能将其内容清零。3. 指定外部ram中某块的起始地址和长度,要求能将其内容置为某固定值(如0ffh)。三、实验说明 通过本实验,学生可以了解单片机的存储器结构及读写存储器的方法,同时也可以了解单片机编程、调试方法。四、实验仪器和设备 pc机、wave软件。五、参考程序框图设置块起始地址设置块长度当前地址内容清零地址加1结束是否清除完?否是存储器块清零参考程序框图软件实验二 二进制到bcd转换一、实验目的1.掌握简单的数值转换算法。2.基本了解数值的各种表达方法。二、实验内容1.将给定的一个单字节二进制数,转换成非压缩的二十进制(bcd)码。2.将给定的一个单字节二进制数,转换成压缩的二十进制(bcd)码。三、实验说明计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。有兴趣的同学可以试试将bcd转换成二进制码。四、实验仪器和设备 pc机、wave软件。 五、参考程序框图给出要转换的二进制数将该数除以100保存百位数将余数除以10,得到十位数结束保存十位数余数为个位数,将其保存单字节二进制数转换成非压缩bcd码框图软件实验三 十进制到ascii码转换一、实验目的 1了解bcd值和ascii值的区别。 2了解如何将bcd值转换成ascii值。 3了解如何查表进行数值转换及快速计算。二、实验内容 给出一个压缩bcd数,分别用查表法和逻辑运算方法将其转换成ascii值。三、实验说明此实验主要让学生了解数值的bcd码和ascii码的区别,学会用查表法快速地进行数值转换并进一步了解数值的各种表达方式。四、实验仪器和设备 pc机、wave软件。五、参考程序框图(查表法)给出要转换的bcd数取出bcd高四位查表得到ascii码取出bcd低四位结束查表得到ascii码保存低位ascii码保存高位ascii码十进制到ascii码转换(查表法)参考程序框图软件实验四 存储块移动一、实验目的 1了解内存的移动方法。 2加深对存储器读写的认识。二、实验内容 将指定源地址和长度的存储块移到指定目标位置。三、实验说明 块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考:给出块结束地址,用地址减一方法移动块的算法。四、实验仪器和设备 pc机、wave软件。五、参考程序框图设置块的源地址设置移动长度源地址加1目标地址加1结束是否移动完?设置块的目标地址从源地址取数保存到目标地址中否是存储块移动参考程序框图 软件实验五 多分支程序一、实验目的 1了解程序的多分支结构。 2了解多分支结构程序的编程方法。二、实验内容 在多分支结构的程序中,能够按调用号执行相应的功能。三、实验说明多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序,完成指定操作。四、实验仪器和设备 pc机、wave软件。五、参考程序框图根据调用号查表得到跳转地址结束跳转到相应程序段调用返回设置调用号 多分支参考程序框图软件实验六 数据排序一、实验目的 1了解数据排序的简单算法。 2了解数列的有序和无序概念。二、实验内容 给出一组随机数,将此组数据排序,使之成为有序数列。三、实验说明有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是:将一个数与后面的数相比较,如果比后面的数大,则交换。按此方法,将所有的数比较一遍后,最大的数就会在数列的最后面,再进行下一轮比较,找出第二大数,直到全部数据有序。四、实验仪器和设备 pc机、wave软件。五、参考程序框图设置数据区地址清除交换标志从当前地址取数ba=b?设置数据区长度从当前地址取数a地址加1结束数据比较完?全部有序?设置交换标志交换a、b位置 是 否 否 是 否是数据排序参考程序框图硬件实验一 p0口输出实验一-跑马灯一、实验目的1. 学习p0口的使用方法。2. 学习延时子程序的编写和使用。二、实验内容p0口做输出口,接八只发光二极管。编写程序,使发光二极管循环点亮。三、实验说明:延时子程序的延时计算问题对于程序 delay:mov r7,#200 del1:mov r6, #123nopdel2:djnz r6,del2 djnz r7,del1 ret通过查找指令表可知,执行mov指令需用1个机器周期,djnz指令需用2个机器周期,在12mhz晶振时,一个机器周期时间长度为1s,所以该段程序执行时间为:1+(1+1+2123+2) 200+21s50ms四、实验仪器和设备 pc机、wave软件、e51/s仿真器+pod8x5x仿真头、mult_51c实验板、仿真器专用电源等。五、实验电路图六、参考程序countequ30h org0000h movsp, #5fh mova, #7fh loop:movp0, a movcount, #10 lcall deln10ms rra ajmploop ;*; (1) (2) (3) (4) (5) (6) (7); t= 1t+( 1t+(1t+ 1t+ 2t )25 + 2t)100 + 2t =10303t=10303 us; =10.3 ms;*delay10ms: movr7, #100 ;1t (1)del0: movr6, #25 ;1t (2)del1: nop ;1t (3) nop ;1t (4) djnzr6, del1 ;2t (5) djnzr7, del0 ;2t (6) ret ;2t (7);入口参数:count,t= count 10msdeln10ms:deln: lcalldelay10ms djnzcount, deln retend硬件实验二 p0口输出实验二-4位led数码管动态显示一、实验目的1. 学习8d锁存器74573的使用方法。2. 学习多位led数码管动态显示程序的编写方法。二、实验内容p0口作输出口,外接两片8d锁存器74573,一片74573用于控制led数码管的字段,另一片74573用于控制led数码管的字位。编写程序,使得内存单元disp1disp4中的内容在4位led数码管上显示出来。三、实验仪器和设备 pc机、wave软件、e51/s仿真器+pod8x5x仿真头、mult_51c实验板、仿真器专用电源等。四、实验电路图五、参考程序 sel0equp3.5 sel1equp3.7 disp1equ30h disp2equ31h disp3equ32h disp4equ33h countequ34h scanequ20h scan1equ20h.0 scan2equ20h.1 scan3equ20h.2 scan4equ20h.3 org0000h ljmpmain org001bh ajmpdisplay main:movtmod,#00010000b movth1, #0ech movtl1, #78h setbet1 setbpt1 setbea setbtr1 movcount, #0 clrsel0 clrsel1 movdisp1, #2 movdisp2, #0 movdisp3, #0 movdisp4, #6 wait: ajmpwaitdisout1: movdptr, #tab movca, a+dptr movp0, a setbsel1 clrsel1 retdisout0: mova, scan movp0, a setbsel0 nop clrsel0 retdisplay: movth1, #0ech movtl1, #78h pushacc pushpsw inccount mova, count cjnea, #1, no_dis1 clrscan1 setbscan2 setbscan3 setbscan4 lcalldisout0 mova, disp1 lcalldisout1 ajmpt1_endno_dis1: cjnea, #2, no_dis2 setbscan1 clrscan2 setbscan3 setbscan4 lcalldisout0 mova, disp2 lcalldisout1 ajmpt1_endno_dis2: cjnea, #3, no_dis3 setbscan2 clrscan3 setbscan2 setbscan4 lcalldisout0 mova, disp3lcalldisout1ajmpt1_endno_dis3: movcount, #0 setbscan1 setbscan2 setbscan3 clrscan4 lcalldisout0 mova, disp4 lcalldisout1t1_end: poppsw popacc retitab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h end硬件实验三 p0口输出、p2口输入实验一-静态按键、显示实验一、实验目的1. 学习8d锁存器74573的使用方法。2. 学习静态按键、显示程序的编写方法。二、实验内容p0口作输出口,外接两片8d锁存器74573,一片74573用于控制led数码管的字段,另一片74573用于控制led数码管的字位,p2口作输入口,用于读入键盘的状态。编写程序,使得每个按键显示一组不同的数据。三、实验仪器和设备 pc机、wave软件、e51/s仿真器+pod8x5x仿真头、mult_51c实验板、仿真器专用电源等。四、实验电路图 五、参考程序 sel0equp3.5 sel1equp3.7 disp1equ30h disp2equ31h disp3equ32h disp4equ33h countequ34h scanequ20h scan1equ20h.0 scan2equ20h.1 scan3equ20h.2 scan4equ20h.3 scan5equ20h.4 scan6equ20h.5 scan7equ20h.6 org0000h ljmpmain org001bh ajmpdisplay main: movtmod, #00010000b movth1, #0ech movtl1, #78h setbet1 setbpt1 setbea setbtr1 movcount, #0 clrsel0 clrsel1 movdisp1, #2 movdisp2, #0 movdisp3, #0 movdisp4, #6 wait: lcallkey_scan jzpro_end cjnea, #1, no_1 movdisp1, #1 movdisp2, #1 movdisp3, #1 movdisp4, #1 ajmppro_endno_1: cjnea, #2, no_2 mov disp1, #2 movdisp2, #2 mov disp3, #2 movdisp4, #2 ajmppro_endno_2: cjnea, #3, no_3 movdisp1, #3 movdisp2, #3 movdisp3, #3 movdisp4, #3 ajmppro_endno_3: cjnea, #4, no_4 movdisp1, #4 movdisp2, #4 movdisp3, #4 movdisp4, #4no_4: ajmpwait disout1: movdptr, #tab movca, a+dptr movp0, a setbsel1 nop clrsel1 ret disout0: mova, scanmovp0, a setbsel0 nop clrsel0 retkey_scan: clrscan5 setbscan6 setbscan7 lcalldisout0 mova, p2 anla, #00001111b cjnea, #0fh, may_key ajmpno_key may_key: lcalldelay10ms mova, p2 anla,#0fh cjnea, #0fh, yes_key ajmpno_key yes_key: cjnea, #0eh, no_key1 mova, #1 ajmpkey_end no_key1: cjnea, #0dh, no_key2 mova, #2 ajmpkey_end no_key2: cjnea, #0bh, no_key3 mova, #3 ajmpkey_end no_key3: mova, #4 ajmpkey_end no_key: mova, #0 ajmpkey_end key_end: retdelay10ms: movr6, #250 del: movr7, #10 djnzr7, $ djnzr6, del retdisplay: movth1, #0ech movtl1, #78h pushacc pushpsw inccount mova, count cjnea, #1, no_dis1 clrscan1 setbscan2 setbscan3 setbscan4 lcalldisout0 mova, disp1 lcalldisout1 ajmpt1_endno_dis1: cjnea, #2, no_dis2 setbscan1 clrscan2 setbscan3 setbscan4 lcalldisout0 mova, disp2 lcalldisout1 ajmpt1_endno_dis2: cjnea, #3, no_dis3 setbscan2 clrscan3 setbscan2 setbscan4 lcalldisout0 mova, disp3 lcalldisout1 ajmpt1_endno_dis3: movcount, #0 setbscan1 setbscan2 setbscan3 clrscan4 lcalldisout0 mova, disp4 lcalldisout1t1_end: poppsw popacc retitab: db 0c0h,0f9h,0a4h,0b0h,99h db 92h,82h,0f8h,80h,90h end硬件实验四 i2c总线实验-at24c02串行e2prom实验一、实验目的1. 学习i2c总线工作原理。2. 学习用at24c02实现对串行e2prom进行读/写操作的编程方法。二、实验内容将2个不同的数据(如55h,aah)写入到at24c02中,然后再读出来。三、实验仪器和设备 pc机、wave软件、e51/s仿真器+pod8x5x仿真头、mult_51c实验板、仿真器专用电源等。四、实验说明i2c总线为二线制串行扩展总线。它采用总线寻址方式查询外围接口器件,不需要片选地址,接口电路简单,可以在总线上挂接多个外围接口器件。i2c总线的硬件接口电路虽然简单,但由于要将按字节(byte)传送数据改变为按位(bit) 传送数据,因此,编程的工作量会增加许多。at24c02是带i2c总线接口的e2prom存储器,具有掉电记忆功能,可像普通ram一样用程序改写。at24c02的容量为256b,有a2,a1,a0三位地址,其寻址字节为1010a2a1a0r/w。五、实验电路图六、参考程序 sclequp1.5 sdaequp1.6 org 0000hmain: movr0, #00h movr1, #55h lcallwr_data lcallrd_data movr0, #01h movr1, #0aah lcallwr_data lcallrd_dataajmpmainwr_data: lcallbstart mova, #0a0h lcallwbyte mova, r0 lcallwbyte mova, r1 lcallwbyte lcallbstop retrd_data: lcallbstart mova, #0a0h lcallwbyte mova, r0 lcallwbyte lcalldelay lcallbstart mova, #0a1h lcallwbyte lcallbstop retdelay: nop nop retbstart: clrscl lcalldelay setbsda lcalldelay setbscl lcalldelay clrsda lcalldelay clrscl retbstop: clrscl lcall delay clrsda lcalldelay setbscl lcalldelay setbsda lcalldelay clrscl lcalldelay retwbyte: movr3, #8wby0: clrscl rlca movsda, c setbscl djnzr3, wby0 clrscl lcalldelay setbscl lcalldelay clrscl lcalldelay retrbyte: lcalldelay movr3, #8rby0: clrscl lcalldelay setbscl lcalldelay movc, sda rlca djnzr3, rby0 clrscl lcalldelay setbsda lcalldelay setbscl lcalldelay ret end硬件实验五 串行a/d转换器tlc549实验一、实验目的1. 学习串行a/d转换器tlc549的转换原理。2. 学习串行a/d转换器tlc549的使用方法。3. 学习串行a/d转换器tlc549转换子程序的编写方法。二、实验内容温度传感器和电阻分压后的电压经tlc549转换为数字量,编程变换为十进制数,并利用查表法转换为对应的温度值,送入disp3和disp4两个内部ram单元中。三、实验仪器和设备 pc机、wave软件、e51/s仿真器+pod8x5x仿真头、mult_51c实验板、仿真器专用电源等。 四、实验说明 tlc549是以8位开关电容逐次逼近式a/d转换器为基础而构造的cmos型a/d转换器。它设计成能通过三态数据输出与微处理器或外围设备串行接口。tlc549仅用输入/输出时钟和芯片选择输入作数据控制,接口简单,使用方便。五、实验电路图五、参考程序 doutequp1.1 cioequp1.0 csequp1.2 disp1equ30h disp2equ31h disp3equ32h disp4equ33h tempequ35h org0000hwait: lcalltrans movb, #10 divab movdisp3, a movdisp4, b ajmpwaittrans: lcalladca movb, a movtemp, #0 mova, #0 loop0: movdptr, #tab1 movca, a+dptr subba, b jncget_temp inctemp mova, temp ajmploop0get_temp: mova, temp ret adca: movr3, #0fh setbcs nop clrcs clrcio nop nop nop nop nop nop nop nop nop nop nop lcallreada setbcs nop retreada: movr4, #08hreda1: movc, dout rlca nop nop setbcio nop nop nop nop nop nop nop nop clrcio nop nop nop nop nop nop nop djnzr4, reda1 nop nop nop nop setbcs rettab1: db 32,34,35,36,38,39,41,43,44,46 ;090c db 48,49,51,53,55,57,59,61,63,65 ;10190c db 67,69,71,73,75,77,80,82,84,86 ;20290cend 硬件实验六 综合实验-e2prom存储、a/d转换、温度显示控制一、实验目的在学习了串行e2prom芯片at24c02、串行a/d转换芯片tlc549、8d锁存器74573、led数码显示器及按键处理等工作原理和应用方法的基础上,将各种器件结合在一起,培养学生综合应用各种程序的能力。二、实验内容 温度传感器和电阻

温馨提示

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

评论

0/150

提交评论