ImageVerifierCode 换一换
格式:DOCX , 页数:105 ,大小:930.24KB ,
资源ID:5406056      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5406056.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验指导书版 附C51源码.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验指导书版 附C51源码.docx

1、单片机实验指导书版 附C51源码单片机原理与应用实验指导书编写: 靳桅、邬芝权、李 骐西南交通大学峨眉校区计算机与通信工程系实验中心(9. 9)内容简介本实验指导是为适应西南交通大学峨眉校区计算机系开设单片机原理与应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。完成本实验指导中的实验,可使学生基本掌握 MCS-51单片机的结构原理、接口技术、程序设计技巧。手册中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。为了解决上述问题,我们独立开发了“学生实验板”以及相应的开发软件 。这套实验设备通过串行口下载编程,便可以直接对各个系列的单片机编程写入,从而省略了专门的单片

2、机编程器。学生在自己的电脑上使用这个软件,便可以进行单片机制作,给学生提供了一个节省、高效的单片机系统设计制作的开发工具。我们精心设计了与理论课紧密结合的实验项目:单片机最小系统、单片机扩展接口、单片机中断控制、单片机定时器应用、单片机键盘显示系统、单片机动态显示、单片机通信接口、A/D转换及数据采集、D/A转换及PWM控制,通过这些实验项目的训练,使学生能够较好地掌握单片机的原理与应用。其中,单片机动态显示制作、键盘及LED显示制作。目录第1章 单片机实验板说明书 1第2章 单片机实验开发板及开发软件简介 4第3章 指令系统实验 5实验1 熟悉软件开发流程 5实验2 汇编程序设计实验一 10

3、实验3.汇编程序设计实验二 11第4章 单片机应用实验 15实验4 流水灯实验 15实验5 定时计数器实验 16实验6 中断系统实验 19实验7 串行口通信实验 23实验8 学习使用C语言进行单片机程序设计 25实验9 键盘显示程序 28第5章 单片机综合实验 29实验10 编写电子钟程序(一) 29实验11 编写电子钟程序(二) 31实验12 编写液晶显示器驱动程序 33实验13 编写矩阵键盘驱动程序 35实验14 编写点阵LED显示驱动程序 37第6章 参考模块程序 39第1章 单片机实验板说明书一、 概述该单片机实验板是一款高性能、低价格的开发板,可用于教学、毕业设计、电子竞赛等。也是广

4、大单片机爱好者、开发工程师首选的8051开发板。二、 产品特征本书中所有程序均在单片机基本实验板(如图 11所示)上调试通过,根据所选择的MCU不同,程序下载方式分为串行口和JTAG两种方式。如果选用SST89E564RD2单片机,可以采用串行口IAP方式下载程序,如图 11所示;如果选用VRS51L3174单片机,则必须采用JTAG接口下载,如图 12所示。图 11 SST89E564RD2工作实物图图 12 VRS51L3174工作实物图为便于读者了解单片机实验板各部分功能和I/O口资源分配,在图 13中给出了详细结构示意图,以下对其基本结构按照组成部分分别加以说明。图 13 单片机基本实

5、验板结构示意图1. P1口LED指示灯P1.0P1.7每个I/O口上都连接一个LED发光二极管,根据图 13中二极管连接方式,则当I/O口输出低电平时,发光二极管被点亮,例如,发光二极管D0、D2同时点亮,其余熄灭时,P1口上数据为0xFA。通过该部分可以实现I/O口基本操作控制、流水灯显示实验项目。2. 简易逻辑测试电路在输入端接出测量探针,通过发光二极管的亮、灭判断测量点电平高低,因此简易逻辑测试电路可以用作基本电平测量。3. 键盘控制键盘控制电路中4个按键KB1KB4分别对应I/O端口P3.2P3.5,其中KB1和KB2用于INT0和INT1中断控制,KB3和KB4可以用于T0和T1的门

