单片机原理与接口实验指导书(2009年9月版)_第1页
单片机原理与接口实验指导书(2009年9月版)_第2页
单片机原理与接口实验指导书(2009年9月版)_第3页
单片机原理与接口实验指导书(2009年9月版)_第4页
单片机原理与接口实验指导书(2009年9月版)_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

广东建设职业技术学院应用电子技术专业《单片机原理与接口技术》课程实验指导书201-201学年 第1学期余金栋 编制班 级:姓名:学 号:总 评:实验守则1、接线、拔线必须在断电的情况下进行,以保证安全。1/462、做好预习,及时完成实验报告。实验成绩作为平时成绩的重要部分。3、不迟到、早退,不旷课。4、做完实验,断电关箱。做好清理。目录Ⅰ工具软件使用1、超想HK3000单片机实验箱工具软件 HK-51使用简述2、KeiluVision2单片机开发集成工具使用简述3、PROTEUS微控制器及电子电路仿真软件使用简述4、单片机控制应用实例----广告流水灯应用、供水自动控制系统Ⅱ程序设计部分专题一 数制转换与算术运算实验1二进制转换为BCD码十进制实验2算术运算----双字节数加、减运算专题二位操作、堆栈操作、外部RAM访问、查表程序实验3位操作实验4堆栈操作实验5读取片内RAM数据传送至片外RAM实验6查表程序专题三 基本结构与程序组织实验7分支结构----比较数值大小实验8循环结构----多字节BCD十进制数加法运算实验9伪指令与子程序调用专题四综合程序设计实验10综合程序设计Ⅲ硬件资源应用部分实验一 I/O口应用—按键控制P1口亮灯实验实验二八段数码管显示实验实验三 INTO中断实验实验四定时/计数器应用--脉冲计数实验实验五定时器/计数器运用—电子琴实验实验六 8255扩展I/O口----交通灯控制实验实验七静态数据存储器扩展实验实验八A/D转换实验实验九D/A0832转换实验实验十传感器应用--力测量实验实验十一 直流电机转速测量与控制实验实验十二 步进电机控制实验Ⅰ工具软件使用一、超想HK3000单片机实验箱及调试软件 HK-51使用简述2/461、安装超想HK3000高级仿真系统:第一步:安装 Superimage-3000Win98,插入安装光盘按照提示执行完成 HK-51仿真开发系统的软件安装,完成后在桌面有 图标。b5E2RGbCAP第二步:将PC与仿真系统进行联机:首先,将仿真器扁电缆插入51CPU板的CON,将仿真器串行通信电缆插入PC的串口,开启开发系统电源。其次,双击快捷图标启动HK-51仿真开发系统软件,当出现“选择通讯端口”窗口时根据连线选择串口号并确定,如果通信线没有正确连接,则在启动过程中将提示“仿真器没有正确连接”等信息,此时检查电缆并与实验管理员联系。待正常启动系统进入界面后,点击菜单“设置”-〉“仿真模式”打开设置窗口,在CPU栏选择8031,用户RAM、系统ROM的设置默认,然后确认完成设置。此时注意观察,如果看到设置进度条达到 100%说明仿真系统联机完成,能够正常工作。p1EanqFDPw2、仿真调试第一步:点击菜单FILE-〉新建源程序文件,输入程序并保存文件,文件类型默认为ASM文件<若用C语言编程则保存为.C文件)。注意文件名和保存路径避免使用汉字字符。 DXDiTa9E3d第二步:点击菜单工程-〉新建工程,指定保存路径,工程工程文件扩展名为PRJ,然后在工程工程列表中增加源程序文件,选出已经编辑并存储的源文件并确定。RTCrpUDGiT第三步:编译-〉工程编译、连接。此时注意观察,如果编译成功显示0ERRORS、0WARNINGS,否则应排除错误;5PCzVD7HxA第四步:编译-〉装载文件,若装载成功则显示OK,此时程序已装载至仿真器;第五步:调试-〉连续运行,或设置断点、单步运行,同时观察实验箱反映。二、KeiluVision2 单片机开发集成工具使用简述1、Keil软件使用步骤:Keil---New---Project--- 输入工程文件名,默认后缀 ---选器件---ATMEL---89C51---确定---YES---YES---VIEW PROJECTWINDOWS---TARGET---SOURCE---GROUP---STARTUP.A51---NEW---FILE---编辑源代码,存盘为汇编源程序文件,设定文件名,后缀选 ASM文件---右击SOURCEGROUP---ADD添加文件---选中汇编源程序文件---编译文件---修改无误---DEBUG---STEP或断点、全速运行jLBHrnAILg3/462、数据查看查看片内RAM单元用I:0xRAM地址;查看片外 RAM用X:0xRAM片外地址;查看变量用 F2---变量名xHAQX74J0X3、复位用Ctrl+F5或STOPDEBUG三、PROTEUS微控制器及电子电路仿真软件使用简述1、启动程序:开始菜单-> 所有程序->Proteus6Professional->ISIS6Professional LDAYtRyKfE或者,在桌面双击下面图标2、建立仿真电路模型点击PickDevices按钮,<该按钮位于工作区左边的面板中,就是那个P按钮),这时会打开标题为PickDevices的对话框。Zzz6ZB2Ltk4/46在Category列表框中(位于左边>选中元件类别,在在Results中找到所需要的元件拖放到编辑区,然后点击鼠标右键选中元件,单击左键打开属性对话框设置属性,最后对元件连线形成仿真电路模型。dvzfvkwMI13、运行仿真模型,观察电路原理图上各点电位、电流变化情况。四、单片机测控应用开发仿真系统应用实例5/46实例一、广告流水灯仿真应用1、建立测控应用工程,步骤如下: <1)运行KEILUvision2 软件,点击PROJECT菜单,新建PROJECT并指定设计工程名称<扩展名默认为UV2)和保存路径,保存,然后选定 DEVICE<初学者选ATMEL系列的器件AT89C51)并确定,对于提示“是否拷贝标准 8051启动代码到工程文件夹并添加文件到工程”点击是; <2)点击菜单 FILE,点击NEW,在弹出的源程序编辑窗口中输入程序代码<参考代码本实例结尾),点击菜单FILE,点击SAVE,输入源程序文件名LIUSHUIDENG.ASM,点击保存。右键点击 PROJIECTWORKSPACE区中的SOURCEGROUP1,点击 ADDFILETOGROUP“SOURCEGROUP1”,在弹出对话窗中指定文件类型为 ASM文件<如下图示),然后选中LIUSHUIDENG.ASM,点击ADD,点击CLOSE。rqyn14ZNXI双击PROJIECTWORKSPACE区中的LIUSHUIDENG.ASM,点击工具栏中6/46TRANSLATECURRENTFILE按钮 ,对源程序进行汇编和纠错,看到提示信息 EmxvxOtOco即为通过。<3)点击工具栏中目标属性设置按钮 ,在弹出属性设置对话窗中点击 TARGET选项卡,输入系统晶镇频率,然后点击OUTPUT选项卡,点击 按钮,指定工程可执行 文 件 输 出 路 径 然 后 点 击 OK , 在复选框中打勾,点击确定。<4)点击工具栏中 BUILDTARGET按钮 ,创建工程可执行文件,正确提示信息如下: SixE2yXPq5至此,可在指定的文件夹中看到 即为目标可执行文件。2、在PROTEUS仿真软件中建立仿真评估模型,如下图7/46+5vU1R1R2R3R419XTAL1P0.0/AD03938P0.1/AD1R5R6R7R81111P0.2/AD2371836XTAL2P0.3/AD3351111P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD7D13D14D15D16D9D11D12P2.0/A82122P2.1/A9LED-REDLED-REDLED-REDLED-REDLED-REDLED-REDLED-REDLED-RED23P2.2/A102924PSENP2.3/A113025D10ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A151P1.0/T2P3.0/RXD10211P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C52双击仿真模型中的控制器,在中选出目标可执行文件,点击 按钮即可执行仿真,观察目标工程是否达到预期功能指标再作相应的调整。6ewMyirQFL3、参考程序8/46实例二、供水自动控制系统仿真1、PROTEUS软件建立供水自动控制系统模型,如图示:2、打开 Keil 软件,建立新 PROJECT,编辑源程序文件并添加至TARGET-SOUURCE,编译生成可执行的 HEX文件,如图示:kavU42VRUs3、在控制模型中打开单片机属性对话框,在 PROGRAMFILE中输入9/46新生成的HEX文件及其路径,如图示: y6v3ALoS894、运行仿真模型:按下水位开关,观察指示灯及水泵运行状态。Ⅱ程序设计部分专题一指令运用----数制转换与算术运算实验1二进制转换为BCD码十进制1、实验目的:<1)、学习单片机开发工具平台下的编辑、编译、排错、调试方法<2)、学习修改和观察变量的方法;综合使用单步、断点调试的方法。<3)、验证数据传送指令,加深对非压缩型 BCD码十进制数和进制转换的理解。2、实验内容:编写一个将单字节二进制数转换为 BCD码十进制数的程序,并调试运行。3、实验步骤:将一个字节二进制数初始化到片内RAM的40H单元,然后将其转换为两位对应的非压缩型的BCD码,存入片内RAM的50H、51H单元。M2ub6vSTnP4、发挥与思考题在P1口接两个7段式BCD数码管,将转换结果送数码管显示。请回答问题:若40H单元初始化的二进制数是 63H,实验结果怎样?若40H单元10/46初始化为65H,实验结果怎样?若结果不正确请说明原因。0YujCfmUCw5、参考例程:<1)、《单片机原理及接口技术案例教程》 P77例4-16<2)、《单片机原理及接口技术案例教程》 P71例4-10完整程序<3)、实验参考程序及思考题ORG0000H MOVB,#10MOV30H,#0FFH DIV ABMOVA,30H SWAP AMOVB,#100 ADDA,BDIV AB MOV31H,AMOV32H,A HERE:SJMPHEREMOVA,B END回答问题:1)执行程序后,<31H)=,<32H)=。2)程序功能是什么?3)指令DIVAB中被除数、商、余数分别在何处?<2)、BCD码十进制转换为十六进制ORG0000H ADDA,BMOVA,#98 MOV41H,AMOVB,#16 HERE:SJMPHEREDIV AB ENDSWAP A回答问题:1)执行程序后,<41H)=2)程序功能是什么?3)指令DIVAB中被除数、商、余数分别在何处?实验2算术运算---多字节BCD十进制数加法1、实验目的<1)、学习单片机开发工具平台下的编辑、编译、排错、调试方法<2)、学习程序调试过程中修改和观察变量的方法;综合使用单步、断点调试的方法。<3)、验证数据传送指令、十进制调整指令,加深对 BCD码十进制概念的理解。<4)、巩固带进位加法指令和多字节加法运算的实现方法。2、实验步骤及回答问题<1)、建立工程编辑源程序:11/46ORG0000H DAALJMPSTART MOV@R1,AORG0030H DECR0START:MOV37H,#98H DECR1MOV36H,#76H DJNZR2,LOOPMOV3FH,#54H CLRAMOV3EH,#32H RLCAMOVR2,#02H MOV2FH,AMOVR0,#37H MOVDPTR,#001AHMOVR1,#3FH MOVX@DPTR,ALOOP:MOVA,@R0 SJMP$ADDCA,@R1 END<2)、汇编源程序,然后用F11功能键单步执行,打开菜单VIEW—MEMORYWINDOW,在ADDRESS栏输入I:0x3F命令查看内部RAM地址3FH单元内的数值,用类似方法查看3EH、2FH单元内数值;在ADDRESS栏输入X:0x1A命令查看外部RAM地址1AH单元内的数值。则<3FH)=,<3EH)=,<2FH)=,<1AH)=。eUts8ZQVRd<3)、在PROTEUS软件中进行仿真,改进源程序实现在数码管上显示和。<4)、请画出程序流程图。<5)编写两个无符号双字节的 16进制数相加:89FEH+78EDH=?并将结果存入30H,31H,32H中。sQsAEJkW5T12/46专题二位操作、堆栈操作、外部RAM访问、查表程序实验3位操作ORG0000H CPLCSETBP1.0 ORLC,P1.0CLRP1.1 MOVP1.3,CMOVC,P1.0 SJMP$ANLC,P1.1 ENDMOVP1.2,C(1>、执行程序后,查变量P1.0=,P1.1=,P1.2=,P1.3=,C=(2>、写出P1.2及P1.3的函数式(3>、运行程序并填空:ORG0000HMOV30H,#17HMOV31H,#38HSETBCMOVR0,#30H(R0>=MOVA,@R0(A>=INCR0ANLA,@R0(A>=,(R0>=,(31H>=ORLA,@R0(A>=,(R0>=,(31H>=RLCA(A>=XRLA,30H(A>=RRA(A>=INCR0(R0>=MOV@R0,A(A>=,(R0>=,(32H>=SJMP$END实验4堆栈操作MOVSP,#60HPUSH20HMOVA,#20HPOPACCMOV20H,#78HPOP20HPUSHACC(1>、运行程序后,<SP)=,<ACC)=,<20H)=。(2>、简述堆栈操作的规律。13/46实验5读取片内RAM数据传送至片外RAMORG0000H MOVR0,#20HMOVA,#00H MOVR6,#10HMOVR7,#10H LOOP:MOVA,@R0MOVR0,#20H MOVX@DPTR,ALOP1:MOV@R0,A INCR0INCR0 INCDPTRINCA DJNZR6,LOOPDJNZR7,LOP1 SJMP$MOVDPTR,#0100H END回答问题:<1)画出流程图。<2)运行程序后,<0100H)=,<0101H)=,<010FH)=,<A)=,<DPTR)=,<R6)=。实验6查表程序在片内RAM的20H单元有一位数字<取值范围为0-9),编写程序求其ASCII码,并存入片内RAM的21H单元,试运行程序回答问题:GMsIasNXkAORG0000H SJMP $AJMPMAIN ORG 2000HORG0030H TABLE:DBMAIN:MOV DPTR,#2000H 30H,31H,32,33H,34H,35H,3MOV A,20H 6H,37H,38H,39HMOVCA,@A+DPTR ENDMOV 21H,A问题:<1)请说明指令MOVCA,@A+DPTR的寻址方式?<2)0---9的ASCII码表30H---39H存放的存储位置?14/46专题三 程序基本结构与组织实验7分支结构----十六进制数转换成ASCII码HASC:MOVA,R0 JC DIGADJANL A,#0FH ADDA,#07HPUSHACC DIGADJ:ADDA,#30HCLR C MOVR2,ASUBBA,#0AH RETPOP ACC问题:<1)上述程序作为子程序被调用时参数是如何传递的?<2)画出程序流程图,并结合<R0)=E和<R0)=8两种情况说明程序执行的指令有何不同。实验8循环结构----清零程序ORG0000HINCDPTR;调整指针MOVR0,#00HINCR0;字节数加1MOVCJNEDPTR,#2000H;空间首地址送DPTR0,#00H,LOOP;连续清256个字R节LOOP:MOVA,#00HLOOP1:SJMPLOOP1MOVX@DPTR,A;清零END问题:<1)、运行程序后,外RAM<2000H)至<20FFH)单元内容为多少?<2)、程序功能是什么?15/46实验9伪指令与子程序调用ORG0000HMOVA,P1AJMPMAINSWAPAORG0003HMOVP1,AAJMPALARMACALLDELAYRETIORG0200HMAIN:SETBIT0DELAY:MOVR6,#64HSETBEX0LOOP1:MOVR7,#0F8HSETBEANOPHERE:SJMPHERELOOP2:DJNZR7,LOOP2DJNZR6,LOOP1ORG0210HRETALARM:MOVA,#0FFHMOVP1,AEND上述程序硬件电路如下图所示,回答问题:<1)请说明程序中几个 ORG伪指令分别起什么作用?程序有几个组成部分?<2)请画出程序流程图?<3)请说明程序功能。16/46U4:A324049U5:A324049U1U4:B17P3.7/RDP1.7854167P3.6/WRP1.6156P3.5/T1P1.54049145P3.4/T0P1.4134P3.3/INT1P1.3123P3.2/INT0P1.2U4:C112P3.1/TXDP1.1101P3.0/RXDP1.07628P2.7/A1527P2.6/A1440492631P2.5/A13EA2530P2.4/A12ALE2429P2.3/A11PSEN23P2.2/A1022P2.1/A9R121P2.0/A832P0.7/AD7RST910K33P0.6/AD634P0.5/AD5R235P0.4/AD43618P0.3/AD3XTAL237P0.2/AD210K38P0.1/AD1R33919P0.0/AD0XTAL1AT89C5110KR410KU2:EU3:A23101114574164012专题四 综合程序设计实验10综合程序设计参照本指导书广告流水灯应用部分电路,编写彩灯控制程序,让想发光,显示的样式尽可能丰富多彩。 TIrRGchYzgⅢ硬件资源应用部分实验一 I/O口应用—按键控制P1口亮灯实验1.实验目的:(1>掌握P1口作为I/O口时的使用方法。(2>理解读引脚和读锁存器的区别。实验内容:用P1.3脚的状态来控制P1.2的LED亮灭。

