《单片机原理与接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《单片机原理与接口技术实验报告.docx(34页珍藏版)》请在优知文库上搜索。
1、“单片机原理与接口技术”实验报告姓名:张键学号:201821010128专业班级:自动化1班实验一闪烁LED实验(2学时)一、实验目的1、学会使用Keil建立51单片机Project和编译程序;2、学会程序延时的方法;3、学会使用单片机I/O口实现输出。二、实验内容通过软件延时,控制一位LED按设定的时间间隔闪烁。三、实验过程与结果记录1、单片机开发试验仪相关部分原理图J128765432miIjRI2JR23JR31JR45JR56,JR67,JR78JRS9,GND1LE11OEVCCLEGNDrled474-jl83D12,i112力CiDB161rL由、D14154rL4一.-5CD1
2、5J143(6D16iB2T1,71CD171218CD18TLRP2010120QOQ1MQ33Q5Q6QD0D-lD2D3D4D5D6D7WCrp211101JIOGND745732、程序(自行编写,C语言与汇编均可)ORGOOOOHSTART:MOVA,#OOHMOVPO,ALCALLDELAYMOVA,#01HMOVPO,ALCALLDELAYLJMPSTARTDELAY:MOVR5,#20Dl:MOVR6,#20D2:MOVR7,#20DJNZR7,$DJNZR6,D2DJNZR5,D1RETEND四、思考题1、如何改变LED闪烁的时间间隔?答:通过改变延迟函数,即DELAY函数中赋
3、予的Ri工作寄存器区不同的立即数,即可改变LED闪烁的时间间隔;赋给Ri的值越大,即延时的时间越长,LED闪烁的时间间隔越长,相反地,赋给Ri的值越小,即延时的时间越短,LED闪烁的时间间隔越短。2、如何实现更精确的闪烁时间间隔?答:采用单片机的内部资源,即定时器来进行计时;先确定要延时的时间,根据公式计算出THl(THO)和TLl(TLO)要赋予的值,当定时器计数溢出后则会使单片机进入中断子程序,在中断子程序中执行点亮和熄灭LED灯的操作,即可实现精确的闪烁时间间隔。实验二移位LED实验(2学时)一、实验目的1、学会二进制移位操作和循环语句在单片机中的用法;2、认识CY位在汇编中如何参与移位
4、。二、实验内容1、1个LED从左到右循环依次点亮;2、1个LED左右来回循环依次点亮;3、花式流水灯,自定义样式点亮8个LED。三、实验过程与结果记录1、单片机开发试验仪相关部分原理图,同实验一。2、程序(自行编写,C语言与汇编均可)1):ORGOOOOHSTART:MOVR2,#8MOVA,#01HCLRCLOOP:MOVPO,ALCALLDELAYRLCADJNZR2,LOOPLJMPSTARTDELAY:MOVR5,#20Dl:MOVR6,#20D2:MOVR7,225DJNZR7,$DJNZR6,D2DJNZR5,D1RETEND2) :ORGOOOOHSTART:MOVR2,#7MO
5、VA,#01HCLRCLOOP:MOVPO,ALCALLDELAYRLCADJNZR2,LOOPMOVR2,#7LOOPl:MOVPO,ALCALLDELAYRRCADJNZR2,LOOPlLJMPSTARTDELAY:MOVR5,#20Dl:MOVR6,#20D2:MOVR7,#225DJNZR7,$DJNZR5,D1RETEND3) :ORGOOOOHstartmovR2,#i28MOVA,#128CLRCLOOP:MOVPO,ALCALLDELAYDECADJNZR2,LOOPMOVR2,#7LOOPl:MOVPO,ALCALLDELAYRLCADJNZR2,LOOPlLJMPSTART
6、DELAY:MOVR5,#20DkMOVR6,#20D2:MOVR7,#255DJNZR7,$DJNZR6,D2RETEND四、思考题1、比较RR,RL和RRC,RLC指令的异同。答:RRRL分别是累加器A循环右移和循环左移的指令,是不带进位位CY的;而RRC,RLC则分别是累加器A连同进位位循环左移指令和循环右移指令。2、LED共阳极接法与共阴极接法,输出I/O口时有什么不同?答:当LED采用共阳极接法时,I/O口输出必须是0,即低电平信号才可点亮;而采用共阴极接法时,I/O口输出必须是1,即高电平信号才可点亮。实验三七段数码管实验(2学时)一、实验目的1、学习七段数码管静态显示阿拉伯数字;
7、2、学习查表指令的使用。二、实验内容采用静态显示的方法,编程实现单个七段数码管循环显示09,主程序中的循环语句反复将09的段码送至PO口,使数字09循环显示。三、实验过程与结果记录1、单片机开发试验仪相关部分原理图,其中七段数码管采用共阳极接法。VCCJP3DSlAMBERCA41T21 45 3-62 15RPlOIKRPlIlK77T772、程序(自行编写,C语言与汇编均可)ORGOOOOHmain:MOVDPTR,#TABMOVR2,#10MOVA,#255LOOPkpushACCMOVCA,(g)A+DPTRMOVPO,APOPACCLCALLDELAYINCADJNZR2,LOOPl
8、LJMPmainDELAY:MOVR5,#100Dl:MOVR6,#20D2:MOVR7,255DJNZR7,$DJNZR6,D2DJNZR5,D1RETTAB:DBOcOh,0f9h,0a4h,ObOh,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0alh,86h,8ehEND四、思考题1、数码管静态显示与动态显示有何异同?请写出各自适用范围。答:动态显示是指几块LED分时显示,静态显示是指几块LED同时显不,动态显示,可以节省硬件资源即I/O口,但占用较多CPU时间,适用于接口数量较少或外部设备连接较多的情况;静态显示方式编程较简单,但占用I/O口线多,硬件
9、成本高,适用于显示位数比较少的场合。2、数码管的共阳极接法与共阴极接法,输出字表有什么不同?答:共阳极接法数码管:当输出为低电平(即。接地时)选中各数码段,由0到f的编码为:OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,Oxal,0x86,0x8e共阴极接法数码管:当输出为高电平(即1接+5V时)选中各数码段,由0到f的编码为:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71当共阳极数码管和共阴极数码管
10、显示相同字码时,对应的字码编码是为按9位取反的关系。实验四独立按键与外部中断实验(2学时)一、实验目的1、学习独立按键的使用;2、学习外部中断的使用。二、实验内容判断独立按键输入(8位),当按下按键后,一位数码管显示对应的键值;将独立按键连接到P3口,触发对应的外部中断源,数码管依次加一。三、实验过程与结果记录1、单片机开发试验仪相关部分原理图,其中LED与数码管部分同前述实验,按键部分原理图如下:独立按健2、程序(自行编写,C语言与汇编均可)1)独立按键:ORGOOOOHLI:JNBP2.0,L2JNBP2.1,L3JNBP2.2,L4JNBP2.3,L5JNBP2.4,L6JNBP2.5,
11、L7JNBP2.6,L8JNBP2.7,L9LJMPLIL2:MOVA,#01HLCALLDISPLAYL3:MOVA,#02HLCALLDISPLAYL4:MOVA,#03HLCALLDISPLAYL5:MOVA,#04HLCALLDISPLAYL6:MOVA,#05HLCALLDISPLAYL7:MOVA,#06HLCALLDISPLAYL8:MOVA,#07HLCALLDISPLAYL9:MOVA,#08HLCALLDISPLAYLJMPLlRETTAB:DB0C0H.0F9H,0A4H,OBOH,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,OAiH,86
12、H,8EHEND2)外部中断ORGOOOOHAJMPMAINORG0003HAJMPINTXORGOlOOHMAIN:SETBITOSETBEASETBEXOMOVA,#OOHMOVDPTR,#TABMOVR1,#OOHMOVR2,#OFHSJMPSINTX:MOVA,RlMOVCA,A+DPTRMOVPO,AINCRiJNZLOOPMOVRl,#00LOOP:NOPRETITAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0AlH,86H,8EHEND四、思考题1、为什么需要按键防抖?如何实现软件去抖?答:由于机械
13、触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,因此需要按键消抖,其主要目的是为了提高按键输入可靠性。软件消抖的方法是编制一段时间大于IOomS(但不能延迟太长时间,否则需要长按才有响应)的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。2、查询式按键与外部中断按键有何区别?答:采用中断的话,在没有键按下时,是不占用CPU资源,只有按键事件发生时,才会触发中断使程序开始执行相应的中断子程
14、序,此时才会占用CPU的资源;如采用查询方式,CPU要利用循环语句一直查询是否有按键按下,要消耗CPU资源。实验五矩阵键盘实验(2学时)一、实验目的1、学习矩阵键盘的使用;二、实验内容判断矩阵键盘按键输入(16位),当按下按键后,一位数码管显示对应的键值;三、实验过程与结果记录1、单片机开发试验仪相关部分原理图,其中LED与数码管部分同前述实验,矩阵键盘部分原理图如下:2、程序(自行编写,C语言与汇编均可)ORGOOOOHLjmpmainmain:MOVP0,#0FFHMOVP2,#0FFHKEYDOWN:MOVP2,#OFOHLCALLDELAYOMOVA,P2CJNEA,#OFoH,KEYSCANLJMPKEYDOWNKEYSCAN:MOVA,P2CJNEA,#7OH,