6、控或脉冲计数输入。通过键盘控制可以实现外部中断控制、定时器门控方式、脉冲计数实验项目。4. 复位电路提供上电复位和按键复位两种方式。5. 时钟电路提供单片机系统外接无源晶体振荡器,一般采用12MHz晶振。6. 通信电路通信电路采用通用RS232和USB转串行口两种方式。其中通用RS232连接方式采用MAX232芯片,通过普通串行口电缆和PC机连接;USB转串行口方式用于笔记本电脑或者没有串行口的PC机,它通过PL2303HX芯片连接单片机系统和计算机的USB接口,在计算机中虚拟出一个串行口用于通信,适配器实物图如图 14所示。图 14 USB转串行口适配器7. 数码管显示电路数码管显示电路中采

7、用6个共阴极七段式数码管组成,通过单片机P0口送入所需要显示内容的段码码值,P2口的控制信号经过74HC245增强驱动后连接数码管的公共端(COM端),控制所需要选中的数码管。利用数码管显示电路可以实现I/O口基本操作控制、电子时钟实验项目,并可以结合串行口、键盘完成综合设计实验。8. 电源系统实验板电源可采用USB或外接DC+5V电源两种供电模式。9. JTAG下载器采用JTAG调试模式时需要辅助配套JTAG下载器,如图 15所示。图 15 JTAG下载器实物图10. 51单片机适配模块如图 16所示,51单片机适配模块适用于QFP封装通用51系列单片机,但由于铁电公司新推出的VRS51L3

8、174单片机和普通单片机有所区别,所以在焊接该适配模块的时候需要根据所采用的MCU作一定调整(具体说明在适配模块电路板上有详细说明)。图 16 51单片机适配模块实物图11. 其它拨码开关控制:S0:控制P0口上拉电阻S1:控制P1口上拉电阻S2:控制蜂鸣器开关S3: RTS控制开关第2章 单片机实验开发板及开发软件简介1.1 电路外观 单片机实验开发板电路布局如图 21。图 21 单片机实验开发板电路布局1.2 功能特点单片机实验板集成有常用的硬件资源,并且为用户提供了多种选择,使用用户可以进行各种相关的实验。1、通过PC机USB端口提供电源,电压为5V。2、采用RS232通信方式,可以和计

9、算机直接通信。3、复位方式采用上电复位,按键复位及串行口RTS端复位。4、8个LED,6个数码管,4个按键,1个蜂鸣器。5、可扩展IIC接口芯片。1.3 51开发软件KEIL uVision2KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使用户可以更加贴近CPU本身及其他的衍生产品。C51已被完全集成到Vision3的集成开发环境中,这个集成开发环境包含:编译器、汇编器、实时操作系统、项目管理器、调试器。Vision3 IDE可为它们提供单一而灵活的开发环境。详见单片机原理及C51应用教材第八章。第3章

10、指令系统实验实验1 熟悉软件开发流程一、实验目的1学会使用Keil-C51编程软件,并进行编译调试程序,熟悉单片机实验板;2学会观察各个特殊功能寄存器中数据的变化;3掌握单片机在执行过程中PSW的状态;4学会用汇编语言编写数据传送以及加减乘除等运算类指令程序;5学会下载程序。二、实验设备1微机一台2KeilC51编程软件3单片机实验板4数据下载线三、开发工具 Keil uVision2 IAP专用下载工具Turbo FAST COM UltraEdit-32四、实验内容(一)单片机的开发流程 1 建立一个工程项目,选择芯片类型,确定选项; 2 建立C 源文件或汇编源文件;3 用项目管理器生成各

11、种应用文件; 4 检查并修改源文件中的错误;5 编译连接通过后进行软件模拟仿真;6 用编程器或用软件把程序载入单片机;7 硬件测试。(二)Keil uVision2软件的学习 以下假定你在“D:单片机实验”目录下学习 1、建立一个工程项目选择芯片确定选项 (1)在工程菜单下选新建工程一项(2)键入工程文件名dpjsy1然后保存 (3)CPU选择Atmel公司下的89C51,按确定键 (4)接着选晶振频率及生成HEX 文件等操作: 工程目标Target 1属性在目标Target 1属性选项中,可以更改CPU 晶振频率在输出选项中,选择生成HEX 。2、建立汇编源文件或C 源文件文件新建弹出源文件

