1、单片机接口技术实验教程单片机接口技术实验教程太原科技大学光电工程技术研究所2009年5月3.2 选做实验 (1) 实验一 485通信实验 (1) 实验二 CAN-bus通信实验 (1) 实验三 USB通信实验 (1) 实验四 液晶驱动程序 (1) 实验五 霍尔传感器实验 (1) 实验六 光电传感器实验 (1) 实验七 IIC模拟实验 (1) 实验八 步进电机驱动实验 (1)附 录 实验板原理图第一章 51单片机实验板系统概述1.1 单片机实验板结构框图在本所自己设计的单片机接口技术实验板(二代板)基础上实现,结构框图如下:1.2 实验板各模块功能概述STC89C52RD:本实验板核心部件(即M
2、CU),为51系列单片机,可以通过编程驱动其他模块工作,并实现自动控制。U S B 接口:可实现USB对本实验板供电及MCU下载程序。232 串口:PC机可通过232串口将HEX文件烧写进单片机,还可实现与单片机进行串口通信。485 总线:实验板与实验板之间可以通过485进行通信。CAN 总线:ISP 下载:I2C 总线:无 线通 信:LCD模块驱动:步进电机驱动:8x8LED点阵:可显示出字母或数字。 138译码器:通过译码片选各连接芯片。A/D和D/A:可进行A/D和D/A转换。红外对射管:可判断是否有障碍物存在于对射管之间。霍尔传感器:运放电路:实现比较器和运算放大器。光电传感器:蜂鸣器
3、:实现蜂鸣器发声。RAM扩展:可用于扩展单片机的数据存储器。看门狗:监控单片机程序运行,一旦单片机程序跑飞,复位单片机。实时时钟:用于显示实时时间。拨码开关:用于向单片机输入8位2进制数。继电器:实现单片机对220v交流电用电器的开关控制作用。温度传感:对温度进行测量,并将数据送给单片机。键盘和显示驱动:用于键盘扫描和数码显示。1.3 实验整体思路1)学生自行购买元件(不超过5人一组,电路板所里提供), 焊接,并完成相关实验。2)单片机基于ISP的,因此不提供仿真器,程序通过RS232直接下载程序。3)实验采用分散与集中完成,主要考虑到计算机的缘故,以后如果有条件可以采用一切在试验室完成,达到
4、实际理想的学习效果。4)所里提供7段数码管驱动显示,要求一些实验数据通过数码管显示出来;做某些实验时,提供A/D和D/A驱动程序。5)实验分为必做和选作实验;考虑到成本问题,可以不买或者几组合买一些选做实验中价格较贵的芯片。第二章 51单片机汇编及C语言编译环境简介2.1 WAVE 6000 Wave6000是一款功能强大的优秀的单片机程序编辑、调试、仿真中文Windows软件。该软件可以配合硬件进行单片机的硬件仿真,也可以单独进行单片机的软件仿真。 2.1.1 WAVE 6000仿真器设置在使用WAVE6000进行程序编译和调试之前,必须对仿真器进行设置,否则编译过程中将会出错。下面简单介绍
5、设置方法:首先,在确保电脑安装了完整的WAVE6000之后,打开WAVE6000。你会看到如图1界面。在菜单栏中点击仿真器,在其下拉列表中选择仿真器设置,或者如图1所示,直接点击仿真器设置按钮,出现如图2窗口。打开仿真器面板,如图3,选择E6000L,其他的为默认选项,点击“好”即可完成仿真器设置。图1图2图3 2.1.2 WAVE6000汇编语言编程仿真器设置好之后,就可以开始编程工作了。WAVE6000默认的是汇编语言编译器,那我们就先用汇编语言编译程序。点击“文件”,选择“新建文件”,会出现一个文本框。在里面输入要编译的程序,输入完之后点击图1所示的编译按钮,将会出现如图4所示的提示框,
6、提示对该文件进行保存。注意命名时,以“.ASM”结尾,比如”text.ASM”,保存类型不需要设置。图4保存好之后,再次点击编译按钮。如果程序没有问题,则如图5,信息栏内表示编译通过,生成的可写进单片机的HEX文件已保存在你所设定的文件夹内。图52.2 Keil C使用汇编语言之后,我们还可以使用我们更为熟悉的C语言给单片机写程序。下面把较为常用的Keil C软件做简单介绍。2.2.1 源文件的建立打开Keil C,选择FileNew,则出现了一个新的文本输入窗口。在该文本中输入C语言源程序。输入完毕后,选择FileSave,出现存储文件对话框,输入文件名并保存。注意取名字时必须加上扩展名“.
7、c”,例如“text.c”。2.2.2 工程的建立选择ProjectNew Project,出现“创建新的工程”对话框,输入新的工程名并保存,一般与源文件放在同一文件夹内,不必加扩展名,单击“保存”即可。 进入下一步,选择目标单片机。这里选择ATMEL公司的AT89C52作为目标单片机。单击ATMEL展开,选择AT89C52,单击“确定”可进入下一步。工程建好之后,会出现如图6所示对话框,选择“是”则返回主界面,并注意到工程管理器中已出现一个新的工程,并已有一个“STARTUP.A51”文件,这是Keil C的启动代码源程序文件。图6 2.2.3 编译,链接现在就可以往工程中添加文件了。在最左
8、侧的工程管理器中,右键点击Source Group 1,选择Add Files to Group,出现加入源程序对话框,选中刚才建立的源程序文件,点击Add,再点击Close。这时源程序文件已经加进工程里了。这时候点击工程管理器上侧的Rebuid all target files按钮进行编译,如果没有错误的话,则如图7所示,信息栏内表示编译通过。图7刚装好的Keil C在默认的情况下是不会生成HEX文件的,必须要手动设置。在工程管理器中右键点击Target 1,选择Options for Target,在弹出的对话框中选择Output面板,可以发现Creat HEX files没有被选中,选中
9、它,点击“确定”,再对源文件进行编译,就可生成HEX文件了。2.3 STCISPSTCISP是一款将编译器生成的HEX文件借助PC机串口写入51系列单片机的软件,主要针对以STC开头的51单片机。其基本操作过程简要介绍如下:首先选择MCU型号,本实验板应选择STC89C52RC。点击Openfile,打开编译好的HEX文件,选择对应的串口,然后点击Download,就可以将程序写入单片机了。如果提示给MCU上电,则检查线路及供电是否正常。下载完成后如下图所示。图8第三章 实验内容在做试验之前,有三项准备工作要做:第一,把实验板的电源供上,我们选择USB电源供电,将J4的跳线选择USBV;第二,
10、由于此实验板通过串口给单片机写程序,故通信方式先应选择232,将J23和J24的跳线都选择232;第三,单片机复位选择上电复位,用跳线帽将J15的RST和RC连上。做完这三项工作,我们就可以进行下面的实验了。注:本教程中的程序均采用C语言编写。由于ch451芯片和ds1302芯片所使用的单片机管脚复用,故做有关数码显示部分的实验时,请将ds1302芯片拔下,以免造成干扰。3.1 必做实验实验一 LED发光二极管实验1、实验目的 掌握MCS-51单片机通用I/O口的输出功能。2、实验原理 利用单片机的位操作功能,直接控制LED发光。其实验板原理图如下图所示:图9如上图,当单片机置P1.5为高电平
11、时,LED熄灭;清零P1.5时,LED点亮。若在程序中不断地对P1.5 管脚取反,延时,则可以看到LED灯闪烁发光。3、实验要求 将P0口所接的八个LED灯点亮,并延时让其闪烁发光。4、实验步骤一、用跳线帽将J6的两端连接上,即P0口所接的8个LED灯的正极通过1K的排阻接到VCC上;二、由于ULN2003芯片使用了单片机的P0.0-P0.3口,故将它拔下,以免影响LED灯的正常闪烁;三、写程序, C语言参考程序如下:#include /包含52头文件#include /要使用“_nop_();”#define uint unsigned intvoid delay_ms(uchar a) /
12、a ms延时子函数 uint i; while(a0) for(i=100;i0;i-) _nop_(); a-; void main() uchar i,m=0xff; while(1) for(i=0;i8;i+) P0=m; m&=0xfe; m=1; delay_ms(100); /延时100ms /P0口的LED灯由左至右依次点亮 m=0xff; for(i=0;i=1; delay_ms(100); /P0口的LED灯由右至左依次点亮 m=0xff; /不断循环程序执行后会看到P0口的LED灯先由左至右依次点亮,然后熄灭,再由右至左依次点亮,不断循环。实验二 蜂鸣器驱动实验1、实验
13、目的 了解如何用单片机控制蜂鸣器定时发出一段时间的声音。2、实验原理 本实验板采用的是只要有一定大小的电流通过就会发出声音的蜂鸣器,故只要给如左图所示管脚高电平,蜂鸣器就会响,反之,蜂鸣器就不会响。3、实验要求 让P3.5口所接的蜂鸣器发出声音,延时一段时间,再停止。其实验板上的原理图如下图所示: 图104、实验步骤一、将J14的跳线帽接上,用于连接单片机与蜂鸣器;二、编程,参考程序如下:#include /包含52头文件#include /要使用“_nop_();”sbit buzzer=P35; /定义口#define uint unsigned intvoid delay_ms(ucha
14、r a) /a ms延时子函数 Uint i; while(a0) for(i=100;i0;i-) _nop_(); a-; void main() buzzer=0; /蜂鸣器停止发声 while(1) buzzer=!buzzer; /使蜂鸣器开始(或停止)发声 delay_ms(500); /延时500ms 程序写入单片机之后,将会听到蜂鸣器一会响,一会不响,不断循环。实验三 I/O管脚按键实验1、实验目的 掌握单片机通用I/O口的输入功能。图112、实验原理 如上图所示,当按键按下时,对应管脚被拉成低电平,在程序中使用单片机的位操作功能,不断地使用查询法检测相应管脚是否为低电平,就可判断按键是否被按下。3、实验要求 用查询法检测到按键,延时去抖,并点亮相应的发光二极管;用外
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1