单片机原理应用实验指导书
- 格式:docx
- 大小:74.50 KB
- 文档页数:18
单片机原理与应用实验指导书(202203)-图文实验指导书南通大学电气工程学院自动化系2022年3月前言单片机目前已广泛应用在智能仪表、工业控制、家用电器等各个领域,成为现代电子系统的一个极其重要的组成部分,对于电类专业学生来说,掌握单片机知识,具备基本应用技能,才能符合当前社会对专业人才的要求。
单片机是一门应用性极强的课程,学生在掌握基本理论知识的基础上,更要通过实验训练,提高其调试动手能力,学会解决具体问题的思路和手段,具备初步的系统设计和调试能力。
因此,为了更好地做好单片机课程的软硬件实验,特编写本实验指导书,书中叙述了各实验的目的、要求,对于设计性实验,给出了列出了接线图、程序结构框图和清单。
学生按要求完成本实验指导书中的实验,可基本掌握MCS-51单片机的结构原理、接口技术以及程序设计技巧。
另外:一、所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学要求,选择相应实验。
二、对同一问题的解决方法往往不是唯一的,欢迎各位指导教师在使用本实验指导书的过程中提出更完善的实验方案,指出书中的错误和不足,并希望大家反馈给我们,以便及时修改。
I目录第一章集成开发环境简介..........................................1第二章演示程序......................................................9第三章实验项目 (15)实验一简单程序设计实验.............................................15实验二I/O 口实验......................................................18实验三定时器实验......................................................20实验四A/D、D/A转换实验..........................................21实验五并行接口扩展实验 (25)II第一章集成开发环境简介SuperICES-5180C51单片机实验仪使用当前流行的KeilC51开发软件,采用uViion2集成开发环境。
实验一指令系统和汇编语言程序设计实验本章实验主要包括指令系统和汇编语言程序设计两部分。
采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
实验操作说明Keil 软件调试方式分为:软件仿真方式和硬件调试两种。
软件仿真实验上机操作步骤:1、进入Keil,点击桌面上“Keil μVersion 3”图标,进入Keil系统窗口;2、新建工程:1)打开“工程”菜单中的新建,在弹出的对话框中,键入自己定义的工程名;2)在进一步打开的对话框中,选择CPU的类型,为Intel公司的8032AH,确定;3)存入C:\keil 文件夹中。
(机房,安装在C盘,改为C:\keil)3、打开“视图”菜单中的“工程窗口”;4、在“工程窗口”中,右击“目标1”,为工程设置参数;1)在弹出的快捷菜单中选择“为目标“目标1”设置选项”;2)在弹出的对话框中选择“项目”选项卡,设置时钟为“12Mhz”;3)选择“调试”选项卡,在单选框选择“软件仿真方式”;4)确定,即完成了“软件仿真方式”的设置。
5、新建文件1)打开“文件”菜单,选择“新建”;2)系统打开一个文本窗口,你可在窗口的编辑区输入要调试的汇编语言源程序;3)存盘,命名文件名和扩展名,文件名任起,扩展名必须是.asm,存入C:\keil 文件夹中(在大机房,安装在C盘,改为C:\keil);例如:a.asm。
6、将刚建的新文件添入当前的工程中1)在“工程窗口”中,“目标1”的+号处打开,显示“源代码组1”;2)右击“源代码组1”,在快捷菜单中选择“为“源代码组1”添加文件”,弹出一个对话框; 3)在对话框中选择“文件类型”为*.*;4) 选择文件所在路径,同时找到刚键入的a.asm文件,点击“add”按钮,然后点击“close”按钮;5) 在“工程窗口”点击“源代码组1”左侧的+号,显示添加的a.asm文件,添加成功。
单片机原理及应用实验指导书实验前准备1.建立新程序选择菜单[文件| 新建文件]功能出现一个文件名为NONAME1 的源程序窗口,在此窗口中输入以下程序ORG 0 MOV A ,#0 MOV P1,#0 LOOP:INC P1 ACALL Delay SJMP LOOP Delay:MOV R2,#3 DPL2:MOV R1,#0 DPL1:MOV R0,#0 DPL:DJNZ R0,DPL DJNZ R1,DPL1 DJNZ R2,DPL2 RETEND输出程序后的窗口如图,现在要做的是将此文件存盘。
2.保存程序选择菜单[文件| 保存文件]或[文件| 另存为]功能给出文件所要保存的位置,例如:D:\My programm 文件夹,再给出文件名MY1.ASM 。
保存文件。
文件保存后,程序窗口上文件名变成了:D:\MY PROGRAMM\MY1.ASM3.建立新的项目选择菜单[文件| 新建项目]功能,新建项目会自动分三步走:A ) 加入模块文件。
在加入模块文件的对话框中选择刚才保存的文件MY1.ASM ,按打开键。
如果是多模块项目,可以同时选择多个文件再打开。
B ) 加入包含文件。
在加入包含文件对话框中,选择所要加入的包含文件(可多选)。
如果没有包含文件,按取消键。
C ) 保存项目。
在保存项目对话框中输入项目名称。
MY1 无须加后缀。
软件会自动将后缀设成“.PRJ ”。
按保存键将项目存在与你的源程序相同的文件夹下。
项目保存好后,如果项目是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM ”,如果项目窗口没有打开,可以选择菜单[窗口| 项目窗口]功能来打开。
可以通过仿真器设置快捷键或双击项目窗口第一行选择仿真器和要仿真的单片机。
4.设置项目选择菜单[设置| 仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对话框。
在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。
单片机实验箱BQDJ-4型的介绍图0 单片机实验箱介绍晶体选择:从左到右分别是4,11.0592,12,24MHZ,用户可以根据需要选择其一,注意只能也必须选择其一(把对应的开关拨向ON 的位置),否则可能工作不正常。
状态指示:双色LED,绿色闪一下表示系统复位,绿色连续闪烁表示系统运行。
红色是特别设置的自检灯。
亮表示P1.0 端口为低电平,用户可以写CLR P1.0;如果亮则系统正常。
如果程序中有P1.0 的操作也会亮红色。
复位键:设计了两个键,另一个备用。
短按一下,绿灯闪一下,喇叭响一下,则系统复位。
长按 3 秒,绿灯不停闪烁,喇叭响两下,则系统脱机运行。
喇叭响三下“嘀嘀嘀”,则表示被仿真程序的00H-0040H 被用户占用,请你参考后面说明更改程序。
KEIL 仿真器的设置注意 :一定要选对串口,并选择波特率38400!! 勾选上Run to main.实验1—单片机开发系统应用(亮灯实验)1.1 实验目的①KEIL C软件对程序进行编译调试及烧录软件的使用方法;②掌握用Keil uVision软件进行仿真调试;③汇编语言和C语言的基本用法;对基本I/O口的赋值方法;程序的具体流程等。
1.2 实验设备①单片机原理及应用综合实验箱一台;②数字万用表一台;③计算机一台;④USB下载线一根;⑤KEIL仿真器一台。
1.3 实验内容及步骤(1) 电路连线根据图1原理在实验箱上连接好电路;实验箱上LED是低电平点亮,高电平灭。
图1 LED闪烁实验原理图和仿真图(2)编写程序①编写程序实现P0.0口亮灯显示。
汇编源程序:MAIN: MOV P0,#0FEHJMP MAINENDC语言源程序:#include <A T89X51.H> //包含头文件;void main(){while(1){ P0_0=0;}}②读懂以下延时程序;汇编语言程序:DELAY: MOV R1 ,#200LOOP1: MOV R2 ,#248LOOP2: DJNZ R2,LOOP2DJNZ R1,LOOP1RETC语言程序:void delay(unsigned int t){unsigned int i,j;for(i=0;i<t;i++){ for(j=0;j<200;j++);}}③编写程序并调用子程序指令为LCALL DELAY,实现P0.0led亮灭显示;④改变硬件连线,实现整个P0口对8个LED输出控制显示;⑤利用8个LED发光二极管练习对P0,P1,P2,P3四个8位IO口输出显示。
c ai wp @f j ut .e d u.c n单片机实验操作指导书第一篇 Keil uVision2基本操作Windows应用程序Keil uVision2是一个集成开发环境,它把项目管理、源代码编辑、程序调试等集成到一个功能强大的环境中。
存储器窗口工作窗口外围设备窗口输出窗口项目窗口下面以P1口点亮LED 灯为例,介绍基本的实验操作。
1.双击桌面上的图标,启动Keil uVision2。
2.选择或工具栏的按钮新建文件。
3.编辑源程序,并将文件保存成后缀为.asm 的文件(本例存为led.asm)。
(建议先在D 盘建一文件夹如MCS51用于存放实验文件)。
c ai w p @f j ut .e d u.c n4.建立项目。
(1)从菜单中选择新建项目。
(2)输入项目名称(一般与源程序同名),点保存。
(3)选择器件。
选择Atmel 公司的AT89S51c ai w p @f j ut .e d u.c n往下,找到AT89S51,选中后点确定。
(5)出现下列对话项时,选择“否”。
(如果用C51,则选择“是”)5.将源程序文件添加到项目中。
①鼠标左键单击“+”号展开②单击鼠标右键③单击鼠标左键④在弹出的对话窗口中选择“文件类型”和“文件名”,然后点“Add ”添加。
添加后该窗口不会关闭,点“Close ”关闭。
c ai w p @f j ut .e d u.c n项目中添加了源程序文件6.设置目标文件选项单击工具按钮“Options for Target ”,对“Target”和“Output”标签进行相关设置。
设置后点“确定”。
设置时钟频率,用于仿真调试时定时、观察程序运行时间等,如设为6.0MHzc ai w p @f j ut .e d u.c n单击,将该选项打勾,编译后才会在当前目录生成后缀为.HEX 的目标文件,用于仿真调试。
7.编译 用菜单中的命令或工具栏的按钮对项目进行编译。
佛山市顺德区郑敬诒职业技术学校《PIC单片机原理与应用》实训指导书制定:审核:审批:制定日期:二00七年九月实训项目一 熟悉实验环境及MPLAB 的使用实验目的:熟悉实验软硬件环境,能够对单片机编程并进行调试。
实验内容:了解实验平台软、硬件的构成,熟悉实验环境,掌握MPLAB 的使用方法;建立工程,编程,调试并运行程序。
基本要求:能够在计算机上使用MPLAB 建立一个工程,应用简单指令编写简单的程序进行编译,并在实验板上调试成功。
扩展要求:1、编写一段程序让PORTD 口输出二进制数‘10101010’。
2、编写跑马灯程序。
电路原理:单片机与LED:RD0RD1 RD2: RD7 程序流程:实现D 口小灯四亮四灭的程流程图单片机PORTD实验步骤:1、打开MPLAB。
双击桌面上名为“MPLAB IDE”的图标,打开MPLAB编译环境。
2、进入工程向导。
点击MPLAB上面菜单中的Project(工程),选择ProjectWizard(工程向导),通过工程向导来建立工程。
3、选择单片机。
进入欢迎界面(下图),点击下一步,在Device(设备)中选择PIC16F877A,如果该项为PIC16F877A则直接点下一步。
4、选择编译语言。
选择MPASM汇编语言编译器,如果该项为MicrochipMPASM Toolsuite,则直接点下一步。
5、创建工程文件。
请在D盘下建立一个存放工程的文件夹,文件名可以用英文、数字或英文数字混合,注意:不要用中文或标点符号,文件夹名和工程名长度不要超过8个字符。
下面以建立文件夹名为abcd , 工程名为LED 为例。
此处写入工程名字,可以和实验内容相关,如LED此处写入存放工程的路径,如D:\abcd,建议通过点击右边Browse(浏览)来选择建立好的文件夹6、添好工程名和路径后点击下一步,下图表示可以添加程序文件到工程中,如果是初次编程或没有编好的程序文件,可直接点击下一步。
《单片机原理与应用》实验指导书目录实验一无符号双字节乘法运算子程序实验二 BCD码与ASCII码转换实验三 P1口实验实验四定时器实验—循环彩灯实验实验五数码显示实验实验六 A/D转换实验实验一无符号双字节乘法运算子程序一、实验目的:熟悉MCS-51指令系统,学会使用Keil C编程软件。
熟悉汇编语言编程。
二、实验设备:EL-8051-III型单片机实验箱。
三、实验内容:(1)在(R2R3)和(R6R7)中输入双字节无符号整数。
(2)将(R2R3)和(R6R7)中双字节无符号整数相乘,积存入R2R3R4R5中。
(3)连续或单步运行所编程序。
检查R2R3R4R5中的内容是正确。
四、实验原理:R6 R7R2 R3R4 R5B AB AB A(B)R2 (B+B+A) R3 (R4+A+A) R4 R5五、实验调试1、打开Keil,新建Keil项目;2、选择CPU类型为ATMEL中的AT89C52单片机;3、根据流程图新建汇编源程序(*.asm),并保存;4、在项目管理器窗口(project windows)中,将新建的ASM源程序添加到“source group 1”中;5、在Keil中选择“project”->“build target”菜单,编译汇编源程序,如有错,修改后重新编译;6、选择“debug”->“start/stop debug session”菜单,进入程序调试环境;7、按“F11”键,单步运行程序,观察“project windows”中,寄存器R0~R7的变化情况,最后验证R2R3R4R5无符号双字节相差的结果是否正确(可和程序/附件计算器的相乘结果对比)。
六、参考程序实验二 BCD码与ASCII码转换程序一、实验目的:熟悉MCS-51指令系统,学会使用Keil C编程软件。
熟悉汇编语言编程。
二、实验设备:EL-8051-III型单片机实验箱。
三、实验内容:将本人的班号学号以压缩的BCD码的形式由低到高存放在50H开始的单元中,如10050941班,学号为01的同学,将1050H、0551H、0952H、4153H、0154H。
《MCS51单片机原理及应用》实验指导书唐山学院电工电子实验教学中心年月前言一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。
2.学习和掌握单片机应用系统程序设计技术。
3.提高应用计算机的能力及水平,提高逻辑思维及动手能力。
二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(见下图0-1),其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196单片机的扩展实验系统。
计算机和单片机实验开发系统之间是通过RS232串行接口进行通信的。
图0-1 单片机原理实验设备单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24键键盘、六位LED数码管显示、A/D及D/A转换芯片、简单输出口2个、简单输入口1个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。
在计算机软件的控制下可完成单片机基本实验及综合设计性实验项目。
所有的MCS51单片机原理及应用课程实验都是在这套实验系统上完成的。
三.对参加实验学生的要求1.阅读实验指导书,复习与实验有关的理论知识,明确实验目的,了解内容和方法。
2.按实验指导书要求进行接线和操作,经检查和指导老师同意后再通电。
3.在实验中注意观察思考,记录有关数据和程序,并由指导教师复查后才能结束实验。
4.实验后应断电并返回WINDOWS下关闭计算机,整理实验台,恢复到实验前的情况。
5.认真写实验报告,按规定格式写出程序流程图、程序、并分析实验结果、完成思考题等。
字迹要清楚,结论要明确。
爱护实验设备,遵守实验室纪律。
*注:本实验指导书适用于MCS51单片机原理及应用A、单片机原理及应用B等课程。
目录第一章MC51单片机原理及应用实验 (3)实验一P1口实验(验证性) (3)实验二外部中断实验(验证性) (5)实验三定时器实验 (7)实验四串行口实验--串并转换实验 (9)实验五数码显示实验 (11)实验六A/D转换实验 (13)实验七数字电子钟实验(综合性) (15)实验八D/A转换实验 (16)实验九简单I/O口扩展实验 (18)实验十步进电机实验 (20)实验十一直流电机实验 (22)实验十二PC机与单片机串行通信实验 (24)实验十三继电器与电子音响实验 (26)实验十四8255可编程并行接口实验 (28)实验十五键盘显示接口实验 (30)第二章单片机开发实验系统及TMSD调试程序 (32)第一节单片机开发实验系统 (32)第二节TMSD源语言调试程序简介 (35)第一章MCS51单片机原理及应用实验实验一P1口实验一.实验目的1.学习P1口的使用方法。
一、实验仪布局图1 DP-51PRO 单片机综合仿真实验仪二、调试前的准备工作1. 硬件环境(1) 拿出随机提供的串口通信电缆,一端连接TKSMonitor51 仿真器的RS-232 串行通信口,而另一端则连接到PC 机的串口上(COM1 或COM2)。
(2) 打开实验仪的工作电源,此时即为仿真调试准备好了硬件环境。
2. 软件调试环境的设置(1) 双击Keil C51 快捷图标,进入Keil C51 集成开发环境,这时Keil C51 集成环境自动打开上次正确退出时所编辑的工程项目文件,如图2 所示。
图2 Keil C51 集成开发环境界面(2) 点击菜单栏上的Project项,会弹出下拉式菜单,这时选择Option for target ‘target1’ 将出现如图3 所示的调试环境设置界面图3 调试环境设置窗口(3) 第1 项T arget 属性的设置,对于在TKSMonitor51 仿真器上进行的仿真、调试,由于MON51 监控程序已经占用了从0000H-7FFFH 地址单元的程序存储空间,因此用户的应用程序必须从8000H 地址单元开始存放,即用户应设置Off-Chip CodeMemory 栏内的Eprom 选项。
具体配置请见图3,对于第4 项“C51”的配置请按图4进行设置。
图4 C51 属性栏的设置(4) Debug 环境的设置:首先选择Debug 项,进入如图5 所示的设置画面,这时就可以对其中的每项进行具体设置了,当然您完全可以按照图5 进行设置(要点:在该选项中Use Simulator 是软件模拟仿真,它只能对程序的语法及其结构做一般性的分析,与硬件没有联系;而Use 选项则是硬件仿真,且根据所选用的驱动而使用不同的硬件仿真方式,对于TKSMonitor51 仿真器而言应该选择Keil Monitor-51 Driver 选项)。
同时它的Settings 项还为我们提供了一个串口通信设置环境,通过它我们可以灵活设置串行通信的端口和波特率,其设置环境如图6所示,但请注意:由于在调试模式下,TKSMonitor51 仿真器需要与上位机进行通信,因此它们的通信协议必须一致,波特率也必须相同且为9600bps。
《单片机原理及应用》实验指导书广州大学松田学院电气与汽车工程系2011年10月实验一流水灯实验.................................. 实验二数码管动态显示实验 (3)实验三单片机外部中断实验 (5)实验四单片机定时器/计数器应用 (7)实验五中断及综合实验 (10)附录开发板电路原理图 (II)实验一流水灯实验1.实验H的及要求1)掌握keil c51软件和STC-ISP软件使用方法。
2)巩固单片机基本程序的编写方法和单片机工程项F1的建立流程。
3)熟悉用单片机P0 口控制LED灯亮和灭的方法。
2.实验仪器计算机、keil c51软件、单片机开发板、下载线3.实验内容利用P0 口直接控制8个LED灯的亮和灭。
把不同的数据(本实验采用40 个不用的字节)定时输出P0 口,控制LED灯相应的变化,产生花样灯效果。
改变延吋吋间,则改变LED灯改变速度,效果也不一样。
4.实验步骤1)使用ke订c51软件建立一个工程,命名保存,并配置工程。
2)新建一个文件,主文件名与工程名一致,文件后缀名为MSM。
编辑实验源程序。
(注意:源程序编辑不要在屮文状态下)实验参考程序如下:ORG 0100HTMP1:DB 0111, 02H, 04H, 0811, 10H, 2011, 40H, 80H, 8111, 8211DB 84H, 88H, 90H, OAOH, OCOH, 0C1H, 0C2H, 0C4H, 0C8H, ODOHDB OEOH, 0E1H, 0E2H, 0E4H, 0E8H, OFOH, 0F1H, 0F2H, 0F4H,0F8H0RG 000011 ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主稈序的开始MAIN: MOV DPTR, #TMP1 ;得到数据的地址MOV R7, #40 ;设置循环40次Ml: CLR AMOVC A, ©A+DPTR ;读取相应地址的数据CPL A ;因发光二极管采用共阳极,所以将数据取反再输出MOV P0, AINC DPTRLCALL DELAY ;转入延时了程序DJNZ R7, Ml ; 40次未完成继续LJMP MAIN ;40次完成冋到开始处DELAY: MOV R5, #255 ;延时子稈序D1: MOV R6, #255DJNZ R6, $DJNZ R5, DIRETEND ;程序体结束3)汇编、连接生产目标文件。
单片机原理与应用技术实验指导书(Freescale)机械工程学院机械电子工程教研室王晓峰实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验一、实验目的:熟悉CodeWarrior集成开发环境及飞思卡尔嵌入式实验开发系统掌握AW60的GPIO结构及控制方法掌握CodeWarrior工程结构及创建汇编工程熟悉汇编指令及应用汇编语言编程方法二、实验内容1.运用CodeWarrior新建工程,进行工程程序编辑、编译、下载、调试;2.利用飞思卡尔嵌入式实验开发系统根据实验需要进行硬件连接;3.观察示例工程项目,该工程功能为:根据连接在PTC0、PTC1口上的两个拨动开关的状态,控制接中PTB口上的八个LED处在以下二种不同状态:八个LED同时亮-灭循环;四个灯交替亮-灭;4.设计一个比示例工程简单的工程项目,内容为控制PTB口上连接的八个LED灯同时亮-灭循环一次再四个灯交替亮-灭一次。
5.设计一个比示例工程更复杂一些的工程项目,根据连接在PTC口上的两个拨动开关的状态,控制接中PTB口上的八个LED处在以下四种不同状态:八个LED亮—灭循环;四个灯交替亮—灭;一个LED左移流水灯;两个LED右移流水灯。
三、实验步骤(注意:在调试过程中如需要进行连接线路时,要先将实验箱断电,待电路连接好后再接通电源!!!)1.将飞思卡尔嵌入式实验开发系统实验箱接上电源,写入器BDM接头插接入核心卡BDM座,USB头接入PC机USB口。
2.PC机上启动CodeWarrior,新建工程LED.mcp(注意设置工程保存路径)3.观察工程文件结构,查看相应文件。
4.在main.asm中编辑工程主文件5.编辑相关子程序6.编译,如果有错误修改,直至编译通过7.链接、下载,调试观察LED灯现象导线接插点Vcc拨码开关GN图1-1 LED及拨动开关原理图四、参考程序1.主汇编程序main.asm该程序为根据PTD口的PTD0上接的拨动开关的状态控制连接在PTB口上的八个LED灯在四亮四暗状态或八个灯同时亮同时暗的状态XDEF asm_mainXREF MCUInitXREF DelayHXINCLUDE 'derivative.inc'INCLUDE 'light.inc'INCLUDE 'switch.inc'MyCode: SECTION; this assembly routine is called the C/C++ applicationasm_main:JSR MCUInitJSR Switch_InitJSR Light_InitM_Scan: JSR Switch_ReadLDA $70CMP #$01BNE M01LDA #0JSR Light_On_OffLDHX #$0fffJSR DelayHXLDA #1JSR Light_On_OffLDHX #$0fffJSR DelayHXBRA M_ScanM01: CMP #$02BNE M02JSR Light_HalfLDHX #$0fffJSR DelayHXM02: BRA M_ScanRTS ; return to caller2、LED灯构件程序light.asm;[Light.asm]小灯驱动-----------------------------------------------------* ;本文件包含: * ; (1)Light_init:定义控制小灯的MCU的I/O引脚为输出* ; (2)Light_On_Off:驱动小灯"亮","暗" * ;--------------------------------------------------------------------------------*;小灯驱动所需头文件INCLUDE 'MC9S08AW60.inc' ;MCU映像寄存器名;小灯控制引脚宏定义Light_P: equ PTBD ;灯(Light)接在PTB口Light_D: equ PTBDD ;相应的方向寄存器Lon: equ $00Loff: equ $ffLdiff: equ $0f;声明外部函数XDEF Light_Init ;小灯初始化XDEF Light_On_Off ;驱动小灯"亮","暗"XDEF Light_Half ;驱动小灯"四亮","四灭";Lightinit:定义控制小灯的MCU引脚为输出---------------------------* ;功能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗* ;----------------------------------------------------------------------------------* Light_Init:LDA #$FFSTA Light_P ;设置初始时八个LED灯全灭LDA #$FFSTA Light_D ;设置LED所接PTB口为输出RTS;Light_On_Off:驱动小灯"亮","灭"---------------------------------------* ;功能:根据A的值控制小灯的亮和暗* ;---------------------------------------------------------------------------------* Light_On_Off:CMP #0BNE Light_1LDA #LonSTA Light_PBRA Light_ExitLight_1:CMP #1BNE Light_Exit ;入口非'L'/'A',程序无响应LDA #LoffSTA Light_PLight_Exit:RTS;Light_Half:驱动小灯"四亮","四灭"-------------------------------------* ;功能:根据A的值控制小灯的亮和暗* ;---------------------------------------------------------------------------------*Light_Half:LDA Light_PCMP #LdiffBNE Light_half1LDA #~LdiffSTA Light_PBRA L_exitLight_half1:LDA #LdiffSTA Light_PL_exit:RTS3、拨动开关控制程序Switch.asm;[switch.asm]开关状态输入---------------------------------------------* ;本文件包含: * ; (1)Switch_init:定义连接开关的MCU的I/O引脚为输入* ; (2)Switch_read:读取开关状态* ; (3)RAM$70保存开关状态;--------------------------------------------------------------------------------*;小灯驱动所需头文件INCLUDE 'MC9S08AW60.inc' ;MCU映像寄存器名XDEF Switch_InitXDEF Switch_Read;开关连接引脚宏定义Switch_P: equ PTCDSwitch_D: equ PTCDDS_K1: equ 0S_K2: equ 1;Switch_Init:定义连接开关的I/O为输入----------------------------------*Switch_Init:BCLR S_K1,Switch_DBCLR S_K2,Switch_DRTS;Switch_Read:读取连接开关的I/O口数据,取出开关状态------------* ;RAM$70保存开关状态* ;------------------------------------------------------------------------------------*Switch_Read:PSHALDA #0STA $70BSET S_K1,$70BSET S_K2,$70LDA Switch_PAND $70STA $70PULARTS4、延时通用程序DelayHX.asmXDEF DelayHXDelayHX:PSHA ;[A进栈](保护寄存器A)CPX #0 ;X变址寄存器中的值是否为0BEQ DelayHX_ExitDelayHX_1:LDA #200 ;延时约200*5=1000(T)------DelayHX_2:NOP ;(1T)NOP ;(1T)DBNZA DelayHX_2AIX #-1 ;(HX - 1) -> HXCPHX #0BNE DelayHX_1DelayHX_Exit:PULA ;[A出栈](恢复寄存器A)RTS;[MCUInit.asm]AW60芯片初始化子程序---------------------*;功能: *; 系统初始化设置,设置ICGC1和ICGC2寄存器,SOPT的寄存器*; 设置,由外部晶振f = 4MHz,产生内部总线时钟f = 20MHz *;入口:无*;出口:无*;------------------------------------------------------*INCLUDE 'MC9S08AW60.inc' ;MCU映像寄存器名;声明外部函数XDEF MCUInit ;芯片初始化MCUInit:PSHA ;A进栈(保护寄存器A)LDA #%01100000; |||; |||; |||; ||+------STOPE --- 允许STOP; |+-------COPT ---- long timeout 2^18; +--------COPE ---- 关看门狗STA SOPT ;系统选项寄存器(只写一次)MOV #%00110000,ICGC2; |||||||| 应该在设置ICGC1之前写MFDx; |||||||+-RFD0 \; ||||||+--RFD1 --- 分频因子R=1; |||||+---RFD2 /; ||||+----LOCRE --- 丢失时钟信号后产生一个中断信号; |||+-----MFD0 \; ||+------MFD1 --- 锁频环倍乘因子N = 10; |+-------MFD2 /; +--------LOLRE --- 锁频环失锁后产生一个中断信号(不复位) MOV #%01111000,ICGC1; |||||||x; ||||||+--LOCD ---- 允许检测时钟信号丢失Lost of Clock; |||||+---OSCSTEN - 在OFF模式下允许晶振电路; ||||+----CLKS0 \ - 选择FLL engaged external reference(FEE) ; |||+-----CLKS1 / 使用锁频环的外时钟模式; ||+------REFS ---- 使用晶振(0表示使用外时钟信号); |+-------RANGE --- 使用高频晶振(4MHz p=1) (1-1;0-64); +--------HGO ----- 低功耗;等待FLL稳定PULA ;A出栈(恢复寄存器A)RTS四、思考题1.CodeWarrior建立工程有什么工程框架文件,这些文件的作用?2.该实验采用模块化设计方法,工程框架包含哪些文件,画出其组织结构,画出主程序流程图。
《单片机原理及应用》实验指导书电气工程与信息工程学院专业实验室2013.3目录前言 (1)实验一仿真系统的使用与程序的调试 (3)实验二编程练习 (5)实验三单片机程序烧写 (8)实验四A/D转换 (10)实验五D/A转换 (14)实验六综合性实验——十字路口交通灯的通行指示控制 (17)实验七综合性实验——生产线货物自动计数设备 (17)实验八综合性实验——全自动洗衣机控制器 (18)实验九综合性实验——彩灯的循环闪烁控制 (18)附录1:51Tracer仿真器的使用及Keil uVision2快速入门 (20)附录2:Keil uVision2仿真调试高级技巧 (25)前言1、《单片机原理及应用》课程实验的任务通过本课程的实验环节,学生应进一步巩固和加深对单片机原理与应用基本知识的理解,提高综合运用所学知识,独立编程和设计电路的能力,培养自身独立分析问题、解决问题的能力。
实验要求学生经历由软件环境练习、简单程序编写及软件仿真、复杂程序调试、单片机中断定时功能的学习掌握及硬件仿真,最后到实践一个小型控制器的设计过程,学生必须根据实验要求完成每一个环节,期间培养自身的观察能力、动手能力,以及根据所学知识解决实际问题的能力。
学生须具备基本的自拟实验步骤、分析和综合实验结果以及撰写实验报告的能力。
2、实验设备安装有中文版Keil uVision2的计算机、学林51TRACER仿真器以及配合相关实验的实验板、实验工具,其中实验板配有按键、二极管、数码管显示电路、AD和DA模块等。
KEIL uVISION2由美国Keil Software公司出品,是众多单片机应用开发软件中的优秀软件之一。
提供丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率较高,多数语句生成的汇编代码较紧凑,容易理解。
软件仿真方面也具有较强的功能,其兼容51系列单片机C语言软件开发系统,使用接近于传统C语言的语法来开发。
与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用, 而且可以提高了工作效率和项目开发周期。
单片机原理与应用实验指导书专业班级姓名计算机学院编2007年3月实验目录第一部分软件实验选做实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同个数实验七无符号数双字节快速乘法子程序实验八脉冲计数(定时/计数综合实验)第二部分硬件实验选做实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五 8255PA口控制PB口实验六 8255控制交通灯实验七简单I/O口扩展实验八 A/D转换实验第一部分软件实验实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H~20FF的内容清零。
三、实验步骤用连续或单步方式运行程序,检查2000H~20FF执行程序前后的内容变化。
四、思考 1、假使把2000H~20FF中的内容改为FF,如何修改程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
五、程序清单(sw01.asm)ORG 0000HLJMP SE01ORG 0640HSE01:MOV R0,#00HMOV DPTR,#00H ;(0000H)送DPTRLOO1:CLR AMOVX @DPTR,A ;0送DPTRINC DPTR ;DPTR+1INC R0 ;字节数加1CJNE R0,00H,LOO1 ;不到FF个字节再清LOOP:SJMP LOOPEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验程序框图四、实验步骤用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。
五、思考 1、如何用断点方式调试本程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
六、程序清单(sw02.asm)ORG 0000HLJMP SE02ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A ;(2000H)→A→BSWAP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX @DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000H)内容屏蔽高位MOVX @DPTR,A ;送2002HLOOP: SJMP LOOPEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。
江西理工大学《单片机原理及应用》课程实验指导书主审人:主撰人:前言单片机技术作为计算机技术的一个重要分支,广泛用于工业控制、智能化仪器仪表、家用电器,甚至电子玩具等各个领域,它具有集成度高、性能价格比优越、货源充足等优点。
因此,越来越受到工程技术人员重视,目前国内中高等学校电力技术、电气自动化、自动控制、电子技术等均开设了此课程。
目录第一部分绪论第二部分基本实验指导实验一单片机及其开发系统入门实验二单片机I/O口控制实验实验三外部中断实验实验四定时/计数器实验实验五蜂鸣器驱动实验实验六串转并的I/O口实验实验七 8x8LED扫描输出实验实验八基于C51单片机综合程序设计实验九并转串的I/O口实验实验十 RS232串行口通信实验实验十一并行的模数转换实验实验十二并行的数模转换实验附录实验仪硬件结构第一部分绪论本实验指导书是根据《单片机原理及应用》课程实验教学大纲编写,适用于电气工程及自动化、自动化专业。
一、本课程实验的作用与任务《单片机原理及应用》实验是单片机学习过程中必不可少的重要实践环节。
通过实验和设计,让学生掌握单片机硬件基本知识、基本操作技能,熟练理解 80C51 汇编语言编程、I/O 控制以及中断控制等基本概念,使学生在分析问题和解决问题等方面受到系统科学的训练,从而提高学生理论联系实际能力、自主动手能力和创新能力。
二、本课程实验的基础知识本课程要求学生掌握单片机硬件基本知识、基本操作技能,熟练理解 80C51 汇编语言编程、I/O 控制以及中断控制等基本概念。
学生在学习这门课程之前,必须掌握《模拟电子技术》、《数字电路》、《微机原理及应用》、《C语言程序设计》等课程相关内容。
三、本课程实验教学项目及要求第二部分基本实验指导实验一单片机及其开发系统入门一. 实验目的熟悉 Keil C51集成开发环境的使用方法。
二.实验原理利用单片机的P1口控制发光二极管,进行Keil C51集成开发环境的仿真调试练习。
《单片机原理及应用》课程实验指导书一、实验目的《单片机原理及应用》课程实验是电子信息工程专业的一门专业基础课实验,是本专业学生获得单片机知识的开端。
要求学生通过本课程实验,具备利用单片机技术解决实际控制问题的能力。
培养与提高学生科学实验的能力,动手实践能力、理论联系实际的能力、自学能力、从简单的设计到综合的应用能力和创新能力。
通过实验的训练,使学生掌握《单片机原理及应用》实验的基本方法和基本技能,加深对单片机知识的理解,掌握单片机应用系统设计方法,为今后的工作打下良好的基础。
二、实验设备及器件PC机一台DP-51PROC单片机综合仿真实验仪一台示波器一台电阻若干电容若干导线若干三、实验内容本实验共8个实验内容:实验一仿真实验仪的操作使用练习实验二单片机I/O口控制实验实验三蜂鸣器驱动实验实验四电子琴实验实验五定时器输出PWM实验实验六直流电机实验实验七点阵LED 扫描输出实验实验八串口通信实验*详细指导内容请见附录。
四、实验考核、成绩评定考核方法:设计过程中检查学生实际操作能力,根据课程设计内容要求,设计相关程序, 指导书中所给代码仅供参考,要求学生独立进行整体程序设计,教师要检查学生的运行步骤及结果。
成绩评定:实验成绩根据考勤、实验态度、动手能力、创新能力和实验报告来综合评定,实验成绩计入课程平时成绩,占总成绩的20%。
五、参考资料1、DP-51PROC实验指导书(实验设备配套指导资料),2007年.2、李广第.等单片机基础.北京航空航天大学出版社,2005年.3、蒋辉平等.基于Proteus的单片机系统设计与仿真实例,2012年.六、实验报告格式要求按学院实验报告统一格式报告内容包括:实验目的与要求、实验步骤、程序流程图和实验程序、实验步骤和实验结论。
附录——详细指导内容第一次实验(4学时)实验一仿真实验仪的操作使用练习一.实验目的和要求熟悉Keil C51 集成开发环境调试功能的使用和DP-51PROC 单片机综合仿真实验仪的使用。
《单片机原理与应用》课程实验指导书电子、机电及电气项目与自动化专业适用吴茂屈莉莉王飞编佛山科学技术学院二00 九年十月前言以往我校的单片机实验教案通常是使用启东DAIS 系列单片机微机仿真实验系统进行单片机实验教案的,DAIS 系统可以做二十多项实验,系统机构十分复杂,功能非常强大,但是在使用过程中也发现了一些不足的地方那个: 厂家为了技术保密,把核心电路都屏蔽了,我们不能了解实验系统的工作原理,另外系统庞大,不方便学生带回宿舍实验,不方便学生课外学习。
根据我校学生对单片机课程学习的需求, 我们在参考其他公司的产品的基础上,结合课程的实际情况,开发了适合学生入门学习的单片机学习板,FD-51 学习板,该学习板设置了包括LED数码管、LCD1602液晶、AD\DA转换器件等单元电路,可以做几十个单片机实验,而且本实验板我们是以配件的形式提供给学生,让学生自己焊接调试线路板。
学生不但可以学习软件编程技术,还可以学习硬件焊接及调试技术,可以更好地锻炼学生的动手操作能力。
目录系统介绍 (2)软件实验:实验一清零程序............. (4)实验二拆字程序.................... .. (5)实验三拼字程序.................... .. (5)实验四数据区传送子程序 (6)实验五查找相同数个数 (6)硬件实验:实验A 工业顺顺序控制 (7)实验B 简单IO口扩展实验 (8)实验一P1 口输出流水灯实验 (11)实验二P1 口输出交通灯实验 (11)实验三八段数码管显示实验 (12)实验四键盘实验.................. . (12)实验五遥控解码实验 ............. .. (12)实验六计数器实验..................... .. (13)实验七继电器控制实验 .................... (13)实验八定时器实验 (14)实验九单片机串行口通讯实验 (14)实验十电子时钟 (14)实验十一外部中断实验<急救车与交通灯) (15)实验十二AT24C02读写实验...... .......... . (15)实验十三93C46读写实验....... ........... (16)实验十四LCD1602字符型液晶控制显示实验 (16)实验十五LCD12864点阵型液晶控制显示实验 (17)实验十六A/D转换(数字电压表>实验 (17)实验十七D/A转换(波形发生器>实验 (18)实验十八计算机温度数据采集与处理 ............... . (19)系统介绍一、FD-51单片机学习板简介为了适应我校单片机课程教案的需要,我们在参考其他厂家学习板的基础上,再根据我校单片机课程教案大纲的要求,基于简单、使用的原则,开发了FD-51 单片机实验板。
1、FD-51单片机学习板特点采用STC89**系列在系统可编程(ISP>单片机,利用传统串口就可以对单片机芯片进行批量烧写,可以当编程器使用。
在系统可编程技术即In System Programming ,插好实验单片机芯片后,可以在系统写入程序代码到芯片内部,烧写程序时候不用频繁拔下插入芯片,只要鼠标点击即可把程序写入单片机,彻底告别以前那样用编程器反复烧写拨插芯片的烦恼。
烧写时不再需要12V 的VPP 编程电压,在系统编程使得芯片寿命更长,超过普通芯片89C51 的10 倍以上,性能更高,写入速度更快,稳定性更好,写入完成后自动运行新程序,可以立即查看到程序运行结果,具有所见即所得特性,修改程序效率极高,易用性接近仿真器,学习使用更方便、更快捷!2、FD-51 学习板集成的硬件资源FD51实验板集成了学习单片机常用的各种硬件资源,主要有:1、集成了5 位高亮度数码管。
可以用于计数器实验、数字显示实验、单片机电子钟实验和温度测量实验等,通过该实验可以掌握数码管动态扫描的用法。
板上5 位数码管最大计数可达“ 99999”,计数最大值仅为“ 9999”,其中第五位数码管在温度测量实验中可以显示温度符号“ ℃”,特别方便温度测量实验。
2、集成了8 位高亮度LED流水灯。
可用于交通灯程序实验、流水灯实验,可监视P1 口状态或用作硬件标志位。
3 、4 只独立按键K1~K4。
可用于外中断实验、定时器计数实验、键盘扫描实验等。
4、蜂鸣器(小喇叭>。
可用于单片机声音报警发声实验。
5、继电器。
通过继电器控制实验,掌握继电器的驱动原理和编程方法。
6、I2C 串行接口EEPROM存储器24C02。
7、SPI 串行接口EEPROM存储器93C46。
8、1602 字符型液晶(LCD>接口。
应用范围最广的带背光字符型液晶模块,1602LCD可显示2 行,每行16 个字符,广泛用于各种便携式仪器仪表中。
通过实验掌握液晶模块的驱动方法9、12864 中文液晶模块液晶接口。
可显示中文,开发中文液晶应用系统的最常用液晶器件。
10、RS232串行通信接口。
用来实验单片机和电脑相互通信的接口,可以把单片机采集到的数据<如DS18B20测到的实时温度数据)通过RS232串口发送到电脑上进行后续处理、存储。
同时电脑也可以通过RS232 接口向单片机发出控制指令,比如控制实验板上的继电器动作等。
11、温度传感器DS18B20接口。
12、无线遥控解码接口。
13 TLC1543串行10位AD转换器14 TLC5615串行10位DA转换器二、FD-51 学习板原理图<见同名PDF文件)三、FD-51 学习板元件清单<见同名PDF文件)五、WAV6000简单使用手册<见同名PDF文件)六、STC-ISP下载程序的使用<见同名PDF文件)软件实验实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把20H-2FH的内容清零。
三、程序框图四、实验步骤用连续或单步方式运行程序,检查20-2F 中执行程序前后的内容变化五、思考假使把20H-2FH中的内容改成FF,如何修改程序。
六、实验报告要求。
1、在实验报告纸上填写实验项目,实验日期,指导老师等项目,抄写实验目的,实验内容,画出实验框图。
3、写出20-2F 中执行程序前后的内容变化,说明是否实现实验内容要求。
实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把20H的内容拆开,高位送21H低位,低位送22H低位,21H、22H 高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图四、实验步骤用连续或单步方式运行程序,检查20—22H中内容变化情况。
五、思考如何用断点方式调试本程序。
六、实验报告要求参考实验一实验三拼字程序实验一、实验目的进—步掌握汇编语言设计和调试方法。
二、实验内容把20H、21H的低位分别送入22H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。
三、程序框图四、实验步骤单步或用断点方式运行程序,检查22H内容变化情况。
五、思考六、实验报告要求参考实验一实验四数据区传送子程序一、实验目的掌握RAM中的数据操作、实验内容把R2源RAM区首址内的R3 字节数据传送到R4 目的RAM区。
三、程序框图四、实验步骤在R2中输入源首址(例如20H>,R4中输入目的地址(例如40H>,R3 中输入字节数(例如10H>,运行程序,检查20-30H 中内容是否和40H-50H中内容完全—致。
五、思考六、实验报告要求参考实验一实验五查找相同数个数实验一、实验目的熟悉汇编语言编程。
二、实验内容在20—2FH中查出有几个字节是零,把个数放在30H中。
三、程序框图四、实验步骤在20—2FH的几个单元中填入零,运行本程序后检查30H中是几个单元数。
五、思考修改程序,查找其它内容。
六、实验报告要求参考实验一硬件实验:实验A 工业顺序控制<设计型)一、实验目的掌握工业顺序控制程序的简单编程,中断的使用。
二、设计实验预备知识1、在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例注塑机工艺过程大致按“合模—>注射—>延时—>开模—>产伸—>产退”顺序动作,用单片机最容易实现2、设计实验中可采用用外部中断0,编中断服务程序的关键是:⑴.保护进入中断时的状态,并在退出中断之前恢复进入的状态。
⑵.必须在中断程序中设定是否允许中断重入,即设置EX0 位。
一般中断程序进入时应保护PSW、ACC 以及中断程序使用但非其专用的寄存器,本设计实验中未涉及。
三、实验设计内容1、设计采用CPU 的P1 口来控制注塑机的七道工序,利用七只发光二极管的点亮来模拟控制注塑机的每道工序,低电平有效。
2、设计采用CPU 的P1.7为报警闪光输出。
3、设计采用CPU 的P3.7为报警声音输出。
4、设计采用CPU 的P3.2 故障报警按钮,P3.3为解除报警按钮,P3.4 为运行按钮。
5、要求设定每道工序之间有2 秒的延时。
四、实验参考接线图:参考原理图五、实验调试步骤1、用中断方式编写K1 K2 功能程序及延时程序。
2、用连续方式开始运行程序,此时应在等待开工状态。
3、按K3,各道工序应正常运行。
4、按K1 ,应有声音,闪光报警<人为设置故障)。
5、按K2,即排除故障,程序应从报警的那道工序继续执行。
6、按K3, 停止运行。
回到等待开工状态。
六、思考:1 、如何用数码管显示工序状态及延时时间?实验B 简单I/O 口扩展实验一、实验目的1、学习仿真软件PROTEUS 的使用。
2、学习使用串行数据转并行数据芯片74HC595的方法及编程技术。
二、实验内容1、使用PROTEUS 设计一个包括一个CPU 及1 片74HC595 的串口转并口电路。
2、编程使连接在74HC595上的LED实现流水灯功能。
三、实验电路四、实验步骤1、编写编译程序,下载运行,检验运行结果五、思考74HC595 相关资料74HC5951 、描述74HC595 是硅结构的CMOS 器件,兼容低电压TTL 电路,遵守JEDEC 标准。
7 4HC595 是具有8 位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SCHcp 的上升沿输入,在STcp 的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入<Ds ),和一个串行输出<Q7 '),和一个异步的低电平复位,存储寄存器有一个并行8 位的,具备三态的总线输出,当使能OE 时<为低电平),存储寄存器的数据输出到总线。
8 位串行输入/ 输出或者并行输出移位寄存器,具有高阻关断状态。
三态。
2 、特点:8 位串行输入/8 位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除100MHz 的移位频率3 、输出能力:并行输出,总线驱动;串行输出;标准中等规模集成电路595 移位寄存器有一个串行移位输入<Ds ),和一个串行输出<Q7 '), 和一个异步的低电平复位,存储寄存器有一个并行8 位的,具备三态的总线输出,当使能OE 时< 为低电平),存储寄存器的数据输出到总线。