12、编辑窗口,进入编辑源文件窗口 在文件窗口中编辑源程序 将文件以“dpjsy1.asm”汇编文件或“dpjsy1.c” C源文件保存在“D:单片机实验”目录下 3、用项目管理器生成各种应用文件 点击Target1前之“+” 号,出现Source Group1 点击它,按鼠标右键会 弹出下拉菜单,出现一个编译文件窗口, 选择增加文件到组Source Group1,向项目中添加dpjsy1.asm 源文件在Source Group1 前会出现一个“+”号,点击之弹出dpjsy1.asm 文件名点击该文件名主窗口中会出现该文件编辑窗口。编译(Project-ReBuild all target fil

13、es 或点击快捷图标)就会生成一系列的文件如OBJ 文件、LST 文件、HEX 文件等 4 检查并修改源文件中的错误 如果在源文件中存在错误在输出窗口中会出现错误提示信息,你可以在源 程序中修改后存盘,然后重新编译(Build)观察错误提示信息,直到没有错误(最好没有警告)5 编译连接通过后,进行软件模拟仿真 点击“开始/停止调试”进入软件模拟的仿真窗口, 在存储器#1 窗口中观察程序存贮区中的内容时,在窗口上方地址栏中输入C:0000H 回车,即可。在存储器#1 窗口中观察数据存贮区中的内容时,在窗口上方地址栏中输入d:0000H 回车,即可。观察P1口的状态:点击“外围设备-I/O-Por

14、ts-Port1” 在程序中某一行设置断点的方法光标到该行按鼠标右键在弹出菜单中选“设置/删除断点” 然后按鼠标左键,在该行首出现红色方块标志,说明该行已设置断点。6 用编程器或用软件把程序载入单片调试结束后,将生成的“工程名.HEX” 文件载入芯片即可。7 硬件测试 (三)UltraEdit 软件的学习 UltraEdit是一套功能强大的文本编辑器可以编辑文字HexASCII 码可以取代记事本内建英文单字检查C+ 及VB 指令突显可同时编辑多个文件而且即使开启很大的文件速度也不会慢软件附有HTML Tag 颜色显示搜寻替换以及无限制的还原功能一般大家喜欢用其来修改EXE 或DLL 文件众多的

15、游戏玩家喜欢用它来修改存盘文件或是可执行文件 1. 十六进制编辑模式 UltraEdit具有十六进制编辑功能编辑二进制代码文件就不用退回DOS下用古老PCTOOLS了我们可以打开一个文件然后选择Edit菜单下的Hex Edit文件就变为十六进制的了做了相应的修改后你可以用同样的方法将退出十六进制编辑状态 2. 同时编辑多个文件 如果要同时修改很多文件可以将其全部选中然后用右键菜单中的UltraEdit-32命令可以一次全都打开打开多个文件后在工具条下面会出现文件切换条你既可以用鼠标单击相应条目来切换文件也可以按下Ctrl+F6键或Ctrl+Shift+F6键按顺序切换 3. 保存为项目文件 如

16、果我们经常要修改一些文件可以将这些文件全部打开然后保存为一个项目文件以后只要打开这个项目文件就自动打开了此项目下的所有文件现在已打开了好几个文件选择Project菜单下的New Project/Workspace就能将这些文件保存为一个项目文件以后可以直接打开所保存的项目文件进行编辑 4. 支持多种文件格式 UltraEdit支持的文件包括*.txt*.doc*.Bat*.iniC语言源程序*.c和*.cpp头文件*.h和*.hppHTML语言*.html和*.htmJAVA语言*.java和*jav这些文件类型基本覆盖了所有的常见文件类型我们还可以让UltraEdit打开指定类型的文件添加方

17、法为单击Advanced菜单选configuration在File Association选项卡中可以的添加新的文件类型单击File菜单下的Conversions可以展开UltraEdit的文本格式转换菜单这里提供了UNIX/MAC与DOSEBCDIC与ASCIIOEM与ANS之间文本的相互转换 (四)串行口调试软件“Turbo FAST COM”的学习熟悉软件的使用;打开要载入的HEX程序,按“下载”键即可。(五)汇编指令训练 将下列汇编程序编译调试,记录程序执行过程中各个寄存器的数据。1.数据传送类指令训练: ORG 0000HMOV A,#34H ;A=( ),PSW=( )MOV 30

