单片机原理和接口技术实验指导书襄樊学院物理和电子信息技术系实验要求1.进入实验室前完成的部分1)认真阅读实验指导书,弄懂实验原理和实验内容。
2)编写实验所要用到的程序,将其放在U盘上。
3)写出预习报告。
2. 进入实验室后完成的部分1)建立工程,加入已准备好的程序文件。
2)对程序进行调试,修改错误,获得要求的结果。
3)保存调试后的程序。
3.实验结束后的部分对实验结果进行分析、总结,写出实验报告。
实验报告内容及格式1.实验目的2.实验设备3.实验原理及环境4.实验内容只做文字叙述,程序部分放在程序清单中。
流程图也可不画。
5.程序清单本实验使用的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
6.实验步骤7.实验总结主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
实验1 Keil C51的使用(汇编语言)实验目的:初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。
实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。
实验原理及环境:在计算机上已安装Keil C51软件。
这个软件既可以和硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不和硬件连接,仅在计算机上以虚拟仿真的方法运行程序。
如果程序有对硬件的驱动,就需要和硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。
实验内容:1.掌握软件的开发过程:1)建立一个工程项目选择芯片确定选项。
2)加入C 源文件或汇编源文件。
3)用项目管理器生成各种使用文件。
4)检查并修改源文件中的错误。
5)编译连接通过后进行软件模拟仿真。
6)编译连接通过后进行硬件仿真。
7)I A P 编程操作2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。
3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为0.5Hz但电平状态相反的方波。
预习要求:1.熟悉使用Keil C51的各步骤。
2.理解实验内容2中程序的工作原理。
3.编写实验内容3所需要的程序。
实验步骤:以下假定你在E:\TEST 文件夹下学习、运行Keil1.建立一个工程项目选择芯片确定选项如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)图1-1创建工程名弹出下一界面。
如图1-2所示:①选CPU厂家(Atmel)→②选CPU型号(89C51), ③选好后确定图1-2选厂家,选CPU 型号接着选晶振频率及生成HEX 文件等。
如图1-3所示:①Project→②Options for Target ‘Target 1’…→③在Target中→④更改CPU 晶振频率为12MHz→⑤在Output中→⑥选择生成HEX 格式其它采用缺省设置→⑦选好后确定。
图1-3选晶振频率及生成HEX 文件等窗口2.建立汇编源文件如图1-4所示:①File→②New, ③弹出源文件编辑窗口。
输入以下源文件:ORG 0000HAGAIN:CPL P1.0MOV R0,#10 ;延时0.5秒LOOP1:MOV R1,#100LOOP2:MOV R2,#250DJNZ R2,$DJNZ R1,LOOP2DJNZ R0,LOOP1SJMP AGAINEND图1-4进入编辑源文件窗口源程序编写完后,①File→②Save As 将文件以test.asm保存在E:\test 目录下,获得汇编语言源程序。
3.用项目管理器生成(编译)各种使用文件①点击Target 1 前之+ 号→出现②Source Group1→③点击它并按鼠标右键会生弹出下拉菜单见图1-5编译文件文件窗口→选择④Add Files to Group ‘ Source Group 1’ →⑤点击add向项目中添加Test.asm 源文件→⑥点击close关闭Add Files to Group ‘ Source Group 1’窗口→⑦在Source Group 1 前会出现一个+号→⑧点击之弹出test. asm 文件名点击该文件名→⑨主窗口中会出现该程序图1-5进入编译文件文件窗口编译:Project→Build target 就会生成一系列到文件如OBJ 文件LST 文件HEX文件等。
4.检查并修改源文件中的错误如果在源文件中存在错误在Output 窗口中会出现错误提示信息,你可以在源程序中进行修改,然后存盘后重新Build 观察错误提示信息。
5.编译连接通过后进行软件模拟仿真Debug→Start/Stop Debug Session进入软件模拟的仿真窗口,可使用单步、设断点来进行调试和除错。
6.编译连接通过后进行硬件仿真实验箱的仿真串口必须和PC 机串口连接,通电,拨位开关K10必须拨在B端,连接P10和L0,连接P11和L1,设置硬件实时仿真调试选项:Project→Options for Target ‘Targetl’→Debug.硬件实时仿真调试选项窗口,见图1-5选硬件仿真选项,按确定按钮确定。
图1-5硬件实时仿真调试选项窗口进入硬件实时调试窗口后,可打开各种观察窗口,进行单步断点运行到光标连续执行等操作,无误后可连续运行观察LED发光管的显示效果。
注意退出时须按单片机的复位按键SS10,在进行硬件连接前最好也先按单片机的复位按键SS10。
7.I A P 编程操作在硬件调试正确后(实质上用户程序已写入器件了,IAP 即在使用中编程),只需使K10拨至A端,用户程序就100 年不变,实验箱的内置仿真器就可脱离PC 机工作。
通电复位后,就能正确执行上次调试通过的程序。
如果开机通电或复位时,K10处于B端, 则上次调试通过的程序有可能会冲掉,因为当K10处于B端时,实验箱内置仿真器器认为用户要进入仿真状态,所以对器件内存进行清理,造成程序被改写,请千万要注意K10按钮工作状态.如果用户系统用实验箱内置仿真器调试通过,可把用户程序编译通过的*.HEX文件,用万用编程器(烧录器)写到8X5X 单片机中,用8X5X 单片机取代实验箱内置仿真器的CPU工作.8.修改以上程序,实现同时在P1.0和P1.1上各输出一个频率为1Hz但电平状态相反的方波。
重要提示:1.指令中的“,:;”是西文字符,切不可使用中文符号;数字“0”和字符“o”不可混淆。
2.以上菜单操作都可以点击工具栏中的相应图标快速实现。
3.退出硬件连接可以按SS10,在进行硬件连接前最好也按一次SS10。
4.生成源文件的方法:①从键盘上输入源文件;②用其他编辑软件(包括Microsoft Word)编辑源文件,然后复制到Keil C51 文件窗口中,使Word 文档变为TXT 文档,这种方法最好,可方便输入中文注释;③也可装入在其它编辑软件中编辑的源文件如: *.asm/*.a51/*.c... 等。
实验2 十六进制和十进制的转换实验目的:实践汇编语言顺序结构的编程方法,掌握十六进制数转换成十进制数的编程实现,掌握单步运行程序的基本技巧。
实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。
实验原理及环境:将十六进制数转换成十进制数有多种方法,比较典型的是用待转换数除以权值的方法,即依次除以100、10,则各次的商和最后的余数就是所需要的十进制数。
实验内容:将放在片内RAM30H中的2位十六进制数转换成3位十进制数,按照从高位到低位的顺序分别放入31H~33H中(即非压缩的BCD码)。
在本实验中,要求使用单步方式运行,以便观察各单元的变化过程。
预习要求:理解实验原理,熟悉实验环境。
编写实现本实验要求的程序,并生成*.asm文件,将这个文件放在U 盘上备用。
实验步骤:1.建立一个工程,将在预习中做好的*.asm文件加入。
2.调出存储器编辑窗口,将30H单元修改成某一值。
3.在希望停下来的指令上设断点,然后运行,在断点处停下来后,再单步运行,可以看到各单元的变化情况。
运行完最后一条指令后,在31H~33H中应获得30H中十六进制数对应的十进制数。
重要提示:1.指令中的“,:;”是西文字符,切不可使用中文符号;数字“0”和字符“o”不可混淆。
2.本实验可以不用硬件连接,以软件仿真的方法即可进行。
3.程序的起始地址必须为0000H(以后各实验均同)。
4.对程序修改后必须退出连接,进行编译后再重新进行连接才能生效(以后各实验均同)。
5.调出存储器编辑窗口方法是:操作View→Memory Window,或点工具栏中的相应图标。
6.存储器编辑窗口可以编辑3个空间,可以用Adress调出。
在Adress中键入d:xxH或0Xxx将从地址xxH开始显示片内RAM的低128字节和特殊功能寄存器SFR;在Adress中键入i: xxH或0Xxx将从地址xxH开始显示片内RAM;在Adress中键入c: xxxxH或0Xxxxx将从地址xxxxH开始显示程序存储器;在Adress 中键入x: xxxxH或0Xxxxx将从地址xxxxH开始显示片外RAM。
7.将鼠标指针放在存储器编辑窗口中的某个数据上点击右键,在弹出的窗口中点Modify Memory at……可以修改其值。
如果要修改连续多个单元,可以在数据之间用“,”隔开。
8.设断点可以用Debug中的Insert/Remove Breakpoint或点击工具栏中的相应图标快速实现。
运行可用Go。
6.单步运行可以用Debug中的Step(纯单步)、Step Over(将子程序调用作为一条指令运行)或点击工具栏中的相应图标快速实现。
10.在运行过程中如果希望中止当前运行,从头开始,可以点击工具栏中的RST图标实现。
实验3 8段LED显示器动态显示实验目的:掌握8段LED显示器的使用及显示程序的设计方法。
实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。
实验原理及环境:1. 实动态方式驱动。
即验箱上有6位8段LED显示器,采用使一位LED显示器显示内容一段时间,然后下一位LED显示器显示内容一段时间……,周而复始。
只要刷新频率不小于50Hz,就可以获得清晰稳定的显示效果。
2.MCS-51CPU通过一片8255对8段LED显示器进行段驱动和位驱动,8255的A口、B口、C口、控制口的地址分别为片外RAM的4000H、4001H、4002H、4003H。
3.LED显示器的各段由8255的B口驱动,低电平对应段发光,高电平对应段熄灭。