单片机原理实验1单片机实验讲义华南农业大学单片机原理实验2第一部分:89C51单片机实验系统介绍一、系统概述本系统采用STC89C52单片机作为核心处理模块,属于51兼容机,除了具备51单片机的系列特点之外,还具有在线编程的能力,可选择使用串口方式或者ISP下载线的方式完成目标程序的下载。本系统的I/O全部对用户开放,而且具有丰富的系统资源。系统的标准配置包含:1.STC89C52学习板一块2.USB线一条3.串口线一条4.1602LCD模块一个5.光盘一张单片机原理实验3二、系统资源系统具有如下丰富资源:1.8个发光二极管2.4位LED数码管3.蜂鸣器4.继电器与输出端子5.外部中断按键(中断实验)6.4*4矩阵键盘7.PS/2电脑键盘接口8.LCD1602接口9.LCD12864接口10.ADC模数转换(TLC0831芯片)11.DAC数模转换(DAC0832芯片)12.EEPROM实验(AT24C02)13.实时时钟实验(DS1302)14.串口实验15.温度传感器(DS18B20)16.红外遥控接收头(HS0038B)17.I2C总线接口18.步进电机接口19.USB直接供电,也可有5V稳压电源直接供电单片机原理实验420.所有I/O口外扩单片机原理实验5第二部分基本实验实验一实验环境一、实验目的:1.熟悉单片机实验使用的编译软件KeiluVision2,并掌握使用其进行程序编写的流程。2.掌握实验板所用的程序下载软件使用方法。二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理系统编程软件本系统采用可采用KeiluVision2作为程序编辑和调试软件。使用Keil软件进行单片机程序的步骤如下:1.首先安装Keil软件,然后双击,打开keil软件单片机原理实验62.点击菜单第4项Project,建立一个工程文件,按确定以后,进入芯片型号选择,这里有国外各厂家的产品及其对应型号,选择正确的型号,并按确定。这里没有STC的单片机,可以选择Atmel公司的AT89S52,之后按确定。会出现如下的提示:表示是否将初始化代码加到工程项目里,如果你使用的是C51编程,那么应该按是,如果是汇编语言则按否。3.此时,一个工程文件就建立了,但是这个工程里面不包含任何文件。可以打开菜单的第一项File\new,建立一个新的文本文件,将这个文件保存在项目文件相同的目录,根据使用汇编语言或者C语言编写后缀选择.asm单片机原理实验7或者.c.4.此后,在工程窗口中找到sourcegroup1,点击右键,选择addfilestogroup“sourcegroup1”把上面的.asm或者.c文件添加到工程项目里。之后,就可以在sourcegroup1下看到刚才添加的文件了。5.接下来双击添加的.asm或者.c文件,然后在右边的程序编辑区进行程序的编写。单片机原理实验86.编辑完成后,就可以进行调试了,点击编译进行调试,直到没有错误。7.右键点击TARGET1,选择optionsfortarget‘target1’,点击选项卡的第三项“OUTPUT”,在createexecutable中选中createHEXFile后,点击确定,之后再编译,就可以生成产生烧写文件,也就是例子中的ts.hex文件。单片机原理实验98.使用程序下载软件将上述文件ts.hex文件写入单片机(见程序下载软件)。程序下载软件本系统使用的STC89C52单片机支持串口烧写程序,首先在光盘:STC89C52/软件\程序下载软件\STC串口下载软件中找到,将其复制到硬盘上,然后双击打开,再双击,就打开了串口下载软件,下载时的具体步骤如下:1.由Keiluvision2编译软件编译产生.hex文件(见Keil软件介单片机原理实验10绍)。2.连接好开发板的电源线(可USB供电,也可5V电源供电)和串口线,先保持断电状态。3.双击打开程序下载软件,选择单片机型号为STC89C52RC(根据系统板上的单片机型号)4.选择文件,点击OpenFile/打开文件,打开目标.Hex文件单片机原理实验115.然后点击下载按钮6.等提示打开电源时,给系统上电7.出现如下画面,下载完成单片机原理实验12四、实验步骤:1.学会使用程序编译软件和下载软件。2.编写程序实现LED1到LED8全部点亮。3.延时0.2秒;4.LED1到LED8全灭;5.延时0.2秒6.跳转到第2步开始执行。7.按照实验流程的要求编写程序,并完成调试。五、实验要求:1.预习,书写实验报告(包括实验目的,原理、步骤、流程图、实验程序)。2.上机调试程序,直到完成所要求的功能并在实验报告后面书写程序调试时所遇到的问题和最终解决的办法。单片机原理实验13实验二跑马灯实验一、实验目的:1.使用P1口作为输出控制led灯实现跑马灯实验。2.学习数据输出程序的设计方法。3.学习延时程序的编写方法,并会计算延时时间。二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理1.电路原理实验的电路原理图如图2-1所示,发光二极管采用共阳极接法,阳极接上拉排阻(470欧)到VCC,并通过开关J-LED控制VCC的通断来控制发光二极管,阴极接单片机P1口,要使这里的发光二极管发光,P1口就要输出低电平。(注:J-LED是控制发光二极管的开关),考虑人眼的视觉暂留(0.1S),要实现灯光闪烁必须调整发光二极管亮灭的时间。实验板电路的原理图如图2-1所示。电路板实物图上LED管的图如图2-2所示。单片机原理实验14图2-1发光二极管电路原理图图2-2发光二极管2.延时程序普通延时程序的一般写法:MOVR2,#100(1个周期)单片机原理实验15D1:DJNZR2,D1(2个周期*循环100次)RET(2个周期)延时次数=1+100*2+2=203MC若晶振频率f=12MHz,则机器周期=1us1机器周期=12时钟周期因此延时时间T=203*1=203us,此时改变R2的值,最大可实现的延时时间=(1+255*2+2)*1=513us≈0.5ms。若需要较大的延时时间,则需要多重循环。例如:MOVR3,#200D2:MOVR2,#250D1:DJNZR2,D1;DJNZR3,D2;RET若机器周期仍为1us,则延时时间T=1+200(1+250*2)+200*2+2=100603us≈0.1s四、实验步骤:1.分析实验所用到的电路原理图,根据需要连接跳线帽。2.编写程序实现LED1到LED8逐个点亮(延时时间均为0.2秒);3.LED1到LED8全亮,延时0.2秒;4.LED8到LED1逐个灭,延时0.2秒;5.跳转到第2步开始执行。单片机原理实验166.按照实验流程的要求编写程序,并完成调试。五、实验要求:1.预习,书写实验报告(包括实验目的,原理、步骤、流程图、实验程序)。2.上机调试程序,直到完成所要求的功能并在实验报告后面书写程序调试时所遇到的问题和最终解决的办法。单片机原理实验17实验三数码管显示实验-静态显示一、实验目的:1.学习数码管的静态显示原理2.学习数码管静态显示的编程方法3.学习实际数码管的引脚测量方法二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理图1.数码管显示原理常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭显示出不同的字形。数码管又分为共阴极和共阳极两种类型,共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。单片机原理实验18图2-3数码管原理图其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源,a,b,c,d,e,f,g,dp称为段选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即3FH;共阳数码管的字符编码为11000000,即0C0H。可以看出两个编码的各位正好相反。如下图。图2-4数码管显示示意图共阳极的数码管0~F的段编码是:单片机原理实验190C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;共阴极的数码管0~F的段编码是:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H2.实验板原理图一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。实验的电路原理图如图2-5所示:图2-5LED数码管电路原理图板上的LED数码管采用共阳型数码管,即每一位数码管都有一个公共的阳极。P2.0-P2.3分别为四位数码管的位选信号(低电平有效),P0口是单片机原理实验20数码管的段信号。LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。选中第一位LED数码管(P2.0置低),同时给P0口送不同的段码字,数码管就会出现不同的数字。(见教材P241)四、实验步骤:1.分析实验所用到的电路原理图,根据需要连接跳线帽。2.选择4位数码管中的1位,循环显示0-F,每位之间间隔为0.2S编程并完成调试。五、实验要求:1.预习,书写实验报告(包括实验目的,原理、步骤、流程图、实验程序)。2.上机调试程序,直到完成所要求的功能并在实验报告后面书写程序调试时所遇到的问题和最终解决的办法。单片机原理实验21实验四数码管显示实验-动态显示一、实验目的:1.学习数码管的动态显示原理2.学习数码管动态显示的编程方法二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理图1.动态显示原理在实际的单片机系统中,往往需要多位数码管显示。由于每个数码管至少需要8个I/O口,如果需要多个数码管,则需要太多I/O口,而单片机的I/O口是有限的。在实际应用中,一般采用动态显示的方式解决此问题。动态显示时所有数码管的段选全部连接在一起,多个数码管交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。例如需要显示数字“12”时,先输出位选信号,选中第一个数码管,输出1的段码,延时一段时间后选中第二个数码管,输出2的段码。把上面的流程以一定的速度循环执行就可以显示出“12”,由于交替的速度非常快,人眼看到的就是连续的“12”。单片机原理实验22在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。实际显示时每位显示的延时时间1ms。2.电路原理图实验的电路原理图如图2-5所示。实验板上的LED数码管采用共阳型数码管,即每一位数码管都有一个公共的阳极。P2.0-P2.3分别为四位数码管的位选信号(低电平有效),P0口是数码管的段信号。四、实验步骤:1.分析实验所用到的电路原理图,根据需要连接跳线帽。2.4位数码管循环显示0123456789ABCDEF4组数,每组数字显示时间为3秒,之后显示下一组。编写程序并完成调试。五、实验要求:1.预习,书写实验报告(包括实验目的,原理、步骤、流程图、实验程序)。2