![单片机-实验指导书上_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a6d0dde6-7c05-4ad6-b308-a5067b5e1f73/a6d0dde6-7c05-4ad6-b308-a5067b5e1f731.gif)
![单片机-实验指导书上_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a6d0dde6-7c05-4ad6-b308-a5067b5e1f73/a6d0dde6-7c05-4ad6-b308-a5067b5e1f732.gif)
![单片机-实验指导书上_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a6d0dde6-7c05-4ad6-b308-a5067b5e1f73/a6d0dde6-7c05-4ad6-b308-a5067b5e1f733.gif)
![单片机-实验指导书上_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a6d0dde6-7c05-4ad6-b308-a5067b5e1f73/a6d0dde6-7c05-4ad6-b308-a5067b5e1f734.gif)
![单片机-实验指导书上_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a6d0dde6-7c05-4ad6-b308-a5067b5e1f73/a6d0dde6-7c05-4ad6-b308-a5067b5e1f735.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验构成目录基础实验1 keil 集成开发环境练习2 汇编指令实验3 端口控制实验4 定时器实验5 流水灯实验6 交通灯实验7 数码管实验8 数码管扫描实验9 键盘扫描实验10 外部中断与计数器实验11 端口扩展实验12 扩展显示实验13 数字时钟设计(秒表设计14 计算器设计15 D/A转换实验16 A/D转换实验17 并行通信实验18 串口通信实验19 多机通信实验20 存储器扩展实验扩展实验21 C语言程序实验22 发声器实验23 红外探测实验24 红外数据通信实验25 无线通信协议的构建26 步进电机驱动实验27 直流电机驱动实验28 LCD显示实验29 菜单系统设计30 PWM
2、波形调制31 频率测量32 简易数字万用表设计33 点阵汉字显示设计34 Pc键盘实验35 Pc鼠标实验36 无线键盘设计第一章CS-I型单片机实验开发设备硬件结构简介CS-I型单片机实验开发设备是由计算机学院独立设计开发,用于单片机原理及应用课程的实验教学。这套设备的设计和开发采用模块化组合设计,可以结合不同类型的单片机模块进行实验开发。针对课程的教学采用了ATMEL公司的AT89S52单片机芯片,同时配合keil 集成开发环境,支持汇编语言和C语言的程序设计。本实验教程专门针对51模块。一功能特点* 使用CPU主模块与实验板分离设计的方式,同时可以兼容不同类型的单片机模块,并可根据用户需要
3、独立设计模块。* 采用ISP通信技术,支持在线编程,方便用户开发。* 采用开关电源设计,安全可靠(板上最高电压不超过18v,驱动电流最高可达5V/3A,过载自动保护,方便用户其他设备的引入* 所有IO端口全部引出,方便与外部端口连接搭配。* 实验板上的功能器件可直接采用跳线器直接连接,减少过多的飞线连接。* 2个端口模拟显示,可直接模拟端口高低电平状态,方便用户观察。* 8个状态开关,可模拟256种开关状态,利用一个端口直接读取。* 交通灯模拟显示。* 6个数码管显示,方便开发秒表,时钟,计算器,以及显示特殊提示信息等。* 一个4*4矩阵键盘,配合状态模拟LED,可作键盘全扫描和逐行扫描,一个
4、shift键,方便键盘功能开发* 独立脉冲产生模块,可产生脉冲及方波,配合中断和计数器使用。* 普通键盘接口和鼠标接口,方便用户开发通信协议。* 采用串转并的方式进行端口扩展,同时配合汉字点阵模块显示,可作汉字显示和字库开发。* 扩展显示模块。* 具有发声器,配合定时器方便用户开发电子音乐盒。* 具备8k字节程序/数据存储器扩展。* 具有RS232转换电路,完成UART通信实验,可与上位机进行通信设计。* 8通道8位A/D转换模块,可外接信号源,方便数据采集。* 8位D/A转换实验,两路模拟量输出。* 具有液晶显示模块接口,方便用户开发液晶显示以及菜单系统的设计。* 红外模块,数据传输载波可调
5、,用户作红外产品开发以及无线通信协议开发。* 电机驱动模块,采用4相步进电机,可实现整步,半步驱动,同时配有直流电机,可直接利用PWM进行直流电机的调速。二开发板硬件原理2.1实验开发板功能框图 2.2实验板原理说明1端口模拟基本功能:模拟端口状态以及端口操作。利用发光二极管的亮灭来反映端口的高低电平,以反映对端口的操作,可以编辑出各种不同的发光二极管亮灭状态,如流水灯,指示灯,霓虹灯显示。2状态开关基本功能:利用控制器读取外部开关量状态,以接受外部控制命令。开关一边连接到地,端口则由上拉电阻拉高,在开关闭合后,返回低电平,开关断开后,返回高电平3交通灯基本功能:控制主干道次干道红黄绿交通灯显
6、示,同时利用拨动开关模拟特种车辆通行,红黄绿交通灯显示原理类似于端口模拟的发光二极管,模拟特种车辆的拨动开关类似于状态开关操作。4数码显示基本功能:显示0-f的十六进制数据,通过扫描同时显示6位16进制数据,6个数码管的数据线复用同一个8位的数据线,P10-P15分别选择6个数码管,低电平选中,通过循环扫描,使数码管显示数据。为保证显示不出现闪烁,扫描频率应大于50HZ,过高的扫描频率会更过的浪费CPU资源,一般扫描频率不大于80HZ,数码管的8位数据对应数码管上的8个显示点。16进制数据对应的显示段码为,数据段码数据段码0 0X3F 8 0X7F1 0X06 9 0X6F2 0X5B A 0
7、X773 0X4F B 0X7C4 0X66 C 0X395 0X6D D 0X5E6 0X7D E 0X797 0X07 F 0X71 5键盘模块本电路板键盘采用4*4矩阵键盘方式,表示0-f,也可以由用户自己定义按键功能,带一个shift键,shift直接连接到P37,低电平表示按下,设计可以采用逐行扫描方式,也可以采用全扫描方式,行列和shift均带扫描状态灯,方便用户扫描调试。该键盘模块采用低电平扫描,正常的键盘扫描频率一般为24Hz,6端口扩展基本功能:可将端口的3位扩展为N*8位。由于单片机端口资源有限,实际应用中往往需要进行端口扩展,本端口扩展方式采用移位方式进行扩展。本模块可采
8、用SPI对数据进行输出,然后由扩展模块将数据重新组合为字节且为并行输出,模块与模块之间通过级联的方式以实现大规模扩展端口的应用,7存储扩展:本存储扩展采用一片8K EEROM,即为可写可读存储器,支持掉电保存,可作为程序存储器,也可作为数据存储器。只需合理选择控制信号即可完成数据存储器和程序存储器的选择。做数据存储器时,EEROM的输出控制端连接单片机的P3.6,做程序存储器时通过单片机的PSEN端选择。汇编程序操作方式可以通过MOVX指令来完成。应用C语言时,程序中对外部存储器数据的读写可以通过定义外部变量来实现,C语言的操作方式为: xdata char data,定义一个名为data的变
9、量,并保存在外部存储区。8 A/D转换模块:基本功能:将模拟量转换为8位数字信号,8通道,模拟量可采集外部来源,可直接利用板载旋钮开关控制(板上自带0-3通道模拟量调节。9 D/A转换基本功能:将控制器输出的8位数据转换为模拟量,两路模拟量输出,带一路跟踪输出(模拟量的大小取决于参考电平和采样电阻。10发声器本实验设备采用单音驱动蜂鸣器发声,可通过控制器产生一定频率驱动以产生单音音乐。该模块由低电平驱动。11脉冲中断发生器/计算器该脉冲发生器采用一对红外线对管构成,可以将输出端连接到INT1,INT0以产生中断(无尖峰脉冲现象,也可以连接到T0,T1端以记录外部脉冲数据。12串口通信基本功能:
10、实现实验板之间以及实验板与PC之间的通信。与PC之间的通信采用标准RS232方式实现,数据传输波特率可以采用9600或19200。单片机的波特率由定时器2构成。13 红外通信红外通信采用38K载波传输方式(可以通过调节可调电阻以设置为其他频率载波传输方式,红外模块由发送部分和接受部分组成,可以实现自发自收受(前面需加一块反射物体,也可实现实验板之间的通信,通信距离一般为5M(可通过调节功率实现改变传输距离。该红外模块可以实现对障碍物体的判断,基本原理是:发生部分发送红外载波,如果前面没有障碍物,接受部分不能收到载波,如果前面有障碍物体,载波将返回被接受模块接受,于是通过接受模块判断是否收到载波
11、就可以判断前面是否有障碍物。如果在载波上载有数据,则该模块可以进行数据传输。以上红外数据输出采用串口方式实现。14 电机驱动、电机驱动部分采用光电隔离,可驱动步进电机和直流电机(配合DA模块可实现精密步进电机控制。直流电机速度调节可通过调制PWM波实现,步进电机速度调节可通过驱动频率来改变。15 LCD模块LCD驱动方式可利用其内部控制命令完成对LCD数据的操作,利用单片机端口控制读写和发送控制命令。16扩展显示模块采用端口扩展方式实现8个数码管的显示和8个按键状态的读取。三实验板布局图 四实验开发板的使用用户可以根据具体实验利用实验板上的功能模块进行实验的设计与开发。对于具体实验,可以利用跳
12、线器或飞线连接相应的数据线路或控制线路,以选择相应的功能模块。1 跳线器:用于实验板上相应功能模块的连接。用户使用某个功能部件时,将相应的功能模块在跳线位置通过跳线器连接即可。跳线位置设计在各自的功能模块内,跳线的引脚上均有相应的线路功能说明(通常情况下一边面向处理器的端口,另一边面向功能模块,对于不同的功能模块之间的配合连接,可以采用飞线进行连接。对于不使用的功能模块,用户最好将该功能模块的跳线断开。2 跳线连接约定。(等待插入图片说明3 实验板电源,本实验板只允许接220V交流电源,在上电前,最好先关闭实验板上的电源开关。本实验设备允许带电拔插CPU模块和下载线模块,以及跳线器和飞线。实验
13、板不允许与其他电源连接,否则将导致实验板的损坏。4 CPU模块,本实验设备CPU模块采用模块化设计,通过两排排针插入对应的排座中工作。CPU模块的连接有一定的方向,应按照固定孔与固定螺钉相对应的方向插入CPU模块,且保证排针与排座的对应性,插入后应使用固定螺钉将CPU模块固定,需要更换CPU时,先将原来的CPU换下。使用时,注意CPU模块与排针的连接方向,不能过分用力,以造成CPU模块的损坏。第二章KEIL 集成开发环境一 KEIL 集成开发环境简介本实验设备采用KEILC51编译器,支持汇编语言和标准C语言。随着应用的不断扩大,C51编译器的功能也在不断增强。目前,C51已被完全集成到uVi
14、sion2的集成开发环境中,这个集成开发环境包含:编译器、汇编器、实时操作系统、项目管理器、调试器等。uVision2 IDE可提供灵活的开发环境。uVision2包含一个器件数据库(device database,可以自动设置汇编器、编译器、连接定位器和调试器选项,以满足用户选择各种不同型号微控制器的要求。此数据库包含:片上存储器和外围设备的信息、扩展数据指针(extra data pointer和加速器(math accelerator的特性。同时,uVision2还可以为片外存储器产生必要的连接选项,以确定起始地址和使用规模。以下将详细介绍KEIL 集成开发环境的使用。二 KEIL 集成
15、开发环境的使用2.1建立工程点击桌面KEIL图标,如下图所示,进入keil集成开发环境。 桌面上的KEIL快捷图标如果原来编译过工程,则直接进入上一次编译过的工程页面。如果做一个新的应用程序的开发,则应该先建立工程并做好工程的相应设置。点击Project>new project来开始一个新工程的建立,如下图 New 菜单(如果原来建有工程,可以直接选择Open Project菜单打开原来的工程重新编辑选择路径并保存相应的的保存,如下图 工程保存对话框为工程命名并保存在相应的目录下(注意保存的路径,对以后建立的其他源文件或头文件,尽量保存在该目录下。点击保存,进入如下的器件选择界面。 器件
16、选择界面左边列出的是各CPU制造厂商,因为KEIL支持不同型号的CPU模块,针对具体的单片机芯片,KEIL可以完成特定的编译。我们的实验板使用的是Atmel公司的At89s52芯片,选择如下: AT89S52芯片选择界面左边是我们要具体选择的芯片,右边Description栏给出所选择的芯片的具体参数,如内核、端口数、定时器、内存大小等,以方便使用。点击确定进入。弹出如下对话框。 表示是否将系统提供的该芯片的初始化代码拷贝在该工程目录下,由于KEIL连接器能够自动识别器目录下的头文件,所以我们最好选择“否(NO”进入下一步的设置。如果我们只利用KEIL来编译源程序并进行软件的调试或仿真,我们的
17、工程就建立完毕,但我们需要将源文件编译后下载到我们的实验板上,通过我们实验板上的At89s52中执行,所以我们还需要将工程编译完成后输出一个可执行的文件,因此我们还得对工程做如下设置。在编译器左边的Files窗口中选中Taget1,点击右键,如下图所示: TAGET 设置选择“Options for Target 1”进入对象的相关设置。选择output选项,将如图中尖头处的复选框选重,表示程序编译完成后生成可下载执行的16进制文件。生成的文件自动保存在工程目录下,点击确定,完成工程的建立。如下图所示: 输出设置2.2 建立文件工程建立以后,我们需要建立一个文本文件,以便于用户程序的输入。点击
18、“New Text File ”图标,如下图所示: “New Text File”图标按纽文本文件建立后,就可以直接在文本文件中编辑程序了,但建议在编辑源程序以前,最好先将文件保存为特定的格式,如C程序保存为.c 文件,汇编程序保存为.asm文件,如下图所示: 文本文件的保存文件保存后,还需要将该源文件添加到工程下,方法如下: 文件添加到工程中选择如上图菜单项,将需要的文件添加到该工程目录下。这样我们就可以在源文件中按照一定的语法格式进行程序的设计,同时编译器将会以特殊的显示方式方便用户的编程,如使用特定颜色显示关键字等。2.3 程序的编译调试程序编辑完成后,我们可以通过按“F7”直接编译,输
19、出栏中将会提示编译信息。如错误信息,警告信息,文件的大小等,如下图: 输出窗口如果程序没有错误,编译器同时将生成16进制文件。我们可以先用软件来调试程序的运行情况,选择Debug菜单的Start/Stop Debug session,如下图 Debug选择菜单进入Debug后,我们可以选择多种调试方式,如断点,单步执行,跟踪等,甚至可以直接打开与源程序对应的机器代码,在程序运行过程中,我们同样可以查看CPU的内部资源情况,以及寄存器数据变化情况等。 调试情况下的寄存器查看窗口我们可以具体选择内部资源的某个模块进行观察,方便程序的调试,下图为资源查看选择方法。 资源查看选择从上图可以看出,在调试
20、中,我们可以选择内部具体的资源情况进行查看,如中断,IO端口,串口,定时器等,显示所选器件的具体信息。下图为所选存储器的观察界面: 存储器界面存储器界面可以仿真内部存储器的内容。在地址框中输入需要观察的存储器地址,界面中将显示以该地址为起始地址的存储器内容。地址前面的前缀代表不同的显示内容。如果在输入的地址前面加前缀“D:”表示观察内部数据存储区内容;加前缀“C:”表示观察内部程序存储区内容;加前缀“I:”表示观察立即地址的内容。我们也可以通过VIEW菜单项选择机器代码窗口,汇编代码窗口(C源程序,程序性能分析窗口等。有了这些友好的界面,我们在程序调试过程中,就可以及时掌握程序的运行情况。2.
21、4 程序的下载编译调试完成后,我们需要将生成的HEX文件下载到实验板上去运行。运行ISP程序下载软件,将编译器生成的HEX文件装载进实验板的CPU中,下载程序软件界面如下图: 程序下载软件该软件有以下几个设置。1 参数设置。可以选择通信的接口,下载速度和相应的器件。2 文件的装载。负责将HEX文件或二进制文件装载在缓冲区中。3 编程选项。设置下载时的一些特殊操作(一般情况下,选择“重载文件”,“擦除”,“FLASH”,文件需要加密时可以选择“加密”选项。4 编程操作。在软件最下部由一排按钮,“擦除”键允许对CUP芯片整片擦除,“校验”键校验写入的数据,“读取”键允许将CPU中的程序数据读出,一
22、般情况下我们可以直接点击“编程”键完成相应程序的下载。三错误警告信息的处理如果下载线路连接错误,或者实验箱没有开机,则执行下载操作后会提示线路未连接,使用时应确保数据线的连接和实验板处于开机状态。如果正常操作时依然出现上述问题,此时应用跳线器短接CPU模块中的S跳线,然后选择“擦除”,再拔下跳线,重新下载即可。第三章基础实验实验一KEIL 集成开发环境练习1 实验目的:熟悉实验系统的集成开发环境,掌握Keil的基本使用方法。2 实验设备:硬件PC 机一台软件 Windows98/XP系统,KEIL集成开发环境3 实验内容:1 建立一个新的工程。2 建立一个汇编预源文件或C源文件,并添加到工程中
23、去。3 设置编译连接控制选项。4 编译连接工程。4 实验预习要求:仔细阅读本实验手册第二章“Keil集成开发环境学习”。5 实验步骤:1 启动keil集成开发环境,并新建一个工程。2 选择路径保存工程,选择ATMEL公司的AT89S52芯片。3 设置工程输出选项,保证工程编译生成十六进制文件。4 建立一个新的文本文件,同时保存为*.C 格式或*.ASM文件格式。5 将新建的文本文件添加到工程目录下。6 编译空的工程文件,仔细观察输出提示。7 进入调试模式,尝试打开寄存器窗口,存储器窗口,以及IO端口,定时器,中断,串口等资源窗口,仔细观察窗口中所列出的寄存器样式。8 退出调试模式,在文本文件中
24、输入程序关键字,如 #include, void mov等,观察关键字颜色情况。9 尝试菜单其他的一些设置。6 思考题:1 如果要为已存在的工程重新选择器件,该如何操作?2工程中如果添加了多个源文件,按F7编译的文件是哪一个?如何在该工程下实现分开编译?编译后的16进制文件名为哪个?实验二汇编指令实验1 实验目的:1 熟悉Keil 集成开发环境,学习使用Debug进行软件调试仿真。2掌握51汇编指令的用法,理解汇编程序的格式,并能够编写简单的汇编程序。3了解汇编程序的头文件用途,熟练掌握中断存储区的意义和堆栈的定义。2 实验设备:硬件PC 机一台软件 Windows98/XP系统,KEIL集成
25、开发环境3 实验内容:1. 建立一个新的工程和源文件,并完成工程的设置和源文件的添加。2. 建立一个完整的汇编语言程序框架。3. 小实验1:为两个寄存器中置初值,分别将两个寄存器的数据执行加或减操作,如果运算结果不等于0x8f,将数据保存在数据存储器中0x40地址中,如果等于0x8f,则将数据保存在数据存储器中0x50地址中。4. 小实验2:将数据存储器0x400x50地址随意赋值,然后利用汇编程序将数据从小到大重新排列5. 编译连接上述程序,利用Debug调试仿真,验证程序的正确性。4 实验预习要求:仔细学习单片微机原理及应用,熟悉汇编指令系统。5 实验步骤:1 启动keil集成开发环境,并
26、新建一个工程。建立源文件,完成工程设置和源文件添加。2 建立汇编程序框架,如头文件的加入,地址定义,结束定义3 在框架中添加程序,或编写子程序,完成以上要求的汇编程序4 按F7编译,观察输出窗口的编译信息,如有错误,在错误信息上点击鼠标可以直接定位到错误的行5 进入调试模式,打开寄存器窗口和数据存储器窗口6 按F10单步执行程序,寄存器窗口中寄存器和数据存储器中相应数据的变化情况。以此验证程序的正确性。7 程序的修改完善。6 以上两个实验的参考流程图: 小实验1 参考流程图 小实验2参考流程图7 汇编程序框架org 0000h ; 程序起始入口或复位中断入口,如有其它中断在中断地址处定义对应的
27、中断程序入口jmp startorg 0030h ; 主程序段,必须跳过中断区start:mov SP,#30H ; 设置堆栈指针/*此处添加用户的应用程序段。*/end8 思考题1. 在程序转移中用什么方式实现在条件大于,或小于的情况下控制程序转移。2. 独立编写通过运算方式产生随机数的子程序,并能保证数据在某一定的范围。3. 修改实验2,要求数据由从小到大排序改为由大到小排序,并仔细考虑实现效率问题。实验三端口控制实验1 实验目的:1. 熟练掌握51单片机8位端口的操作控制。熟悉对特定端口位的控制。2. 理解51单片机端口驱动原理。3. 熟练掌握端口数据的输出输入特性。2 实验设备硬件PC
28、 机一台实验开发板一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件3 实验内容1. 使用汇编程序控制端口P1 ,P2的状态,同时通过模拟模块中的LED的亮和灭状反映端口P1,P2的数据状态。可以将端口置特定的数值,观察状态灯的亮和灭与所置数据的关系。2. 使用汇编程序控制端口P1,P2的特定位的状态,同时观察状态灯的状态。3. 使用汇编程序读取外部状态开关的状态,同时将开关的状态反映在状态灯上。4 硬件连接本实验涉及到端口模拟和状态开关读取两部分,请确保状态灯模块中的跳线器连接在ON端,以打开LED的连接,同时确保状态开关模块中的开关与端口连接的跳线器连接上。并确认
29、所连接的端口。5 实验原理1. 实验硬件原理 状态开关原理图状态灯原理图2. 实验软件原理读取状态开关时,如果开关打开,端口对应的位由上拉电阻将电平拉高,读取端口的对应位为“1”;开关闭合后,端口直接连接到地,读取端口的对应位应为“0”,通过此种方法来判断开关是否闭合。控制状态灯时,当端口输出为低电平时,状态灯的两端存在电势差,驱动发光二极管发光,当端口输出为高时,发光二级管两端均为高电平,无法驱动发光二极管,发光二极管灭。通过输出高低电平来控制发光二级管的亮灭,从而可以很直观地模拟端口对应位的电平状态。6 实验预习要求学习单片微机原理及应用教程,掌握单片机的并行输入输出。熟悉实验开发板的硬件
30、结构和硬件连接,学习跳线连接器的使用。7 实验步骤1. 确保状态开关和状态灯中跳线器的正确连接2. 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3. 建立汇编源文件,同时将汇编源文件添加到新的工程下4. 编写程序,控制状态灯的亮灭状态。5. 编写程序,控制状态灯的特定位的亮灭状态6. 编写程序,读取外部状态开关的状态量,并通过P1,P2口的状态灯模拟显示7. 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性8. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8 状态开关读取与状态
31、灯控制程序参考流程图 9 思考题1 若要控制状态灯闪烁,应如何设计该程序?2 根据状态开关的状态数据量,将数据量转换为BCD码,并利用状态灯显示出来?3 修改9.3实验程序,根据开关的状态数据,控制对应的状态灯闪烁。4 设计一个延时程序,让端口以一定规律灯闪烁。实验四定时器/计数器实验1 实验目的:1. 熟练掌握51单片机定时器/计数器0,定时器/计数器1,52定时器/计数器2操作控制。2. 了解定时器/计数器的各个寄存器的功能和简单设置方法。3. 了解51单片机定时器/计数器的工作原理。4. 熟练掌握和应用定时器/计数器。2 实验设备硬件PC 机一台实验开发板一套软件 Windows98/X
32、P系统,KEIL集成开发环境ISP 下载软件3 实验内容1. 分别设置定时器工作在0方式,1方式,2方式,并启动定时器,利用keil中的DEBUG进行调试,并观察定时器的工作情况。2. 利用定时器/计数器定时1s或更长,并利用P2引脚相连的状态灯亮灭间隔反映出来。4 硬件连接本实验涉及到端口模拟部分,请确保状态灯模块中的跳线器连接在ON 端,以打开LED的连接。*需要插图* 5 实验原理图 状态灯原理图定时器软件原理定时器定时原理采用的方法为对某标准时钟进行记数,根据记数个数来确保定时的长短。单片机机定时器不同于8253的根本点是8253采用减法记数,而单片机内部定时器采用加法记数,原理上都为
33、计算标准时钟的个数。系统外部时钟采用24M,经2分频后成为内部时钟信号,定时器的时钟采用内部时钟信号,因此,每定时1s时间需要计系统内部时钟12000000个,即为2000000个机器周期。需要定时多长就定时多少个机器周期即可,如下图所示。 *需要插图*6 实验预习要求仔细学习单片微机原理及应用教程,认真阅读定时器章节。仔细分析以上原理结构。了解实验开发板硬件结构以及硬件连接,同时注意跳线连接的具体端口位。7 实验步骤1. 确保状态灯中跳线器的正确连接2. 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3
34、. 建立汇编源文件,同时将汇编源文件添加到新的工程下4. 编写程序,对定时器/计数器初始化。5. 编写中断服务程序程序,处理定时器/计数器产生的相应中断。6. 编写程序,控制端口P2对应得8个LED灯循环熄,亮。7. 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性8. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8 计数器控制LED灯流程图: 9 思考题:1 :如果换成定时器/计数器1,应当怎样初始化?2 :根据状态若在工作方式0下,应当怎样设置定时器/计数器的控制寄存器,应当如何设置定时器/计数器的数值,和怎样划分时间(以1秒为例。3:仔细理解在计数器状态下,如何
35、实现对外部脉冲的记数。4:如何利用定时器实现定时长达一小时的定时。实验五流水灯实验1. 实验目的1. 了解延时程序的基本原理,提高定时器的运用技巧;2. 熟练掌握延时程序的运用,掌握软件延时与硬件延时的方法。3. 熟练运用子程序,使程序模块化。2. 实验设备硬件PC 机一台实验开发板一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件3. 实验内容1. 编写程序,用软件延时的办法使得P1、P2口的状态灯以一定的时间间隔依次循环点亮。2. 编写程序,用定时器延时的办法使得P1、P2口的状态灯以如下规律以此点亮:P1、P2先全亮,然后P1亮,接着P2亮,最后全灭,时间间隔为
36、一秒。4. 硬件连接本实验涉及到端口模拟部分,请确保状态灯模块中的跳线器连接在ON 端,以打开LED的连接。*需要插图*5. 实验原理利用定时器或软件延时,有节奏地控制状态灯显示效果,实现状态灯的流水灯显示,霓虹灯显示,以及自定义的多种显示效果。6. 实验预习要求1. 仔细学习单片微机原理及应用教程,认真阅读端口控制和定时器部分。2. 仔细分析以上涉及内容,了解时钟周期,机器周期,指令周期的定义,了解软件延时的原理。3. 会计算延时程序的初始化设置。4. 了解子程序的调用,程序模块化编程。7. 实验步骤1. 确保端口模拟模块中LED跳线器的正确连接2. 启动keil集成开发环境,建立一个新工程
37、,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3. 建立汇编源文件,同时将汇编源文件添加到新的工程下。4. 编写程序,使状态灯每次不相邻的灯亮,延时1秒。5. 编译文件,并利用DEBUG调试工具模拟对寄存器操作的正确性6. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。7. 编写程序,使状态灯从两头到中间依次增加点亮,全亮后再将过程逆转回来。8. 编译文件,并利用DEBUG调试工具模拟对寄存器操作的正确性9. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8. 参考程序流程图实验参考程序流程图如下所示: 9. 思
38、考题1. 如果用定时器0定时,定时器1进行计数的方式进行定时,第2个实验应如何修改?2. 掌握定时器的使用和初始化,如果需要精确延时10分钟,应如何设置初值?请画出程序的流程图。3. 利用查表的方式,配合定时器和外部状态灯,实现以一定规律的状态灯动态显示。实验六交通灯实验1. 实验目的:1. 在熟练掌握51单片机端口输入输出控制与定时器/计数器的基础上,进一步提高控制端口输入输出与使用定时器/计数器的能力。2. 了解和掌握定时器/计数器处理实际生活问题的方法。3. 熟练掌握利用定时器延时和软件延时控制交通灯的方法。2. 实验设备:硬件PC 机一台实验开发板一套软件 Windows98/XP系统
39、,KEIL集成开发环境ISP 下载软件。3. 实验内容:使用定时器/计数器来控制时间周期,来模拟十字路口交通灯的运行情况。在上述内容中加入对特种车辆的判断,如果有特种车辆运行,则优先通过,完成后恢复原来程序,继续运行。4. 硬件连接:本实验涉及到交通灯部分,请确保交通灯模块中的跳线器均连接在ON 端。【等待插入图片】5. 实验原理图:【等待插入图片】6. 实验预习要求:1. 仔细学习单片微机原理及应用教程,定时器与端口控制的相关内容并学习子程序设计的相关算法。2. 仔细分析以上原理结构。了解实验开发板硬件结构以及硬件连接,同时注意跳线连接的具体端口位置。7. 实验步骤:1. 确保交通灯模块中跳
40、线器的正确连接2. 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3. 建立汇编源文件,同时将汇编源文件添加到新的工程下4. 编写程序,控制发光二极管亮,灭来模拟交通灯。5. 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性6. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8. 参考流程图(采用定时器/计数器方法: 流程图一 流程图二9. 思考题:1:怎样计算定时器的初值?根据计算结果来设计相应的程序。2:怎样设计和调用子程序。实验七数码管显示实验1 实验目的:1. 理解51单片
41、机数码显示的一般原理,掌握使用数码显示管的一般方法。2. 学会十六进制字形的显示方法。3. 利用数码管的位选信号控制6个数码管中任意一个进行显示。或任意几个进行显示2 实验设备:硬件PC 机一台实验开发板一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件2 实验内容:1,仔细理解数码管显示的字型代码与数字之间的关系2,利用数码管位选信号控制任意一个数码管显示数字“9”3,利用任意一个数码管循环依次显示0f,4,利用6个数码管循环依次显示不同的数字。4硬件连接:本实验涉及到数码管显示部分,请确保状态灯模块中的跳线器连接在ON 端,以打开LED的连接。【等待插入图片】5
42、实验原理图:【等待插入图片】 软件原理数码管内部为8个发光二极管,并排列为8字形,同时加一个位表示小数点,通过这8个发光二极管的合理组合,可以构成不同的数字字型和简单的字母字型,同时数码管还有一个位选信号。即8个数码管的公共端,数码管分为共阳和共阴两种,也就是说高电平选中或低电平选中。6 实验预习要求:仔细学习单片微机原理及应用教程,认真阅读第五章第二节。仔细分析以上原理结构。了解实验开发板硬件结构以及硬件连接,同时注意跳线连接的具体端口位。7 实验步骤:7.1 确保数码管模块中两组跳线器连接正确。7.2 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选
43、择对象输出的Creat HEX file复选框。7.3 建立汇编源文件,同时将汇编源文件添加到新的工程下7.4 编写3.2 中的二进制数显示程序。仔细观察和分析对应得二进制数的显示结果。7.5利用数码管位选信号控制任意一个数码管显示一个特定的数字,比如“9”。7.6 编写3.3中显示0F这十六个字形的程序。7.7 编写3.4中的扩展显示程序。7.8 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性。7.9 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8 数码管显示流程图: 流程图一:二进制数显示,0-f字形显示流程图二:显示字符“9” 流程图三:移位显示9 思考题:1
44、. 数码管显示十六进制字符的原理是什么?2. 设计一种方法计算出每个十六进制字符对应的字形码。3. 在示例程序9.3 中,如果只循环显示05这5个数字,并且把延时控制在4ms以下,会看到什么现象?实验八 数码管扫描实验1 实验目的:理解51单片机数码扫描的一般原理,掌握使用数码显示管同时显示不同字符的一般方法。2 实验设备:硬件 PC 机 一台实验开发板 一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件3 实验内容:3.1 理解数码管的显示工作原理。3.2 利用6个数码管依次循环显示数据,并保证同一个数码管显示的数据保持不变。3.3 在上述试验中,加快数码管循环显示
45、的频率,直到看到数码管稳定显示为此。3.4 利用数码管稳定显示任意数据,并理解显示扫描的概念。4 硬件连接:本实验涉及到数码管显示部分,请确保状态灯模块中的跳线器连接在ON 端,以打开LED的连接。【等待插入图片】4 实验原理图:【等待插入图片】数码管扫描显示原理:所有数码管的数据线都共用的一组数据线,因此,要让数码管显示数据信息,需要分时选择不同的数码管显示对应的数据,也即显示扫描,扫描是通过位选信号实现的,通常扫描的流程位, 软件实现原理: (数码管扫描的软件实现如图所示:首先设置一显示缓冲区, 把显示缓冲区的每一位和数码管一一对应(比如第0位对应数码管0,第一位对应数码管1·&
46、#183;····,让后采用定时器中断来控制缓冲区,每发生一次中断,显示缓冲区的当前位就把其中的数据送它对应得数码管显示,并且把指针指向显示缓冲区的下一位,在下一次中断发生的时候取下一位显示缓冲区的数送它对应得数码管显示,当循环完一次后,指针清零,重新指向显示缓冲区首位。当要改变显示的数据的时候,只需要改变显示缓冲区中的数据而无须直接去更改数码管,这样大大提高了程序的灵活性和可移植性,并且通过合理地设置定时器中断,可以达到很好的显示效果,并且在显示过程过程中不会出现闪烁,暗淡,扫描不均匀等情况。6 实验预习要求:仔细学习单片微机原理及应用教程,端口控制部
47、分。仔细分析以上原理结构。了解实验开发板硬件结构以及硬件连接,同时注意跳线连接的具体端口位。7 实验步骤:7.1 确保状态灯中跳线器的正确连接。7.1 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯同时选择对象输出的Create HEX file复选框。7.2 建立汇编源文件,同时将汇编源文件添加到新的工程下。7.3 编写一个程序,首先在数码管的0位显示字符0,然后延时1s以上,再在数码管第1位显示字符1,然后延时1s以上,循环执行以上操作。7.4 将上面的程序中的延时降低到0.5秒,观察有无变化。7.5 将上面程序中的延时降低到0.2秒以下,观察变化。7.7
48、编写程序,在数码管的各位显示不同的数字。7.8 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性。7.9 编译生成的16进制文件下载到实验板上,验证实验程序的正确性。8 数码管扫描流程图: 流程图一:两个LED数码管同时显示 流程图二:六个数码管同时显示9 思考题:1. 数码管扫描显示的基本原理是什么?3. 怎样利用定时器/计数器来实现数码管扫描?实验九键盘扫描实验1 实验目的1. 了解键盘电路的布局,理解键盘扫描的基本原理;2. 熟练掌握键盘全扫描或逐行扫描方法。2 实验设备硬件PC 机一台实验开发板一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件3. 实
49、验内容1. 使用汇编程序控制端口P2,对引脚P2.0P2.3依次输出低电平,其余引脚输出高电平,每次延时1秒。将程序编译后下载到实验板上执行,然后按下某一按键,观察键盘模块上的LED指示灯的变化。2. 用汇编程序编写逐列(行键盘扫描程序,将扫描到的按键所表示的值显示到数码管上。4. 硬件连接本实验涉及到键盘模块和数码管显示两部分,请确保各个模块中的跳线器连接好,以打开键盘模块和数码管模块的连接。*需要插图* 5. 实验原理图 软件原理:上述为一个4*4的键盘矩阵,可以采用逐行扫描或全扫描的方式实现按键的读取,如上图,行线和列线加驱动后空载时为高电平,逐行扫描的方法为逐行使行线的每位为低,再判断
50、列线的返回信号,如果没有键按下,返回的信号全为高;如果返回的信号中有列线为低,那么肯定是有按键按下,根据列线和行线的交点可以判断按键的具体位置。全扫描的方法为先行线全为低,判断列线,如果列线有为低的,则可以判断有键按下,此时还不能判断某列的具体的键和行,还需反过来将列线全为低,再判断具体的行,根据行列即确定具体的按键。*需要插图*6. 实验预习要求1. 仔细学习单片微机原理及应用教程关于键盘扫描的有关知识。2. 理解键盘扫描的具体方法和原理,要清楚键盘的结构和原理。3. 学会键盘扫描过程中行、列数据扫描和对行列令值的方法。7. 实验步骤1. 确保键盘模块和数码管显示模块中跳线器的正确连接2.
51、启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3. 建立汇编源文件,同时将汇编源文件添加到新的工程下。4. 编写实验内容中第一个题目所要求的程序。5. 编译文件,并利用DEBUG调试工具模拟对端口操作的正确性6. 将编译生成的16进制文件下载到实验板上,验证实验程序的正确性,同时按下某一个按键,观察键盘模块上的LED指示灯的变化情况。7. 编写实验内容中第二个题目所要求的程序。8. 编译文件,并利用DEBUG调试工具模拟对寄存器,端口操作的正确性9. 将编译生成的16进制文件下载到实验板上,验证实验程序的
52、正确性。8. 参考程序流程图实验参考实例程序2的流程图 9. 思考题1. 一次对所有列(行输出低电平,其他引脚输出高电平(全扫描。用这种方法扫描键盘,应该怎样分析程序流程,编写程序。2. 按键按合时起机械动作有一个弹跳,抖动的过程,实际效果仿佛是重按了很多次,通常需要用一定的办法来消抖,请设计一个软件消抖的程序。实验十外部中断与计数器1. 实验目的1. 了解外部中断的原理,功能,熟悉外部中断的两种方式;2. 了解计数器计数原理,学会灵活运用计数器。2. 实验设备硬件PC 机一台实验开发板一套软件 Windows98/XP系统,KEIL集成开发环境ISP 下载软件3 实验内容1. 对脉冲输入模块
53、输入脉冲时,触发外部中断0发生中断,对脉冲计数,将结果显示到数码管;2. 对脉冲输入模块输入脉冲时,用计数器1对输入的脉冲计数,当计到第10个脉冲时,输出的数字加14 硬件连接本实验涉及到脉冲输入模块与数码管显示模块两部分,请确保该模块中的跳线器连接正确,以打开数码管的连接。*需要插图* 5 实验原理图脉冲输入模块中的红外线发送-接收对管用作脉冲输入,其原理图如下所示 在正常状态下,发送管发送红外线,接收管接收,信号输出端输出为低电平;若发送管和接收管之间插入一件对红外线有遮挡的物体,接收管不能接收到红外线,此时信号输出端输出高电平。如果遮挡物是循环连续运动的话,该装置就是一个非常好的无触点信号源。6 实验预习要求1. 预习单片微机原理及应用中的第二章第四节和第七节,对外部中断和计数器要有一定的了解;2. 了解脉冲输入模块中红外线发送-接收对管的原理及应用。3. 画出本次实验内容中涉及的程序的流程图;7 实验步骤1. 确保脉冲输入模块和数码显示模块中跳线器的正确连接2. 启动keil集成开发环境,建立一个新工程,选择ATMEL公司的AT89S52芯片,同时选择对象输出的Creat HEX file复选框。3. 建立汇编源文件,同时将汇编源文件添加到新的工程下。4. 根据实验内容要求,编写程序代码。5. 编译,调试程序,通过初步检测正确之后,将程序编译成hex文件,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电器维修公司服务员工作总结
- 埃塞莱米项目安保方案
- 2025年全球及中国乘用车用液力变矩器行业头部企业市场占有率及排名调研报告
- 2025年全球及中国低速型立式加工中心(主轴转速6000-15000rpm)行业头部企业市场占有率及排名调研报告
- 2025年全球及中国屋面高分子防水卷材行业头部企业市场占有率及排名调研报告
- 2025年全球及中国三箱式冷热冲击试验箱行业头部企业市场占有率及排名调研报告
- 2025年全球及中国工业机器人减速马达行业头部企业市场占有率及排名调研报告
- 2025-2030全球智能体测仪行业调研及趋势分析报告
- 2025年全球及中国1P高功率电芯行业头部企业市场占有率及排名调研报告
- 2025-2030全球NRV铝合金微型蜗杆减速机行业调研及趋势分析报告
- 2025年合资经营印刷烟包盒行业深度研究分析报告
- 天津市五区县重点校2024-2025学年高一上学期1月期末联考试题 化学 含答案
- 吉林省吉林市普通中学2024-2025学年高三上学期二模试题 生物 含答案
- 2025年湖南省通信产业服务限公司春季校园招聘76人高频重点提升(共500题)附带答案详解
- 《电影之创战纪》课件
- 2024-2025学年人教版五年级(上)英语寒假作业(一)
- 开题报告-铸牢中华民族共同体意识的学校教育研究
- 2025届贵州省六盘水市第二中学高三适应性调研考试数学试题含解析
- 浙江省五校镇海中学2025届高考考前模拟数学试题含解析
- 人教版高一数学上册期末考试试卷及答案
- 安全学原理第2版-ppt课件(完整版)
评论
0/150
提交评论