1/36单片机原理及应用实验指导书2009年10月2/361单片机实验板介绍1.1板载硬件资源1采用STC8951RC(与标准51指令、脚位完全兼容),支持在线串行ISP下载。2供电方式:USB供电3串口RS23244个LED发光管5四位数码管64个独立式键盘(包含外部中断按键)7一个蜂鸣器8一个PS2接口91602液晶接口(选配件)10128*64液晶接口,单板支持带字库(ST7920)和不带字库(KS0108)两种128*64液晶.(选配件)11DS18B20温度传感器(选配件)12IrDA红外接收头(选配件)1.2原理图3/364/361.3PCB图5/361.4实验箱配置基础板配置:1、STC89C51支持在线下载程序。.2、8位LED发光二极管(可做流水灯实验)。3、4位数码管(可做动态扫描及静态显示实验)。4、4*4矩阵键盘。(也可将其中的行或列接地,将独立按键实验)。5、MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口,同时也可做为STC单片机下载程序的接口,SST单片机仿真接口)6、USB供电系统,直接插接到电脑USB口即可提供电源,此时不需另接直流电源。7、蜂鸣器(可做单片机发声实验)。8、ADC0809芯片(可做模数转换实验)。9、DAC0832芯片(可做数模转换实验)。10、DS18B20温度传感器接口11、单片机32个IO口全部引出,方便自己进行自由扩展。12、AT24C02EEROM(可做IIC串行总线实验)。13.DS1302实时时钟(可做IIC串行总线实验)。14、SM0038一体化红外接收头(可做红外遥控器解码实验)。15、8155电路,可做扩展I/O口使用。16、外扩32KRAM62256芯片电路。17、1602液晶接口。仿真配置:可选配SST89E516仿真芯片,代替STC89C51,实现在线仿真功能。1.5仿真下载使用说明单片机综合创新实验板的单片机仿真与下载分成由不同的单片机完成。仿真由单片机SST89E516芯片来完成仿真,具体的仿真电路就是相关串口通讯电路,仿真的实现可见第二章相关内容。单片机的下载由基础板的单片机STC89C51完成。两种单片机引脚完全相同,直接代换。32个IO都由排针引出,方便用户做6/36不同的实验。1.6电路图7/368/369/36KEIL软件的使用KEIL是51单片机开发的最常见的开发软件。成功安装好KEIL软件后,即可看到电脑桌面上Keil软件图标,如下图。1.双击图标,打开软件,出现如下界面。在打开的窗口中,选择“Project”菜单:2.点击“NewProject”出现一个创建工程对话框,选择工程所建路径,并输入工程的文件名(建议用英文),点击“保存”:3.之后出现芯片选择界面,如下图:10/364.这里,选取常用51芯片即可,选择“Philips”下的“8Xc51RC+”芯片:5.点击“确定”,在出现如下对话框时,选择“否”:11/366.至此,已成功建立工程。界面如下图所示:7.点击“Project”菜单下面的“optionsforTarget‘Target1’”选项,出现如下选项框:12/368.选择“output”页面,选中“createHexFile”,并可在“NameofExecutable:”输入框中,重新输入生成HEX文件的文件名,然后点“确定”,以在程序编译时,实时生成需下载到单片机中的HEX文件。13/369.点击“File”菜单下面的“New”选项,再点击“File”菜单下面的“Save”选项,保存文件。输入文件名(C文件扩展名为“.c”,汇编文件扩展名为“.asm”),如下图:取名为main.c:10.在新建的文件里,进行程序编制,如图:14/3611.程序编制完成后,保存文件。将源程序文件加载到工程中。加载方法为:右击“SourceGroup”,在出现的选项列表中,选择“AddFilestoGroup‘sourceGroup1’”,如下图所示:15/3612.在出现的对话框中,选择刚编辑的源文件(main.c),点击“Add”,如图:13.添加成功后,点击“Project”菜单下面的“Rebuildalltargetfiles”选项。当编译通过之后HEX文件才能生成,如下图。如果程序有错误,编译结果框中会有提示错误。双击对应的错误列表,可定位到源程序的位置,以便快速寻找错误。16/36STC-ISP下载软件的使用方法该软件将已生成的HEX文件下载到单片机中。具体步骤如下:1.双击STC-ISP图标:2.然后在“MCUType”列表中选择单片机型号(应选择单片机板中的CPU型号),如下图:17/363.点击“OpenFile”按钮,找到所要下载的HEX文件,并选中,选择“打开”,如下图:18/364.选择串口的对应端口号,(根据自己的硬件连接端口)(如COM1)。5.然后选“MaxBuad”中的波特率,也可以选默认值。6.点击”Download/下载”,进行文件下载,如图:19/367.稍等几秒,即可下载完成,如图:20/36实验一熟悉KEIL软件的使用一、实验目的1.认识单片机实验系统的构成及使用。2.学习KEIL软件和STC-ISP下载软件的使用方法。3.单片机I/O口的使用方法;二、实验内容1.P23口做输出口,接发光二极管,编写程序,使其闪烁。2.P23-P26口接四只发光二极管LED1-LED4,P20口接开关K1,编写程序,用开关控制发光二极管上的亮灭。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路及参考程序1.参考电路2.参考程序实验1:#includereg52.hsbitP23=P2^3;//定义LED指示灯的IO口voidmain(){inti;//计时变量while(1){for(i=0;i30000;i++);//延时P23=!P23;//指示灯IO口反转}}P23R1LED4R2P24R3LED3R4P25LED2VCCP26+5VLED18051K1P3221/36实验2:#includereg52.hsbitP23=P2^3;//定义LED指示灯的IO口sbitP20=P2^0;//定义key的IO口voidmain(){inti;//计时变量while(1){for(i=0;i30000;i++);//延时if(P20==0)P23=0;//按键,LED亮elseP23=1;//LED亮}}五.思考题1.P23-P26口做输出口,接发光二极管,编写并调试程序,使其闪烁。2.P23-P26口做输出口,接发光二极管,编写并调试跑马灯程序。22/36实验2KeilC51程序设计上机练习一、实验目的1.学习KEIL软件的程序调试方法。2.学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义。二、实验内容1.单片机P2口的P20和P21各接一个开关K1、K2,P23、P24、P25和P26各接一只发光二极管。由K1和K2的不同状态来确定发光二极管的点亮。K2K1亮的二极管00L101L210L311L42.设计一个二进制加1计数器,按一次键,加1,并用4个LED显示计数结果,加至16时清零重新计数。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路及参考程序1.实验1#includereg51.hsbitk1=P2^0;sbitk2=P2^1;voidmain(){while(1)P23P24P25P26R1R2R3R4VCC+5V8051K1P20K2P21LED1LED2LED4LED323/36{if(k1==0&k2==0){P2=0xf7;}if(k1==1&k2==0){P2=0xef;}if(k1==0&k2==1){P2=0xdf;}if(k1==1&k2==1){P2=0xbf;}}}2.实验2#includereg52.hsbitkey=P3^2;unsignedchara;unsignedcharcount=0;voiddelay(inti){while(i)i--;}voidmain(){while(1){if(key==0){delay(10);if(key==0){count++;while(!key);if(count==16)count=0;a=count;a=~a;24/36a=a3;P2=a;}}}}五、思考题1.设计一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。2.用1个按键控制LED的显示,要求显示3种以上的不同模式。实验3单片机中断实验一、实验目的1.掌握单片机的中断系统,学会单片机中断系统的初始化。2.学会单片机外部中断的应用。二、实验内容1.采用外部中断的方式实现按键控制1个LED的亮灭。2.采用外部中断的方式实现4个LED的轮流亮灭。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.实验1#includereg52.hsbitP23=P2^3;P23R1LED4R2P24R3LED3R4P25LED2VCCP26+5VLED18051K1P3225/36voidmain(){IT0=1;//外部中断0连沿触发方式EX0=1;//使能外部中断0EA=1;//开部中断P23=0;//指示灯初始为亮while(1);}voidint0()interrupt0//外部中断0程序入口{P23=!P23;}2.实验2#includereg52.hsbitP32=P3^2;voidmain(){IT0=1;//外部中断0连沿触发方式EX0=1;//使能外部中断0EA=1;//开部中断while(1);}voidint0()interrupt0//外部中断0程序入口{staticunsignedcharBit=0;Bit++;if(Bit=4)Bit=0;switch(Bit){case0:P2=0xf7;break;case1:P2=0xef;break;case2:P2=0xdf;break;case3:P2=0xbf;break;}}五、思考题1.采用外部中断的方式实现一个二进制减1计数器,按一次键,减1,并用4个LED26/36显示计数结果,减至0时,重新从15开始计数。2.采用外部中断的方式实现用1个按键控制LED的显示,要求显示3种以上的不同模式。实验4中断及定时器∕计数器实验一、实验目的1.掌握单片机的中断系统、定时器的工作原理。2.学会单片机中断系统、定时器的应用。二、实验内容1.采用单片机定时器实现1个LED的亮灭,周期为1s。2.采用单片机定时器实现实现4个LED的轮流亮灭,每个LED点亮时间为1s。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.实验1#includereg51.h#defineTHC00xeeP23P24P25P26R1R2R3R4VCC+5V8051LED1LED2LED4LED327/36#defineTLC00