18、H,#52H ;30H=( )MOV 01H,#45H ;01H=( ),R1=( )MOV 31H,R1 ;31H=( )MOV PSW, #18H ;PSW=( ),R1=( )MOV R1,#30H ;R1=( )MOV 67H,R1 ;67H=( )MOV A,#82HSWAP A ;A=( )MOV R0,#49HXCH A,R0 ;A=( ),R0=( )MOV R1,#30HXCHD A,R1 ;A=( ),R1=( ),30H=( )SJMP $ END 2.算术运算类指令训练ORG 0000HMOV A,#85H ADDC A,#97H ;A=( ),PSW=( )DA A

19、;A=( ),PSW=( )CLR C MOV A,#47H SUBB A,#67H ;A=( ),PSW=( )INC A ;A=( ),PSW=( )MOV A,33HMOV B,44HMUL AB ;A=( ),B=( ),PSW=( )MOV A,93HMOV B,14HDIV AB ;A=( ),B=( ),PSW=( )SJMP $END3.逻辑运算类指令运算 ORG 0000HMOV A,#67HRL A ;A=( )SETB CRLC A ;A=( )RR A ;A=( ) CPL A ;A=( ) MOV R2,#56MOV A,#72HANL A,#66H ;A=( )OR

20、L A,R2 ;A=( )XRL A,#44 ;A=( )XRL A,#44 ;A=( )SJMP $ END4.IO端口实验调试下面程序,用软件仿真P1口状态ORG 0000HSTARR: MOV A,#01H ;置初值OUT: MOV P1,A ;向P1口送数 ACALL DELAY ;调用延时子程序 CPL A ;(A)反向 LJMP OUT ;继续从P1口输出DELAY: MOV R3,#0AH ;延时子程序DL: MOV R2,#0FFH NOP DJNZ R2,$ DJNZ R3,DL RET END五、思考题1INC A与ADD A,#01H有何不同?2写出复位后各寄存器的状态实

21、验2 汇编程序设计实验一一、实验目的1学会用汇编语言编写控制跳转类指令程序;2学会使用KeiC51编程软件,并进行调试;3查看和分析汇编软件各个特殊功能寄存器的状态。二、实验设备1微机一台2单片机实验板3数据下载线三、开发工具 Keil uVision2 IAP专用下载工具Turbo FAST COM UltraEdit-32四、实验内容用汇编语言设计以下程序。1加法(1)不带进位加法指令编程计算34H与46H之和,送P1口,观察结果。(2)带进位加法指令计算34H与46H之和,送P1口,观察结果(3)BCD码加法计算BCD码34H与99H相加, ,送P1口,观察结果2减法(1) 计算34H与

22、46H之差,送P1口,观察结果(2) 减一指令,送P1口,观察结果3乘法计算45H与34H之积,送P1,P2口,观察结果4除法计算45H除以04H,送P1,P2口,观察结果5数据传送P2 FFHR0 38HA 03H五、思考题1、BCD码加法如何调整结果。2、加1和减1指令对PSW寄存器的影响如何。 实验3.汇编程序设计实验二一、实验目的1学会用汇编语言编写控制跳转类指令程序;2学会使用KeiC51编程软件,并进行调试;3学会调用子程序;4掌握控制跳转类指令转移条件以及转移后的地址。二、实验设备1微机一台2单片机实验板3数据下载线三、开发工具 Keil uVision2 IAP专用下载工具Tu

23、rbo FAST COM UltraEdit-32四、实验内容用汇编语言设计以下程序。1. 清零程序(1)实验题目:把2000H-20FFH的内容清零。(2)算法:用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。(3)程序框图图 31 实验3程序框图(一)2拆字程序(1)实验题目:把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。(2)算法:用连续或单步方式运行程序,检查20002002H中内容变化情况。(3)程序框图图 32 实验3程序框图(二)3拼字程序(1)实验题目:把200

24、0H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成个字节。(2)算法:单步或用断点方式运行程序,检查2002H内容变化情况。(3)程序框图 图 33 实验3程序框图(三)4数据区传送子程序(1)实验题目:把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。(2)算法:在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H), R6、R7中输入字节数(例如1FFFH),运行程序,检查0000-1FFFH中内容是否和2000-3FFFH中内容完全致。(3)程序框图 图 34 实验3程序框图(四)5数据排