D5LED-BIBYD6LED-BIBYD7LED-BIBYD8LED-BIBY8个LED按照自己的设17/46实验器材:<1)超想-3000TB综合实验仪 1 台<2)超想3000仿真器 1 台<3)连线 若干 根<4)计算机 1 台4.实验原理:由8051组成的单片机系统通常情况下, P0口分时复用作为地址、数据总线, P2口提供A15-A8即高8位地址,P3口用作第二功能,只有P1口通常用作I/0口。P1口是8位准双向口,它的每一位都可独立地定义为输入或输出,因此既可作为 8位的并行I/O口,也可作为8位的输入输出端。当工作在输入方式时,对应位的锁存器必须先置1,才能正确地读到引脚上的信号,否则,执行读引脚指令时,若对应位的锁存器的值为0,读的结果永远为0。每个I/0端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以I/0端口为源操作数的指令.7EqZcWLZNX5.实验步骤:(1>编写程序实现当P1.3为低电平时,发光管亮; P1.3为高电平时,发光管灭。(2> 修改程序在执行读P1.3之前,先执行CLRP1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。 lzq7IGf02EORG0000H CLRP1.2 。熄灭。 CLRP1.3 DD2: CALLDELYDD1: JBP1.3,DD SJMPDD118/46DD: SETBP1.2 。点亮 DELY2:DJNZR7,DELY2SJMPDD2 DJNZR6,DELY1DELY:MOVR6,#00H 。延时 RETDELY1:MOVR7,#00H END实验二 八段数码管显示实验1.实验目的:(1>了解数码管动态显示的原理。(2>了解74LS164扩展端口的方法。2.实验要求:利用实验仪提供的显示电路 ,动态显示一行数据.3.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)计算机1台4.实验说明:(1>本实验仪提供了8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有 6位,用动态方式显示74LS164是串行输入并行输出转换电路,串行输入的数据位由 8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到 74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 zvpgeqJ1hk本实验仪中数据位输出地址为 0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。NrpoJac3v1本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。OUTBITequ0e101h。位控制口INequ0e103h。键盘读入口CLK164equ0e102h。LEDBufequ60h。显示缓冲段控制口(接164时钟位>Numequ70h。显示的数据DAT164equ0e102h。DelayTequ75h。段控制口(接164数据位>org0000h19/46ljmpStartmovdptr,#CLK164LEDMAP:。八段管显示码orla,#02hdb3fh,06h,5bh,4fh,66h,6dh,7dh,movx@dptr,a07hanla,#0fDhdb7fh,6fh,77h,7ch,39h,5eh,79h,movx@dptr,a71hmova,r3Delay:。延时子程序djnzB,DLPmovr7,#0movdptr,#OUTBITDelayLoop:mova,r2djnzr7,DelayLoopmovx@dptr,a。djnzr6,DelayLoop显示一位八段管retmovr6,#1DisplayLED:callDelaymovr0,#LEDBufmova,r2。movr1,#6。共6个八段管显示下一位movr2,#00100000b。rra从左边开始显示movr2,aLoop:incr0movdptr,#OUTBITdjnzr1,Loopmova,#00hmovdptr,#OUTBITmovx@dptr,a。mova,#0关所有八段管movx@dptr,a。mova,@r0关所有八段管movB,#8。送164retDLP:Start:movdptr,#0e100hrlcamova,#03hmovr3,amovx@dptr,amovacc.0,cmovsp,#40hANLA,#0FDHmovNum,#0movdptr,#DAT164MLoop:movx@dptr,aincNum20/46mova,Num显示在码填入显示缓冲movb,aincr0movr0,#LEDBufincbFillBuf:cjner0,#LEDBuf+6,FillBufmova,bmovDelayT,#30anla,#0fhDispAgain:movdptr,#LEDMapcallDisplayLED。显示movca,@a+dptr。djnzDelayT,DispAgain数字转换成显示码ljmpMLoopmov@r0,a。END实验三 INTO中断实验1.实验目的:掌握MCS-51单片机中断原理以及编程使用方法;理解下降沿中断和低电平中断的区别。2.实验内容:编写主程序,读取K0状态,当其与地端闭合时 <P1.3为低电平)初始化为下降沿中断,反之,初始化为低电平中断,且发光二极管灭;编写中断服务程序,使图中的发光管闪烁5次,间隔250ms,即中断服务程序的执行时间为2.5秒,退出中断程序时,使发光管灭。1nowfTG4KI3.实验器材:<1)超想-3000TB综合实验仪 1台<2)超想3000仿真器1台21/46<3)连线 若干根<4)计算机 1台4.实验原理:MCS-51单片机有5个中断源,其中两个是由 /INT0、/INT1引脚输入的外部中断源;另外三个是内部中断源即由 T0、T1的溢出引起中断和串行口发送完一个字节或接收到一个字节数据引起中断。触发外部中断有两种方式,即下降沿引起中断或低电平引起中断。当编程 TCON中的ITi为1时,则引起触发的方式为边沿触发方式,反之为低电平触发方式。每个中断源的中断请求能否得到响应要受两级“开关”的控制,即一个总“开关”EA和五个分“开关”ES、ET1、EX1、ETO和EX0的控制,只有当EA为1,且对应的分“开关”也为1时,相应中断源的中断请求才能被响应。5个中断源可编程为两个优先级,同一优级内以/INT0的优先级最高,然后是TO中断、/INT1中断、T1中断和串行口中断。5个中断源对应有个固定的中断服务程序入口地址。CPU在每个机器周期顺序采样每个中断源,如查询到某个中断源的中断标志为1,中断系统通过硬件自动将相应的中断矢量装入PC,进入中断服务程序。fjnFLDa5Zo5.实验步骤:<1)把仿真器和超想-3000TB综合实验仪连接好,编写程序,并运行。<2)首先将K0与地端相连,按按钮TR3,使图中点变成高电平,等2秒后再按按钮TR3,使图中点为低电平,重复以上操作,观察发光管的闪烁情况。tfnNhnE6e5(3>然后将K0与VCC端相连,重新运行程序,重复上述的动作,观察发光管闪烁情况。两次的观察结果是否一样,为什么? HbmVN777sL<4)用万用表测量图中点的电平,按下 TR3,然后松开,观察该点电平的变化。ORG0000H MAIN: JBSJMPMAIN P1.3,MAIN1 。判断是电平触发还是ORG 沿触发0003H。外中断0入口地址 CLRTCON.0LJMPINTER0 SJMPMAIN222/46MAIN1:SETB LCALLDELYTCON.0 。中断初始化 SETBEAMAIN2:ORLIE,#81H RETIORLIP,#02H DELY: MOVR6,#00H。延时SJMPMAIN DELY1:MOVR7,#00HINTER0: CLR DELY2:DJNZR7,DELY2EA。中断处理程序 DJNZR6,DELY1SETBP1.2 RETLCALLDELY ENDCLRP1.2实验四定时/计数器应用--脉冲计数实验1.实验目的:<1)熟悉8031定时/计数器的记数功能,<2)掌握初始化编程方法<3)掌握中断程序的调试方法2.实验内容:定时/记数器0对外部输入的脉冲进行计数,并送显示器显示。3.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线若干根<4)计算机1台4.实验原理:MCS-51有两个16位的定时/计数器:T0和T1。计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已 .当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加 1,由于计数脉冲的频率是固定的 <即每个脉冲为123/46个机器周期的时间),故可通过设定计数值来实现定时功能。当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0的电平变化时,计数器的值加1,从而实现计数功能。可以通过编程来指定时计数器的功能,以及它的工作方式。读取计数器的当前值时,应读3次。这样可以避免在第一次读完后,第二次读之前,由于低位溢出向高位进位时的错误。 V7l4jRB8Hs5.实验步骤:用连线把“总线插孔”的P3.4孔连“脉冲源”的“”孔 ,执行程序,按动TR3带锁按钮,观察数码管上计数脉冲的个数。 83lcPA59W96.思考问题:把P3.4孔分别与“脉冲源”的2MHZ、1MHZ、0.5MHZ孔相连时,显示值反而比连0.25MHZ孔更慢,为什么?mZkklkzaaP当fosc=6MHZ时,能够计数的脉冲信号最高频率为多少 ?。对定时器0外部输入的脉冲信号进SETBTR0行计数且显示LOOP0:MOVR2,TH0OUTBITequ0e101hMOVR3,TL0CLK164equ0e102h。LCALLLOOP1段控制口(接164时钟位>MOVR0,#40HDAT164equ0e102h。MOVA,R6段控制口(接164数据位>LCALLPTDSLEDBufequ40hMOVA,R5INequ0e103hLCALLPTDSORG0000hMOVA,R4MOVSP,#60HLCALLPTDSMOVLCALLDISPLAYDPTR,#0e100H。8155初始化SJMPLOOP0MOVA,#03HLOOP1:CLRA。二转十子程序MOVX@DPTR,AMOVR4,AMOVMOVR5,ATMOD,#05H。定时器初始化MOVR6,AMOVTH0,#00HMOVR7,#10HMOVTL0,#00HLOOP2:CLRC24/46MOVA,R3djnzr7,DelayLoopRLCAdjnzr6,DelayLoopMOVR3,AretMOVA,R2DISPLAY:setb0d3hRLCAmovr0,#LEDBufMOVR2,Amovr1,#6。共6个八段管MOVA,R6movr2,#00000001b。ADDCA,R6从左边开始显示DAALoop:MOVR6,Amovdptr,#OUTBITMOVA,R5mova,#00hADDCA,R5movx@dptr,a。DAA关所有八段管MOVR5,Amova,@r0MOVA,R4movdptr,#LEDmapADDCA,R4movca,@a+dptrDAAmovB,#8。送164MOVR4,ADLP:DJNZR7,LOOP2rlcaRETmovr3,aPTDS:MOVR1,A。拆字子程序movacc.0,cACALLPTDS1anla,#0fdhMOVA,R1movdptr,#DAT164SWAPAmovx@dptr,aPTDS1:ANLA,#0FHmovdptr,#CLK164MOV@R0,Aorla,#02hINCR0movx@dptr,aRETanla,#0fDhDelay:movx@dptr,amovr7,#0。延时子程序mova,r3DelayLoop:djnzB,DLP25/46movdptr,#OUTBITmovdptr,#OUTBITmova,r2mova,#0movx@dptr,a。movx@dptr,a。显示一位八段管关所有八段管movr6,#1clr0d3hcallDelayretmova,r2。显示下一位LEDMAP:。rla八段管显示码mov r2,a db3fh,06h,5bh,4fh,66h,6dh,7dh,07hinc r0 db7fh,6fh,77h,7ch,39h,5eh,79h,71hdjnzr1,Loop END实验五定时器/计数器运用—电子琴实验实验目的:了解运用定时器定时产生不同音调声音的编程方法。实验内容:利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。用P3.0口发出音频脉冲,驱动喇叭.。AVktR43bpw3.实验原理:我们知道,声音是由振动产生的,每个音符都对应了一个频率如下表所示。利用定时/计数器T0工作在16位定时方式,通过改变 TH0和TL0的值,就可以产生不同频率的脉冲,例如想产生523Hz<音符1的发音)的脉冲,其周期为1/523=1912μS,因此只要让T0定时956μS后,使P3.0取反,就可以在P3.0引脚上输出一个频率为523Hz的脉冲。ORjBnOwcEd4.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线若干根<4)计算机1台5.实验步骤:把P3.0用连线连至“音响与合成”框 LM386的Vin1插孔上。26/46OUTBITequ0e101hanla,#0fhINequ0e103hretPulseequ0KeyTable:PulseCNTequ50hdb00h,01h,04h,07hToneHighequ51hdb0fh,02h,05h,08hToneLowequ52hdb0eh,03h,06h,09hSpeakerequ0B0Hdb0dh,0ch,0bh,0ahljmpStartdb10H,10H,10H,10H,10org000bhdb10H,10H,10H,10H,10HTimer0Int:GetKey:pushPSWmovdptr,#OUTBITclrTR0movP2,dphmovTH0,ToneHigh。movr0,#Low(IN>movTL0,ToneLowMOVR0,#03H。setbTR0movr1,#00100000bmovc,Pulsemovr2,#6movSpeaker,cKLoop:cplPulsemova,r1decPulseCNTcplapopPSWmovx@dptr,areticplaToneTable:rradw64578,64686,64778,movr1,a64821,64898,64968,65029movxa,@r0TestKey:cplamovdptr,#OUTBITanla,#0fhmova,#0jnzGoon1movx@dptr,adjnzr2,KLoopmovdptr,#INmovr2,#0ffhmovxa,@dptrsjmpExitcplaGoon1:27/46movr1,ajzMLoopmova,r2callGetKeydecamovb,arlajzMLoop。=0,<1rla。anla,#!7movr2,a。r2=(r2-1>*4ANLA,#0F8Hmova,r1jnzMLoop。>7movr1,#4decbLoopC:mova,brrcarla。a=a*2jcExitmovb,aincr2movdptr,#ToneTabledjnzr1,LoopCmovca,@a+dptrExit:movToneHigh,amovdptr,#OUTBITmovTH0,aclramovx@dptr,amova,bmova,r2incamovdptr,#KeyTablemovca,@a+dptrmovca,@a+dptrmovToneLow,aretmovTL0,aStart:setbTR0movsp,#70hmovPulseCNT,#100movdptr,#0e100hWait:mova,#03hmova,PulseCNTmovx@dptr,ajnzWaitmovTMOD,#01。TimerclrTR0movIE,#82h。EA=1,IT0=1ljmpMLoopMLoop:endcallTestKey28/46实验六8255扩展I/O口---- 交通灯控制实验1.实验目的:<1)掌握8255的工作原理以及编程方法,了解软件与硬件的调试技术。2.实验内容:编写并调试出一个实验程序,其功能为用 8255模拟控制交通灯运行情况。3.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线若干根<4)8255芯片1片4.实验原理:8255有三个8位的并行口,端口既可以编程为普通 I/O口,也可以编程为选通I/O口和双向传输口。8255为总线兼容型,可以与 8051的总线直接接口。其中,口地址取决于片选CS和A1、A0。本实验中8255编程为PB口、PC口、PA口均输出,根据 8255状态控制字选择方法。8255控制字应为80H。2MiJTy0dTT实验步骤:<1)设定仿真器工作模式为程序存储器在仿真器上,数据存储器指向用户板。使用实验仪锁紧插座.<2)硬件测试:<3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。运行程序,直至达到本实验的要求为止。8255控制交通灯实验 ORG0000H29/46MOVSP,#60HDJNZR2,LOOP0MOVDPTR,#0A003H;SJMPLOOP18155初始化CODE0:DBMOVA,#80H07fH,060H,060H,07eH,003H,063H,03MOVX@DPTR,Aeh,000H。"5";字代码gIiSpiue7ALOOP1:MOVR2,#08H;循环次CODE1:数DBMOVDPTR,#CODE001H,02H,04H,08H,10H,20H,40H,80H。;字代码首地址送R6、R7。;位代码MOVR6,DPHDISP:MOVR7,DPL。;串转并子程序MOVDPTR,#CODE1MOVA,#00H。;位码首地址送R3、R4MOVCA,@A+DPTRMOVR4,DPHDISP1:movB,#8。MOVR3,DPL送164LOOP0:CLRADLP:MOVDPH,R6rlcaMOVDPL,R7movr3,aMOVCA,@A+DPTRmovacc.0,c。;取字形代码movdptr,#0A002HINCDPTRmovx@dptr,aMOVR6,DPHmovdptr,#0A001HMOVR7,DPLMOVa,#01h。;字代码地址加1后movx@dptr,a暂存MOVA,#0HMOVDPTR,#0A000Hmovx@dptr,a。;字形代码送8255的PA口mova,r3MOVX@DPTR,AdjnzB,DLPMOVDPH,R4ret。;送位选DELY:SETBRS0MOVDPL,R3。;延时子程序PUSHDPHMOVR5,#3PUSHDPLDELY1:MOVR6,#10HCALLDISPDELY2:MOVR7,#10HCALLDELYDELY3:DJNZR7,DELY3POPDPLDJNZR6,DELY2POPDPHDJNZR5,DELY1INCDPTR。;位码地址加CLRRS01RETMOVR4,DPHENDMOVR3,DPL实验七 静态数据存储器扩展实验1.实验目的:掌握MCS-51单片机系统扩展数据存储器的方法;掌握 SRAM6264与8031的接口30/46方法2.实验内容:编写程序在6264的1000H-1000AH单元中分别写入01H、02H、0AH,这10个数作为一延时500ms子程序的入口参数以实现0.5秒到5秒钟的不同时间延时,结果通过P1.2上连接的二极管的亮、灭状态显示出来。uEh0U1Yfmh3.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线若干根<4)6264芯片1片IAg9qLsgBX<5)万用表1块4.实验原理:8031单片机内部具有128字节的RAM,它们可以作为寄存器、堆栈以及RAM使用,是十分珍贵的资源,但在WwghWvVhPE许多实际的应用系统中,仅芯片内部的RAM往往不够,这时就必须外扩数据存储器,最多不超过64KB。由于动态存储器外围电路复杂,在单片机系统中扩展的RAM一般为静态RAM、EEPROM或FLASHMEMORYasfpsfpi4k.实验步骤:<1)使用超想-3000TB综合实验仪上锁紧插座,把6264芯片插入锁紧插座,按图搭建好硬件电路。<2)把超想3000仿真器与超想-3000TB综合实验仪连接好,设置仿真模式程序存储器留在仿真器,数据存ooeyYZTjj1储器指向用户空间。<3)硬件诊断:<4)编写程序并调试,观察结果。ORG0000H 值MOVR0,#0AH 。向 MOVDPTR,#1000HRAM6264的1000H-1000AH送01-0AH MOVA,#01H31/46MAIN0:MOVX@DPTR,AACALLDELAYINCDPTRINCDPTRINCADJNZR0,MAIN1DJNZR0,MAIN0SJMPMAIN2MAIN2:MOVDPTR,#1000H。把DELAY:1000H-100AH值读出,作为延时的基MOVR7,#200。值。BkeGuInkxI500us*200=100msMOVR0,#0AHDLY0:MAIN1:MOVXA,@DPTRMOVR6,#250。2us*250=500usMOVB,#10DJNZR6,$MULABDJNZR7,DLY0MOVB,ADJNZACC,DELAY。CLRP1.2200ms*ACCACALLDELAYRETCPLP1.2ENDMOVA,B实验八A/D转换实验1.实验目的:掌握A/D转换与单片机接口的方法;了解 A/D芯片0809转换性能及编程方法;2.实验内容:利用综合实验仪上的 0809做A/D转换器,综合实验仪上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过 8155键显区数码管显示出来。PgdO0sRlMo实验器材:<1)超想-3000TB综合实验仪 1台<2)超想3000仿真器1台<3)连线 若干根<4)计算机 1台4.实验原理:A/D转换器的功能主要是将输入的模拟信号转换成数字信号,如电压、电流、温度测量等都属于这种转换。本实验中采用的转换器为 ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。其工作过程如下:首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和3cdXwckm15ADDC上的信号锁存到地址寄存器内 ,用以选择模拟量输入通道; START信32/46号的下降沿启动A/D转换器开始工作;当转换结束时,AD0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。CLOCK为转换时钟输入端,频率为 100KHz-1.2MHz,推荐值为640KHz。h8c52WOngM5.实验步骤:(1>设定仿真模式为程序空间在仿真器上,数据空间在用户板上<2)硬件诊断:调整综合实验仪上模拟信号发生器的电位器,使输入到此 AD0809的IN0上电压为一定值。v4bdyGious<3)编写程序,并编译通过 。本程序使用查询的方式读取转换结果。在读取转换结果的指令后设置断点,运行程序,在断点处检查并读出 A/D转换结果,数据是否与Vin0相对应。修改程序中错误,使显示值随 Vin0变化而变化。J0bm4qMpJ96.实验思考:(1>试编写循环采集8路模拟量输入A/D转换程序;(2>以十进制方式显示。OUTBITequ0e101h。mov43h,#09h位控制口CLK164equ0e102h。mov44h,#00h段控制口(接164时钟位>XVauA9grYPmov45h,#00hDAT164equ0e102h。LOOP1:MOVR7,#40段控制口(接164数据位>VI:lcallDISPLAYINequ0e103h。键盘读入口DJNZR7,VILEDBufequ40h。显示缓冲mova,#00horg0000hmovmovsp,#60hdptr,#0a000h。0809AD的通道开始转movdptr,#0e100h。8155初始化换吗?mova,#03hmovx@dptr,amovx@dptr,amovr7,#0fhmovloop2:djnzr7,loop240h,#00h。显示缓冲器初始化movxa,@dptrmov41h,#08hmovr0,#45h。拆字mov42h,#00hlcallptds33/46sjmploop1movacc.0,cptds:movr1,aanla,#0fdhlcallptds1movdptr,#DAT164mova,r1movx@dptr,aswapamovdptr,#CLK164ptds1:anla,#0fhorla,#02hmov@r0,amovx@dptr,adecr0anla,#0fDhretmovx@dptr,aDelay:mova,r3movr7,#0。延时子程序djnzB,DLPDelayLoop:movdptr,#OUTBITdjnzr7,DelayLoopmova,r2djnzr6,DelayLoopmovx@dptr,a。ret显示一位八段管DISPLAY:setb0d3hmovr6,#1movr0,#LEDBufcallDelaymovr1,#6。共6个八段管mova,r2。显示下一位movr2,#00100000b。rra从左边开始显示movr2,aLoop:incr0movdptr,#OUTBITdjnzr1,Loopmova,#00hmovdptr,#OUTBITmovx@dptr,a。关所有八段管mova,#0mova,@r0movx@dptr,amovdptr,#LEDmapclr0d3h。关所有八段管movca,@a+dptrretmovB,#8。送164LEDMAP:。DLP:八段管显示码rlcadb3fh,06h,5bh,4fh,66h,6dh,7dh,movr3,a07h34/46db 7fh,6fh,77h,7ch,39h,5eh, END79h,71h实验九 D/A0832 转换实验1.实验目的:了解D/A转换与单片机的接口方法;了解 D/A转换芯片DA0832的性能及编程方法。2.实验内容:利用0832输出一个从0V开始逐渐升至5V再降至0V的三角波电压,数码管显示数字量值。3.实验器材:<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线 若干根<4)计算机 1台4.实验原理:D/A转换器的功能主要是将输入的数字量转换成模拟量输出,在语音合成等方面得到了广泛的应用。本实验中采用的转换器为 DAC0832,该芯片为电流输出型8位D/A转换器,输入设有两级缓冲锁存器,因此可同时输出多路模拟量。本实验中采用单级缓冲连接方式,用 0832来产生三角波,具体线路如上图所示。Vref引脚的电压极性和大小决定了输出电压的极性与幅度,超想 -3000TB综合实验仪上的DA0832的第8引脚<Vref)的电压已接为-5V,所以输出电压值的幅度为 0-5V。bR9C6TJscw5.实验步骤:<1)设定仿真模式为程序空间在仿真器上,数据空间在用户板上<2)硬件诊断:<3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。6.实验思考:修改程序,使能产生锯齿波。OUTBITequ0e101h。段控制口(接164时钟位>pN9LBDdtrd位控制口CLK164equ0e102h。DAT164equ0e102h。35/46段控制口(接164数据位>mova,r5INequ0e103h。键盘读入口movx@dptr,aLEDBufequ40h。显示缓冲movr0,#45horg0000hacallptdsmovsp,#60hmovr6,#15hmovdptr,#0e100h。8155初始化dir11:acalldisplaymova,#03hdjnzr6,dir11movx@dptr,a。acalldelay1mov40h,#00h。显示缓冲区置值cjner5,#00h,loop3mov41h,#08hsjmploop1mov42h,#03hDelay:mov43h,#02hmovr7,#00。延时子程序loop1:movr5,#00hDelayLoop:loop2:movdptr,#0B000h。0832DAdjnzr7,DelayLoop从小到大转换djnzr6,DelayLoopmova,r5retmovx@dptr,aDISPLAY:setb0d3hmovmovr0,#LEDBuf45h,a。拆字后送显示缓冲区movr1,#6。共6个八段管movr0,#45hmovr2,#00100000b。acallptds从左边开始显示movr6,#15hLoop:dir10:acallmovdptr,#OUTBITdisplay。调用显示子程序mova,#00hdjnzr6,dir10movx@dptr,a。关所有八段管。lcalldelay1mova,@r0incr5movdptr,#LEDmapcjner5,#00h,loop2movca,@a+dptrloop3:movmovB,#8。送164dptr,#0B000h。0832DA从大到小转换DLP:decr5rlca36/46movr3,adjnzr1,Loopmovacc.0,cmovdptr,#OUTBITanla,#0fdhmova,#0movdptr,#DAT164movx@dptr,a。关所有八段管movx@dptr,aclr0d3hmovdptr,#CLK164retorla,#03hLEDMAP:。movx@dptr,a八段管显示码anla,#0fDhdb3fh,06h,5bh,4fh,66h,6dh,7dh,07hmovx@dptr,adb7fh,6fh,77h,7ch,39h,5eh,79h,71hmova,r3ptds:movr1,adjnzB,DLPacallptds1movdptr,#OUTBITmova,r1mova,r2swapamovx@dptr,a。ptds1:anla,#0fh显示一位八段管mov@r0,amovr6,#02decr0callDelayretmova,r2。显示下一位Delay1:movr7,#03hrrasjmpDelayLoopmovr2,aENDincr0实验十传感器应用--力测量实验实验目的:了解力-电信号转换的基本工作原理,掌握 ADC0809的使用方法,提高数据处理程序的设计和调试能力。实验内容:编写并调试出一个实验程序,其功能将一力施加于压力传感器金属弹性元件表面,超想-3000TB综合实验仪上数码管显示力的数据,并随力的大小而变化。DJ8T7nHuGT3.实验器材:37/46<1)超想-3000TB综合实验仪1台<2)超想3000仿真器1台<3)连线若干根<4)计算机1台4.工作原理:将金属丝电阻应变片粘附在弹簧片的表面,弹簧片在力的作用下发生形变,而电阻应变片也随着弹簧片一起变形,这将导至电阻应变片电阻的变化。弹簧片受的力越大,形变也越大,电阻应变片电阻的变化也越大,测量出电阻应变片电阻的变化,就可以计算出弹簧片受力的大小。 QF81D7bvUA5.实验步骤:<1)设定工作模式为程序空间在仿真器上,数据空间在用户板上。<2)“译码器”的YC2孔连数模转换AD0809的CS4孔,“脉冲源”的0.5MHZ孔连AD0809的CLOCK孔,IN0孔<AD0809的0通道)连AN0孔<压力传感器的输出孔)。4B7a9QFw9h<3)硬件调试:在弹性元件表面施加一力。OUTBITequ0e101h。位控制口缓冲器初始化CLK164equ0e102h。mov41h,#11h段控制口(接164时钟位>mov42h,#11hDAT164equ0e102h。mov43h,#11h段控制口(接164数据位>mov44h,#00hINequ0e103h。mov45h,#00h键盘读入口LOOP1:movr7,#40LEDBufequ40h。vip:lcallDISPLAY显示缓冲djnzr7,viporg0000hmova,#00hmovsp,#60hmovdptr,#0a000h。movdptr,#0e100h。81550809AD的通道开始转换吗?初始化movx@dptr,amova,#03hmovr7,#02hmovx@dptr,aloop2:djnzr7,loop2mov40h,#10h。显示movxa,@dptr38/46movr0,#45h。movdptr,#LEDmap拆字movca,@a+dptrlcallptdsmovB,#8。sjmploop1送164ptds:movr1,aDLP:lcallptds1rlcamova,r1movr3,aswapamovacc.0,cptds1:anla,#0fhanla,#0fdhmov@r0,amovdptr,#DAT164decr0movx@dptr,aretmovdptr,#CLK164Delay:orla,#02hmovr7,#0。movx@dptr,a延时子程序anla,#0fDhDelayLoop:movx@dptr,adjnzr7,DelayLoopmova,r3djnzr6,DelayLoopdjnzB,DLPretmovdptr,#OUTBITDISPLAY:setb0d3hmova,r2movr0,#LEDBufmovx@dptr,a。movr1,#6。显示一位八段管共6个八段管movr6,#1movr2,#00100000b。callDelay从左边开始显示mova,r2。Loop:显示下一位movdptr,#OUTBITrramova,#00hmovr2,amovx@dptr,a。incr0关所有八段管djnzr1,Loopmova,@r0movdptr,#OUTBIT39/46mov a,#0movx@dptr,aclr0d3h有八段管retLEDMAP:

。 关所。

db 3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb 7fh,6fh,77h,7ch,39h,5eh,79h,71hdb 0B8H,40HEND八段管显示码实验十一直流电机转速测量与控制实验实验目的:了解霍尔器件工作原理及转速测量与控制的基本原理、基本方法,掌握DAC0832电路的接口技术和应用方法,提高实时控制系统的设计和调试能力。ix6iFA8xoX实验内容:设计并调试一个程序其功能为测量电机的转速,并在超想-3000TB综合实验仪显示器上显示出来,采用比例调节器方法,使电机转速稳定在某一设定值。此设定值可由超想-3000TB综合实验仪上的键盘输入。wt6qbkCyDE3.工作原理:我们根据霍尔效应原理,将一块永久磁钢固定在电机转轴上的转盘边沿,转盘随测轴旋转,磁钢也将跟着同步旋转,在转盘附近安装一个霍尔器件3020,转盘随轴旋转时,受磁钢所产生的磁场的影响,霍尔器件输出脉冲信号,其频率和转速成正比,测出脉冲的周期或频率即可计算出转速。 Kp5zH46zRk4.实验器材:<1)超想-3000TB综合实验仪<2)超想3000仿真器 1

