首页 单片机技术应用第七章

单片机技术应用第七章

举报
开通vip

单片机技术应用第七章单片机技术应用第7章单片机实验与实训第7章单片机实验与实训 7.1存储器块清零 7.2二进制到BCD码转换 7.3二进制到ASCII码转换 7.4内存块移动 7.5数据排序 7.6P1口输入与输出 7.7计数器实验 7.8外部中断实验 7.98255A输入与输出 7.10D/A转换实验 7.11A/D转换实验7.1.1实验要求指定存储器中某数据块的起始地址和长度,编程将其内容清零。7.1.2实验目的1.存储器的读写方法;2.存储器的块操作方法。7.1存储器块清零7.1存储器块清零通过实验了解单片机存储器的读写方法、...

单片机技术应用第七章
单片机技术应用第7章单片机实验与实训第7章单片机实验与实训 7.1存储器块清零 7.2二进制到BCD码转换 7.3二进制到ASCII码转换 7.4内存块移动 7.5数据排序 7.6P1口输入与输出 7.7计数器实验 7.8外部中断实验 7.98255A输入与输出 7.10D/A转换实验 7.11A/D转换实验7.1.1实验要求指定存储器中某数据块的起始地址和长度,编程将其内容清零。7.1.2实验目的1.存储器的读写方法;2.存储器的块操作方法。7.1存储器块清零7.1存储器块清零通过实验了解单片机存储器的读写方法、单片机的编程以及调试方法。如何将存储器指定的数据块内容置成某固定值(如FFH)?请修改参考程序后完成。7.1.3实验说明7.1.4程序框图7.1存储器块清零参考程序: ORG0000H MOVR0,#30H MOVR7,#20H CLRALOOP:MOV@R0,A INCR0 DJNZR7,LOOP AJMP$ END7.1存储器块清零7.2二进制到BCD码转换7.2.1实验要求将给定的二进制数,转换成BCD码(二-十进制编码)。7.2.2实验目的1.简单的数值转换算法;2.数值的各种表达方法。7.2.3实验说明计算机中的数值有多种表达方式,掌握各种数制之间的转换是一种基本功,可以进一步尝试将BCD转换成二进制码。7.2.4程序框图7.2二进制到BCD码转换参考程序:;将BCD码存入RE开始的叁个单元 REEQU20H ORG0000H LJMPSTARTBinToBCD:MOVB,#100 DIVABMOVRE,A MOVA,BMOVB,#107.2二进制到BCD码转换 DIVAB MOVRE+1,A MOVRE+2,B RETSTART:MOVSP,#40H MOVA,#123CALLBinToBCD AJMP$END7.2二进制到BCD码转换7.3二进制到ASCII码转换7.2.1实验要求将给定的BCD数,转换成ASCII值。7.2.2实验目的1.BCD值和ASCII值的区别;2.BCD值转换成ASCII值;3.查表进行数值转换及快速计算。7.2.3实验说明了解BCD码和ASCII码的区别,进一步了解数值的各种表达方式,利用查表功能进行数值的快速转换。7.3.4程序框图7.3二进制到ASCII码转换参考程序:;将ASCII码存入RE开始的二个单元 REEQU20H ORG0000H LJMPSTARTTAB:DB'0123456789ABCDEF'BinToHex:MOVDPTR,#TAB MOVB,A SWAPAANLA,#0FHMOVCA,@A+DPTR7.3二进制到ASCII码转换 MOVRE,A MOVA,B ANLA,#0FHMOVCA,@A+DPTRMOVRE+1,ARETSRART:MOVSP,#40HMOVA,#1AHCALLBinToHexAJMP$END7.3二进制到ASCII码转换7.4内存块移动7.4.1实验要求 将指定起始地址和长度的存储块移动到指定位置。7.4.2实验目的 1.内存块的移动方法; 2.加深对存储器读写的认识。7.4.3实验说明块移动是常用的操作之一,多用于大量数据的复制和图象操作。本例给出起始地址,用地址加一的方法移动块,请思考给出块结束地址,用地址减一的方法移动块的方法。7.4.4程序框图7.4内存块移动参考程序:;将长度为256字节的内存块从3000H移动到4000H。MOVR0,#30HMOVR1,#00HMOVR2,#40HMOVR3,#00HMOVR7,#0LOOP:MOVDPH,R0MOVDPL,R1MOVXA,@DPTRMOVDPH,R27.4内存块移动MOVDPL,R3MOVX@DPTR,ACJNER1,#0FFH,K1INCR0K1:INCR1CJNER3,#0FFH,K2INCR2K2:INCR3DJNZR7,LOOPAJMP$END7.4内存块移动7.5数据排序7.5.1实验要求 给出一组随机数,将其排序成为有序数列。7.5.2实验目的 1.数据排序的简单算法; 2.数列的有序和无序概念。7.5.3实验说明本程序采用“冒泡排序”法,将一个数与后面的数进行比较,如果比后面的数大则交换,将所有的数比较完毕最大的数将出现在数列的最后面。同样进行下一轮比较,找出第二大数据,直到全部数据有序。7.5.4程序框图参考程序: SIZEEQU10;数据个数 ARRAYEQU50H;数据起始地址 CHAEQU0;交换标志KK:MOVR0,#ARRAY MOVR7,#SIZE-1 CLRCHAK2:MOVA,@R0 MOVR2,A INCR0 MOVB,@R07.5数据排序 CJNEA,B,K1 SJMPNEXTK1:JCNEXT SETBCHA XCHA,@R0 DECR0 XCHA,@R0; INCR0Next:DJNZR7,K2 JBCHA,KK AJMP$ END7.5数据排序7.6P1端口输入与输出7.6.1实验要求1.P1端口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮;2.P1.0和P1.1做输入口接两个拨码开关,P1.2和P1.3做输出口,接两个发光二极管,编写程序读取开关状态并在发光二极管上显示出来。7.6.2实验目的1.学习P1端口的使用方法;2.学习延时子程序的编写和使用。7.6.3实验说明1.P1端口做输入口使用时,必须先置“1”;7.6.3实验说明2.延时子程序的设计。Delay:MOVR6,#0HMOVR7,#0HDelayLoop:DJNZR6,DelayLoopDJNZR7,DelayLoopRET在6MHz晶振时,一个机器周期时间长度为2us,该段程序执行时间为:(256×255+2)×2×12÷6≈261ms7.6P1端口输入与输出7.6.4实验电路及连线7.6P1端口输入与输出7.6.5程序框图7.6P1端口输入与输出参考程序:;(A)程序Loop:MOVA,#01H MOVR2,#8Output:MOVP1,ARLACALLDelayDJNZR2,OutputAJMPLoopDelay:MOVR6,#07.6P1端口输入与输出 MOVR7,#0DelayLoop: DJNZR6,DelayLoop DJNZR7,DelayLoop RET END ;(B)程序 KeyLeftEQUP1.0 KeyRightEQUP1.1 LedLeftEQUP1.2LedRightEQUP1.37.6P1端口输入与输出 SETBKeyLeft SETBKeyRightLoop:MOVC,KeyLeft MOVLedLeft,C MOVC,KeyRight MOVLedright,C AJMPLoop END7.6P1端口输入与输出7.7计数器实验7.7.1实验要求单片机内部定时器/计数器T0以工作方式1对P3.4(T0)引脚计数,通过P1端口驱动发光二极管将计数结果以二进制数形式显示出来。7.7.2实验目的学习定时器/计数器使用方法。7.7.3实验说明外部事件计数脉冲由P3.4引入定时器T0,单片机在每个机器周期采样一次输入波形,单片机至少需要两个机器周期才能检测一次跳变,所以要求被采样电平至少维持一个完整的机器周期,同时也要求输入波形的频率不能超过机器周期频率。7.7.4实验电路及连线7.7计数器实验7.7.5程序框图7.7计数器实验参考程序: MOVTMOD,#00000101B;方式1,记数器 MOVTH0,#0 MOVTL0,#0 SETBTR0;开始记数Loop:MOVP1,TL0;将记数结果送P1口 LJMPLoop END7.7计数器实验7.8外部中断实验7.8.1实验要求 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。7.8.2实验目的 1.外部中断技术的基本使用方法; 2.中断处理程序的编程方法。7.8.3实验说明 1.在程序中注意保护现场和恢复现场的操作; 2.必须在中断程序中设定是否允许中断重入,即设置EX0位。7.8.3实验说明中断程序使用中断,一般进入时应保护PSW、ACC以及中断程序使用的寄存器。另外中断程序中涉及到现场操作时应关中断,引脚接单次脉冲发生器,P1.0接发光二极管显示信号反转现象。7.8外部中断实验7.8.4实验电路及连线7.8外部中断实验7.8.5程序框图7.8外部中断实验参考程序: LEDEQUP1.0 LEDBufEQU0 LJMPStart ORG0003HInterrupt0: PUSHPSW CPLLEDBuf MOVC,LEDBuf MOVLED,CPOPPSW7.8外部中断实验 RETIStart: CLRLEDBuf CLRLED MOVTCON,#01H MOVIE,#81H LJMP$ END7.8外部中断实验7.98255A输入与输出7.9.1实验要求 利用8255A可编程芯片实现输入/输出,PA口输出到发光二极管,PB口输入开关量。7.9.2实验目的 1.8255A芯片结构及编程方法; 2.8255A输入/输出的实验方法。7.9.3实验说明可编程通用接口芯片8255A有三个八位的并行I/O端口,有三种工作方式,本例采用方式0(PA输出,PC口输出,PB口输入)。7.9.4实验电路及连线7.98255A输入与输出7.98255A输入与输出7.9.5程序框图参考程序: ORG0000H MOVA,#MODE MOVDPTR,#CAddr MOVX@DPTR,A JMPEX_BEX_A: MOVA,#80H MOVXDPTR,#PortA MOVB,#8H7.98255A输入与输出OutA: MOVX@DPTR,A RRA MOVR5,#1 CALLdelay DJNZB,OutAEX_B: MOVDPTR,#PortB MOVXA,@DPTR MOVDPTR,#PortA MOVX@DPTR,A7.98255A输入与输出 MOVR5,#2 CALLdelay LJMP0delay: MOVR7,#0KK:DJNZR7,KK DJNZR6,KKDJNZR5,KK RET END7.98255A输入与输出7.10D/A转换实验7.10.1实验要求 用DAC0832可编程接口芯片,编制程序产生锯齿波、三角波和正弦波,用示波器观看。7.10.2实验目的 1.D/A转换的基本原理; 2.D/A转换芯片0832的性能及编程方法; 3.单片机应用系统扩展D/A转换的基本方法。7.10.3实验说明 1.D/A转换完成数字量到模拟量的变换,根据实验要求,产生三个波形的 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 ,查表实现波形显示; 2.产生锯齿波和三角波的表格由数字量的增减控制,三角波要分段产生,产生正弦波的方法是完成正弦数字量表,查表转换成十六进制数;3.D/A转换器输入数据与输出电压的关系可查阅有关资料。7.10D/A转换实验7.10.4程序框图7.10D/A转换实验参考程序: MOVDPTR,#CS MOVA,#0 MOVX@DPTR,A MOVA,#40H MOVX@DPTR,A MOVA,#80H MOVX@DPTR,A MOVA,#0C0H7.10D/A转换实验 MOVX@DPTR,A MOVA,#0FFH MOVX@DPTR,A LJMP$ END7.10D/A转换实验7.11A/D转换实验7.11.1实验要求 利用可编程ADC0809芯片转换器,编程将模拟量转换成二进制数字量,用8255A的PA口输出到发光二极管显示。7.11.2实验目的 1.A/D芯片ADC0809与单片机的接口方法; 2.A/D芯片ADC0809转换性能及编程; 3.单片机进行数据采集的过程。7.11.3实验说明A/D转换器分为三类,一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近A/D转换器,精度、速度和价格适中;三是并行A/D转换器,速度快,价格高。ADC0809属于第二类,是八位A/D转换器,每采集一次一般需100us。本例采用延时查询方式读入A/D转换结果,在中断方式下A/D转换结束后自动产生EOC信号,与CPU的外部中断相接,通过中断方式读回A/D结果。7.11A/D转换实验7.11.4程序框图7.11A/D转换实验参考程序: ORG0000H MOVDPTR,#CAddr MOVA,#MODE MOVX@DPTR,A MOVDPTR,#CS0809 MOVA,#0 MOVX@DPTR,A MOVA,#40H DJNZACC,$7.11A/D转换实验 MOVXA,@DPTR MOVR7,#100dly: MOVDPTR,#PortA MOVX@DPTR,A DJNZR7,dly LJMP0 END7.11A/D转换实验
本文档为【单片机技术应用第七章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
孟子73代
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-06-30
浏览量:7