单片机实验实训指导书II

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一单片机最小系统设计一、实验目的:1、学习单片机时钟电路设计;2、学习单片机复位电路设计;3、学习单片机I/O口输出控制;4、学习keil编译软件的应用5、学习Proteus仿真软件的应用6、学习延时子程序设计。二、实验任务1、设计单片机最小系统;2、利用单片机最小系统控制发光二极管秒周期闪烁。三、实验仪器PC一台、keil编译软件、Proteus仿真软件四、实验说明单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.1、系统时钟电路单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图2所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF左右的瓷片电容。图1系统时钟电路2、复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。复位电路结构如图3所示。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R2与VCC接通来实现。图2复位电路3、延时子程序设计单片机延时程序可以采用延时子程序和定时中断完成,定时中断延时不会占用CPU时间,将在后续章节介绍,延时子程序主要采用CPU运行指令占用时间而得到,通常采用循环指令编写,本例中单片机晶振为12MHz,因此机器周期为1µs,0.05s程序如下:DLYHS:MOVR5,#1;置外循环次数DLY0:MOVR6,#100;置中循环次数DLY1:MOVR7,#250;置内循环次数DLY2:DJNZR7,DLY2;2机周×250×1µs=0.5msDJNZR6,DLY1;0.5ms×100=0.05sDJNZR5,DLY0;0.05ms×1=0.05sRET五、实验说明1、根据单片机最小系统定义,设计单片机最小系统设计,并设计单片机控制发光二极管电路;2、编程并调试,实现对发光二极管循环闪烁;3、编写500ms延时子程序,并于主程序中调用,完成对时间周期的控制。六、实验原理图:图3LED控制电路仿真运行七、实验步骤1、开机启动Proteus仿真软件,并画出对应仿真原理图2、启动Keil软件,建立一个工程文件,添加编写好的程序,编译文件,软编译有错,直接进行修改,直至汇编成功3、编译无错后,进入调试运行环境。4、以单步运行,跟踪运行,断点运行,全速运行等形式调试程序。5、观察程序运行情况。八、程序流程开始程序初始化点亮LED延时0.5s熄灭LED延时0.5s图4LED闪烁控制流程图实验二内存数据复制程序设计一、实验目的1、掌握单片机最小系统设计2、掌握子程序的编写及调用3、掌握单片机源程序的编辑、汇编、调试及运行过程4、掌握循环分支程序的编写及调试方法二、实验任务应用AT89C51单片机芯片,设计单片机最小系统,并在此基础上编写两程序实现如下功能:1.设计程序分别将0~31数据写入单片机RAM地址30h~4fh内,然后将30h~4fh内数据复制到50h~6fh内;2.将存放在ROM中以TABLE为标号地址起始的连续16个数据依次复制到RAM70H~7FH单元。三、实验仪器PC一台、keil编译软件、Proteus仿真软件四、实验说明从广义上讲,80C51内RAM(128B)和特殊功能寄存器(128B)均属于片内RAM空间,为了加以区别,内RAM通常指00H~7FH的低128空间,它又可以分为3个物理空间:工作寄存器区、位寻址区和用户数据区,具体内存分配如图2-1所示。1、工作寄存器区地址从00H~1FH共32个字节属工作寄存器区。工作寄存器(R0、R1R7)是80C51的重要寄存器,指令系统中有专用于工作寄存器操作的指令,读写速度比一般内RAM要快,指令字节比一般直接寻址指令要短,另外工作寄存器还具有间接功能,能给编程和应用带来方便。工作寄存器分为4个区,0区、1区、2区、3区。每个区有8个寄存器:R0~R7,寄存器名称相同。但当前工作寄存器区只能有一个,至于哪一个工作寄存器区处于当前工作状态则有程序状态字PSW中的D4(RS1)、D3(RS0)位决定。若用户程序不需要4个工作寄存器区,则不用的工作寄存器区单元可作为一般的RAM使用。2、位寻址区从20H~2FH共16字节属位寻址区。16字节(Byte,缩写为大写B)每B有8位(bit,缩写为小写b),共128位,每一位均有一个位地址(如图1-4)。在MCS—51单片机机中,RAM,ROM均以字节为单位,每个字节有8位,每一位可容纳一位二进制数的1或0.但是一般RAM只有字节地址,操作时只能8位整体操作,不能按位单独操作。而位寻址区的16个字节,非但有字节地址,而且字节中的每一位有位地址,可位寻址、位操作。所谓位寻址位操作是指按位地址对该位进行置1、清0、求反或判转等,位寻址区得主要用途是存放各种标志为信息和为数据。需要注意的是,位地址00H~7FH和内存RAM字节地址00H~7FH编址相同,但位操作指令和字节操作指令不同,因此在指令执行时,CPU不会搞错,而初学者却容易搞错,应用中应特别注意。3、数据缓冲区内RAM中30H~7FH为地址的字节区域,共80个RAM单元为数据缓冲区,属于一般内RAM,用于存放各种数据和中间结果以及作为堆栈使用,起到数据缓冲的作用。4、内部程序存储器程序是控制计算机动作的一系列命令,单片机只认识由“0”和“1”代码构成的机器指令。如用助记符编写的命令MOVA,#20H,换成机器认识的代码74H、20H:(写成二进制就是01110100B和00100000B)。在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH的64KB范围。51子系列单片机内部有4K字节ROM(EPROM、EEPROM)(0000H~0FFFH),1000H~FFFFH是外部扩展程序存储地址空间。而52子系列内部有8KBROM(EPROM、EEPROM)程序存储器,同样可以扩展到64KB,在64KB程序存储器中,有6个地址单元用作6种中断的入口地址,如表2-2。58595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F2AH2BH2CH2DH2EH2FH字节地址展开对应位地址~30H7FH位寻址区,可字节寻址数据缓冲区000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565720H21H22H23H24H25H26H27H28H29H工作寄存器0区工作寄存器1区工作寄存器2区工作寄存器3区、(RS1=0RS0=0)、(RS1=0RS0=1)、(RS1=1RS0=0)(、)RS1=1RS0=1~00H07H~08H0FH~10H17H~18H1FH工作寄存器区2-1内部数据存储器低128单元分配图中断源入口地址外部中断0定时器0溢出中断外部中断1定时器1溢出中断串行口中断0003H000BH0013H001BH0023H表2-2中断源入口地址五、实验步骤6、开机启动Proteus仿真软件,并画出对应仿真原理图7、启动Keil软件,建立一个工程文件,添加编写好的程序,编译文件,软编译有错,直接进行修改,直至汇编成功8、编译无错后,进入调试运行环境。9、以单步运行,跟踪运行,断点运行,全速运行等形式调试程序。10、观察程序运行情况。六、实验原理图图2-2单片机最小系统电路七、实验参考流程图开始循环体1初始化通过间接寻址向内存单元写数修改写入数据修改间址判断循环次数是否够循环体2初始化从一内存单元读出数据并写入另一内存单元修改读出和写入内存单元间址比较写入数据内存单元地址和70H是否相等结束NNYY图2-3内存单元数据写入和拷贝流程图八、实验参考程序实验三简易交通灯设计一、实验目的1、掌握单片机输出口控制2、掌握单片机控制发光二极管方法3、掌握单片机控制数码管方法二、实验任务设计交通灯仿真系统,控制如下:交通灯一般分为红、黄、绿三种颜色,红灯作为禁止通行的信号标志,如图3-1所示,本实验中禁行的时间红灯设为25秒;绿灯作为允许通行的信号标志,黄灯作为通行与禁行切换时的间隔信号标志,黄灯闪亮时间为6秒,绿灯亮时间为19秒。三、实验仪器PC一台、keil编译软件、Proteus仿真软件四、实验说明1、发光二极管控制原理LED是一种固体光源如图2-6,当它两端加上正向电压,半导体中的少数载流子和多数载流子发生复合,放出的过剩能量将引起光子发射。采用不同的材料,可制成不同颜色有发光二极管。发光二极管的反向击穿电压越5V。它的正向伏安特性很陡,使用时必须串联限流电阻以控制通过管子的电流。普通发光二极管的正向压降和工作电流根据二极管的大小和颜色不同而不同,一般:红绿LED正向压降为1.8~2.4V,蓝白是2.8~4.2V。3mmLED额定电流1~10mA,5mmLED额定电流5~25mA,10mmLED额定电流25~100mA。其与单片机常用控制如图2-7所示。如要LED亮,则需选择合适的电阻值,并是P1.0引脚输出低电平“0”,如要LED灭,则由P1.0输出高电平,如要LED出现闪烁效果,则需控制LED亮、灭两种状态交替出现即可,闪烁的速度,则由LED亮和灭状态各自维持时间来决定。2、数码管工作原理LED(LightEmitingDiode)是发光二极管的缩写。LED数码管里面有8只发光二极管,分别记作a、b、c、d、e、f、g、dp,其中dp为小数点,每一只发光二极管有一根电极引到外部引脚上,而另一只引脚就连接在一起,并引到外部引脚上,记作公共端(COM),如图4-5a所示,其引脚排列因不同制造厂商而有所不同。常用的LED数码管有两种,分为共阴极和共阳极。当数码管里面发光二极管的阴极接在一起作为公共端(COM)时,在正常使用时此引脚接电源负极,此数码管为共阴极数码管,如图4-5b所示,当发光二极管的阳极VCCP1.0R图3-1发光二极管单片机控制示意图接高电平时,发光二极管被点亮,从而相应数码段显示,而输入低电平的段则不能点亮。当数码管里面发光二极管的阳极接在一起作为公共端(COM)时,在正常使用时此引脚接电源正极,此数码管为共阳极数码管,如图3-2所示,当对应发光二极管阴极接低电平时,发光二极管被点亮,从而对应数码段显示,而输入高电平的段不能点亮。五、实验步骤11、开机启动Proteus仿真软件,并画出对应仿真原理图12、启动Keil软件,建立一个工程文件,添加编写好的程序,编译文件,软编译有错,直接进行修改,直至汇编成功13、编译无错后,进入调试运行环境。14、以单步运行,跟踪运行,断点运行,全速运行等形式调试程序。15、观察程序运行情况。六、参考实验原理图图3-3简易交通灯仿真运行七、参考实验流程图开始初始化四个路口红灯亮东西绿灯亮南北红灯亮19秒东西黄灯闪烁6秒南北红继续灯亮6秒东西红灯亮南北绿灯亮19秒南北黄灯闪烁6秒东西红继续灯亮6秒图3-4简易交通灯程序流程图实验四按键控制跑马灯一、实验目的1、掌握单片机I/O口输入控制方法2、掌握单片机控制LED方法3、掌握单片机独立式按键控制方法二、实验任务应用AT89C51芯片和

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功