1

台台<3)连线

若干根<4)计算机

1

台5.实验步骤:<1)设定仿真器仿真模式为程序空间在仿真器上,数据空间在用户板上。把数模转换DAC0832输出AoutYl4HdOAA61孔连直流电机Dcin孔,数模转换DAC0832的CS3孔连“译码器”的YC2孔,CKM孔<霍尔器件输出孔)连ch4PJx4BlIP3.2孔。<2)硬件诊断:<3)编程并编译。注:本实验电机转速范围一般应为

35-50

转/分。6.实验思考:试编写一转速测量软件,测试电机转动周期

T,然后计算瞬时转速,并用

PID调节使转速恒定在 25转/分。DAOTEQU50H。中断次数计数单元SCNTEQU51H。为送到0832的值CKCHEQU52H。存放转速

CKCNEQU53HSETPEQU54HTEMPEQU55H40/46csequ90htimesequ46htemp1equ47hOUTBITequ0e101h。位控制口CLK164equ0e102h。段控制口(接164时钟位>DAT164equ0e102h。段控制口(接164数据位>INequ0e103h。键盘读入口LEDBuf equ 39h 。显示缓冲ORG0000HSTRT: LJMPMAINORG0003H 。LJMPPINT0ORG000BH 。LJMPPTF0ORG0030H 。PTF0:MOVTH0,#0D0HPUSHACCPUSHPSWSETBPSW.3inc timesmova,timescjnea,#40,ptfjmov times,#0mova,ckcnmovtemp1,amovckcn,#0subba,setpjnc tt3mov a,scntadd a,#2mov scnt,aljmp tt4tt3: mov a,scntsubba,#2mov scnt,att4:mova,scntmovb,#100divab

mov3eh,amova,bmovb,#10divabmov3dh,amova,bmov3ch,amova,temp1。speedmovb,#10divabmov3ah,amova,bmov39h,aPTFJ:NOPPOPPSWPOPACCRETIMAIN:movsp,#60hmovdptr,#0e100h。8155初始化mova,#03hmovx@dptr,aMOVR0,#39HMOVR7,#06HMLP0:MOV@R0,#10HINCR0DJNZR7,MLP0LCALLDIR。调显示MOVDAOT,#40HMOVSCNT,#01HMOVCKCH,#00HMOVCKCN,#00HclrEANOPSETBEX1NOPCLRIT1NOPMLP1:callTestKey。有键入?jzMLp1。无键入,继续显示callGetKey。读入键码ANLA,#0FHCJNEA,#0AH,tt41/46JNCMLP1LJMPML00P4tt:MOV3EH,ALCALLDIRPINT0:INCCKCNMLP2:callTestKey。有键入?PIPI:jzMLP2。无键入,RETI继续显示TestKey:callGetKey。读入键movdptr,#OUTBIT码mova,#0ANLA,#0FHmovx@dptr,a。输出线置CJNEA,#0AH,tt1为0JNCMLP2movdptr,#INtt1:MOV3DH,Amovxa,@dptr。读入键状MOVA,3EH态MOVB,#0AHcplaMULABanla,#0fh。高四位不ADDA,3DH用MOVSETP,Aretmovdptr,#0a000hKeyTable:。movscnt,#7fh数字键码定义mova,scntdb00h,01h,04h,07hMOVX@DPTR,Adb0fh,02h,05h,08hMOVA,#1db0eh,03h,06h,09hORLA,TMODdb0dh,0ch,0bh,0ahMOVTMOD,Adb10H,10H,10H,10H,10HMOVTH0,#0D0Hdb10H,10H,10H,10H,10HM

温馨提示

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

最新文档

评论

0/150

提交评论