25、序实验(1)实验题目:编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。(2)算法:把8051中RAM 50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。(3)程序框图 图 35 实验3程序框图(五)6查找相同数个数(1)实验题目:在2000200FH中查出有几个字节是零,把个数放在2100H中。(2)算法:在2000200FH的几个单元中填入零,运行本程序后检查2100H中是几个单元数。(3)程序框图 图 36 实验3程序框图(六)7数据排序(1)实验题目:在片内数据存储区70H至7FH单元写入

26、随机数,将此组数据从下到大排序,使之成为有序数列。(2)算法:本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。(3)程序框图图 37 实验3程序框图(七)(4)编写程序,上机调试五、思考题1、注意执行控制转移类指令后PC寄存器的值的变化。2、R0R7和RAM地址的关系如何?第4章 单片机应用实验实验4 流水灯实验一、题目要求:实现LED灯的循环闪亮二、算法要求:1.每次闪亮一个灯,2.亮的LED从左到右移,熄灭,3.亮的LED从右到左移,熄灭,返回2循

27、环。三、实验电路图 41 实验四实验电路示意图四、实验说明: 1. P1口是准双向口。它作为输出口时与一般的双向口使用方法相同,当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据可能是不正确的。 2. 延时子程序的延时计算问题。对于程序 DELAY: MOV R6,#200 DEL1: MOV R7,#250 DEL2: DJNZ R7,DEL2 DJNZ R6,DEL1 RET 由指令表可知MOV、DJNZ指令均需用两个机器周期,在采用12MHz晶振时,一个机器周期时间长度为,所以该段程序执行时间约为: 3. 有余力的同学可进一步考虑信号灯控制能否达到如霓虹灯的效果,并

28、通过编程实现。五、思考题1、1K欧的电阻的作用是什么。2、P1端口采用的是低电平驱动,为什么不采用高电平驱动。 实验5 定时计数器实验一、实验目的1了解MCS-51单片机中定时/计数器的基本结构、工作原理和工作方式;2掌握定时/计数常数的设定;3定时/计数器中断的应用。二、实验设备1微机一台2 KeilC51编程软件3单片机实验板4数据下载线三、开发工具 Keil uVision2 IAP专用下载工具Turbo FAST COM UltraEdit-32四、实验原理1.实验电路图 42 实验五电路连接示意图2.定时器/计数器模型定时器/计数器模型如下图。图 43 8051单片机的定时/计数器组

29、成(1) 对计数脉冲可选择来自单片机内部振荡器或是由单片机外部引脚输入的外部脉冲;(2) 计数器的主体是一个加1计数器,它对进入脉冲进行加1计数(其计数长度由程序 设定,但不能超过16位);(3) 计数器是否计数由控制信号确定(通过TCON寄存器中的TRx置位来启动计数);(4) 计数器溢出时(进位),置一个溢出标志TFx并触发中断系统产生中断请求,也可以由用户查询TFx来判断溢出与否。TFx可以由程序或是中断服务程序复位(清0)。3.定时器方式设置定时/计数器方式寄存器TMOD 的地址为89H,其各位的意义如下图:图 44 定时/计数器方式寄存器M1、M0:定时/针数器为工作方式选择,具体如

30、表 41所示。表 41 定时/计数器的工作方式M1M0工作方式说 明00方式013位计数器(THx高八位及TLx低五位);01方式116位计数器;10方式2可自动重新装入初值的8位计数器;11方式3将定时器0分为两个8位计数器。定时器T1工作于此方式下时相当于关闭T1。T0工作于方式3时T1可以工作于其他方式,此时常用做串行口时钟。定时器T0有0、1、2、3共四4种工作方式,定时器T1只有0、1、2共三种工作方式。C/:定时/计数选择。1为定时,定时脉冲由内部振荡器12分频后提供;0为计数,对由T0的引脚(P3.4)或T1的引脚(P3.5)输入的外部脉冲进行计数,计数的最高频率为内部振荡器的1/24。GATE:门控位。确定控制信号由TRx位还是由引脚控制。4.定时器的控制定时/计数器控制寄存器T

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1