《单片机原理及应用》实验指导书.
单片机原理及应用实验指导书

实验一指令系统和汇编语言程序设计实验本章实验主要包括指令系统和汇编语言程序设计两部分。
采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对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.设置项目选择菜单[设置| 仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对话框。
在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。
《单片机原理与应用》实训指导书

佛山市顺德区郑敬诒职业技术学校《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、添好工程名和路径后点击下一步,下图表示可以添加程序文件到工程中,如果是初次编程或没有编好的程序文件,可直接点击下一步。
《单片机原理与应用》实验指导书1

《单片机原理与应用》实验指导书目录实验一无符号双字节乘法运算子程序实验二 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。
单片机原理及应用实验指导书

《单片机原理及应用》实验指导书(C语言)中南林业科技大学交通运输学院交通运输教研室周永军2015.09前言由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。
由于目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机,所以本实验指导书为学习MCS-51单片机的学生,配合《单片机原理及应用》课程的教学,结合本学院单片机教学实验板编写了这本实验指导书。
《单片机原理及应用》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习程序设计,还是学习接口电路与外设,不通过加强动手是不能获得预期效果的。
本实验指导书提供多个实验的指导性材料,可以根据课时的安排和教学要求进行取舍。
为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。
实验须知1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。
2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。
通电前须经过指导教师检查认可后方能通电。
3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。
4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。
5. 实验中若损坏仪器或元器件,应及时向指导教师报告。
6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。
7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。
8. 按规定认真完成实验报告,在规定的时间内缴上实验报告。
9. 凡实验或实验报告未能按规定完成的学员,不能参加本课程的考试或考查。
单片机实验报告格式实验报告标题一、实验目的二、实验内容三、实验设计及调试:(1)实验分析及内容。
《单片机原理与应用》实验指导书

《单片机原理与应用》 实 验 指 导蒋艳红 编桂林电子科技大学电子工程学院2007.3目 录实验一 单片机开发系统的使用方法 (1)实验二 I/O口输入、输出实验 (7)实验三 定时器/计数器实验 (9)实验四 中断实验 (12)实验五 串行通讯实验 (15)附录一 逻辑分析工具 (17)附录二 系统自动检测功能 (21)实验一 单片机开发系统的使用方法一、实验目的1.学习单片机开发系统和仿真软件的使用及程序调试方法。
2.掌握汇编程序的编写方法及常用技巧。
二、单片机实验系统简介单片机的开发与应用需要借助于开发软件及硬件仿真系统进行。
在单片机应用系统的开发过程中,为了得到满足要求的用户程序,需要有一个对程序的调试过程,这项工作依靠单片机自身是无法完成的。
因为程序在机器内连续高速地运行,难以观测程序的运行情况。
此外,还需要把调试成功后的程序固化到单片机的程序存储器中,当单片机运行起来后,对整个用户样机系统的软硬件进行实时的诊断、调试。
因此需要有相应的仿真设备才能完成。
单片机实验系统LAB6000即是具有对应用程序进行输入编辑、修改等功能的设备,软硬件仿真可以实现对源程序进行编译,及程序的执行和检测。
在对目标系统的调试过程中,可以运用单步执行,设置断点执行、状态查询等功能,以达到设计目的、完成从用户程序的编写到单片机应用系统的正确运行之前的一切准备工作即仿真功能。
系统运行时,能够产生和单片机完全相同的实时信号,以实现对用户样机系统中软、硬件的故障诊断和调试。
LAB6000实验系统由硬件及软件两部分组成。
三、调试步骤(一)建立源文件并保存 双击桌面WAVE图标,进入伟福开发环境。
1、选择菜单:文件/新建文件,进入源程序编辑窗口,在此输入源程序。
如图1-1。
图 1-1选择菜单:文件/保存文件或直接点击工具栏上小磁盘图标,指定文件所要保存的位置,例如:F:\0820101文件夹,再确定文件名:sy1.ASM ,注意后缀应为 .ASM。
《单片机原理及应用》实验指导书

《单片机原理及应用》实验教学指导书陈玮编莆田学院信息工程学院2015年9月目录实验一仿真系统搭建 (1)实验二实验系统编程应用 (7)实验三流水灯实验 (9)实验四 LED数码管显示实验 (11)实验五键盘实验 (13)实验六中断系统实验 (15)实验七 51定时器实验 (17)实验一仿真系统搭建一、实验目的了解实验设备的软硬件组成,包括keil单片机仿真软件的安装、设置与使用,单片机仿真调试软件的安装、设置与使用,单片机仿真器的功能、结构与使用,51单片机实验板的电路结构、工作原理与使用。
熟悉使用keil单片机仿真软件、仿真调试软件和实验板进行协调工作的方法。
熟悉使用至少两种单片机仿真系统建立、设置、调试工作项目的方法。
二、实验原理整个实验系统由仿真调试软件(keil单片机仿真软件、伟福仿真调试软件)、单片机仿真头(伟福仿真器)和单片机最小板(51单片机实验板)组成或使用Proteus 仿真系统进行硬件仿真。
仿真软件进行项目的管理设置,仿真器进行软件的下载与单片机的仿真(IAP),实验板搭载建立各种外围电路。
主要掌握的软件有KEIL编程软件、Proteus硬件仿真软件和其他一些差用软件及硬件构造。
整个实验系统使用时,若使用硬件仿真,第一步安装KEIL软件,第二步安装星研系列仿真调试软件,第三步将仿真器的数据口和电源口连接微机及实验板,进行仿真器驱动安装。
第四步将仿真头插入实验板插座(注意仿真头三角箭头标注引脚为第一脚),开机调试。
若使用软件仿真,第一步安装KEIL软件,第二步安装Proteus硬件仿真软件,然后用Proteus硬件仿真软件进行电路构建,最后进行程序调试。
1、Keil软件的安装设置:启动后,点击Project菜单新建项目。
新建项目后,选择仿真单片机型号,并新建或加入程序文件。
编写加入C语言程序后就可以对项目进行设置,进而使用Project菜单进行编译、连接和调试运行等操作。
图1-7 项目设置项目的设置包括Target菜单中的单片机振荡频率,debug菜单中的仿真方法。
MCS51单片机原理及应用实验指导书

《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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用实验指导书罗钧付丽编重庆大学光电工程学院2010年5月目录实验规则 (2实验一单片机监控程序实验(4学时 (3 附1.1:LAB2000P实验仪 (9附1.2:验证实验程序 (10附1.3:K EIL的使用步骤参考 (17实验二 A/D转换实验 (3学时 (21附2.1:验证实验程序 (24实验三 D/A转换实验 (2学时 (25附3.1:DA转换实验程序 (27实验四单片机系统综合实验( 3学时 (28附4.1:实验仪中的温度传感器电路 (30附4.2:直流电机和步进电机控制接口电路 (31实验规则为了维护正常的实验教学次序,提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则:一、实验前必须充分预习,完成指定的预习内容,预习要求如下:1.认真阅读本实验指导书,分析掌握本次实验的基本原理;2.完成各实验预习要求中指定的内容;3.明确实验任务。
二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手提问;三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障,必须及时报告指导老师,严禁私自乱动。
四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。
五、自觉保持实验室的肃静、整洁;实验结束后,必须清理实验桌,将实验设备、工具、导线按规定放好,并填写仪器设备使用记录。
六、凡有下列情况之一者,不准做实验:1.实验开始后迟到10 分钟以上者;2.实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从教育者;七、实验后,必须认真作好实验报告,在规定时间里必须交给实验指导老师,没交实验报告者,视为缺做一次实验。
实验报告要求必须包括:1.写出设计实验程序;2.总结实验步骤和实验结果;八、一次未做实验,本实验课成绩视为不及格。
以上实验规则,请同学们自觉遵守,并互相监督。
实验一单片机监控程序实验(4学时实验预习要求:1.按照附3学习使用Keil软件。
2.熟悉键盘和显示器接口及工作原理。
3.根据实验原理,读懂验证实验程序,并写出设计性实验源程序。
4.思考题:(1从附1.2监控程序可以看出:六位数码管显示的数据存放在单片机哪个位置?(2参考图1.1A与监控程序,键盘上若数字键7被按下,单片机怎样判断该键被按下?一、实验目的1.掌握8031系统中,键盘和显示器的接口方法。
2.掌握键盘扫描和LED八段码显示器的工作原理。
3.掌握对单片机IO口的控制编程。
二、实验器材PC 机一台,Lab2000P 教学实验系统一台,导线数根。
三、实验内容1.验证性实验利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在八位数码管上显示出来。
2.设计性实验用Lab2000P 教学实验系统(见附2图,P1口产生一矩形波(周期可自己设定,设计的程序加到验证实验程序中,放在单片机程序空间0280h开始位置。
程序运行时,把产生矩形波的P1口(P1.0~P1.7任意一位接到示波器,观察设计程序运行时P1口产生的波形是否正确。
四、实验原理1.实验仪器简介实验设备中Lab2000P教学实验系统是核心部件,所有实验都通过计算机处理后下载到实验箱中进行验证。
本实验系统提供了多个模块,本次实验使用的主要模块为:单片机8031模块、8255模块。
4×6键盘模块,六位LED显示模块等。
2.键盘扫描显示原理键盘与六位LED显示器连接电路图见图1.1。
(1芯片介绍74HC245:高速CMOS 型8位双向总线收发器(三态。
主要用于数据总线的同步双向通信,起总线隔离驱动作用。
74HC374:为八D 触发器集成芯片,电路中起显示驱动作用。
图1.1(A图1.1(B图1.1 键盘及LED 显示电路(2扫描键盘和LED 显示原理(1(2MC1413(2本实验仪的LED显示电路和键盘电路如图1.1(A。
显示控制的位码由芯片74374(1输出,经反向驱动后(反向驱动芯片MC1413,作为LED的位选通信号。
位选通信号也同时作为键盘列扫描码,键盘扫描的行数据从芯片74245读回单片机,74374(1输出的列扫描码经245读入后,用来判断是否有键被按下,以及按下的是什么键。
如果没有键按下,由于上拉电阻的作用,经245读回的数据位均为高,如果有键按下,74374(1输出的低电平经过按键被接到245的端口上,这样从245读回的数据就会有低位,根据74374(1输出的列信号和245读回的行信号,就可以判断哪个键被按下。
LED显示的段码由74374(2输出。
键盘和LED显示的地址译码见图1.1(B,做键盘和LED显示实验时,需将KEY/LED CS 接到相应的地址译码上。
位码输出的地址为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED CS 决定,参见地址译码。
例如将KEY/LED CS接到地址译码的CS0(如图1.2上,那么位码输出的地址就为08002H,段码输出的地址就是08004H,键盘行码读回的地址为08001H。
(3Lab2000P实验仪单片机系统138译码电路图1.2 译码电路图其中:CS0: 08000H~08FFFH CS1: 09000H~09FFFH CS2: 0A000H~0AFFFHCS3: 0B000H~0BFFFH CS4: 0C000H~0CFFFH CS5: 0D000H~0DFFFHCS6: 0E000H~0EFFFH CS7: 0F000H~0FFFFH4. 段码表和键码表(1段码表七段数码管的字符型代码表如下表:(2键码表键码表如下:KeyTable: ; 键码定义功能键:16h, 15h, 14h, 0ffh 分别对应 MON ,LAST,NEXT,RST13h, 12h, 11h, 10h 分别对应TRACE/MODE,MOVE,HERE,EXEC 数字键:0dh, 0ch, 0bh, 0ah 分别对应D,C,B,A0eh, 03h, 06h, 09h 分别对应E,3,6,90fh, 02h, 05h, 08h 分别对应F,2,5,800h, 01h, 04h, 07h 分别对应0,1,4,73. 验证实验程序流程(1主程序流程图1.3 监控实验主程序流程图(2键盘扫描子程序流程图图1.4 键盘输入子程序流程图五、实验步骤1.运行Keil软件,按照附1.3 “Keil软件使用的参考步骤”步骤1~10,建立工程、编译、链接。
2、硬件连接:(1连接片选信号,将KEY/LED CS连接到CS0即可(具体的电路原理图请参考图1.1; 8255的片选连接到CS1。
(2用串口线连接Lab2000P实验箱(右上角标有“仿真器串口”处到PC机。
用电源线连接实验箱到220V电源,开启实验箱的电源(电源开关在实验箱的左侧。
3、按照附1.3步骤11~12下载目标文件,并全速运行程序。
4、程序全速运行时,从实验箱上的键盘输入0200,再按“EXEC”键,观察实验结果。
等到最左边的数码管显示“0”时,再从键盘输入0300,然后按“EXEC”键,用示波器观察8255的PA、PB、PC口输出的波形。
或者把PA、PB、PC中的每位输出连接到实验箱中“逻辑笔”输入,观察指示灯的变化,记录实验结果。
5、开始做设计实验。
附1.1:lab2000P实验仪仿真器串口输入附1.2:验证实验程序/*监控程序:包括键盘扫描、8字循环显示、8255三个口输出方波*/OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口Ctrl_8255 equ 09003h ; 8255控制口地址PA_8255 equ 09000h ; 8255A口地址LEDBuf equ 60h ; 键盘输入数字显示缓冲LEDBuf1 equ 70h ; 六位数码管循环显示缓存LEDBuf2 equ 50h ; 键码缓存,用于跳转用ljmp StartLEDMap: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h;============================= = 延时子程序============================ Delay:mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopret;========================6位数码管轮流显示子程序======================= DisplayLED:mov r0, #020hmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopret;========================== 单片机读入键盘行的状态子程序=============== TestKey:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 输出线全置为0mov dptr, #IN ; IN =08001hmovx a, @dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07h;==========================扫描键盘子程序=========================== GetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(INmov r1, #00100000bmov r2, #6KLoop:mov a, r1 ; 找出键所在列cpl amovx @dptr, acpl arr amov r1, a ; 下一列movx a, @r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh ; 没有键按下, 返回 0ffhsjmp ExitGoon1:mov r1, a ; 按下键的键码在键码表中的位置偏移量=(列-1 X 4 + (行-1 ;从第6列开始mov a, r2dec arl arl amov r2, a ; r2 = (r2-1*4mov a, r1 ; r1中为读入的行值mov r1, #4LoopC:rrc a ; 移位找出所在行jc Exitinc r2 ; r2 = r2+ 行值djnz r1, LoopCExit:mov a, r2 ;r2中为按下键的键码在键码表中的位置偏移量mov dptr, #KeyTablemovc a, @a+dptrmov r2, a ; 取出键码WaitRelease:mov dptr, #OUTBIT ; 等键释放clr amovx @dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2ret;================查找A中存放的数所对应LED显示段码子程序============== ToLED:mov dptr, #LEDMapmovc a, @a+dptrret;===========将键码(在A中存放到LEDBuf2所指向的内部存储器单元===========ToKeyTable:mov r1,LEDBuf2mov @r1,aret;==========================初始化单片机内存子程序=====================InitLED:mov 20h, #3fhmov 21h, #0hmov 22h, #0hmov 23h, #0hmov 24h, #0hmov 25h, #0hret//////////////////////////////////////////////////////////// 主程序/////////////////////////////////////////////////////////////// Start:mov LEDBuf,#020hmov LEDBuf2,#30hcall InitLEDmov LEDBuf1+0, #0ffh ; 8字循环显示模块程序用到,0ffh为8.的段码mov LEDBuf1+1, #0ffhmov LEDBuf1+2, #0ffhmov LEDBuf1+3, #0ffhmov LEDBuf1+4, #0ffhmov LEDBuf1+5, #0ffhmov r4,#6MLoop:call DisplayLEDcall TestKey ;有键入?jz MLoop ;无键入, 继续显示call GetKey ;读入键码jb 0e4h,commkey ;如果ACC.4为1,则为命令键,转到commkey处理numkey: mov r0,a ;保存数据acall ToKeyTable ; 键码保存在LEDBuf2(初始值30h指向的单元中 mov a,r0 anl a, #0fh ;显示键码call ToLED ;查找A的段码并把段码保存在A中mov r0,LEDBufmov @r0,a ;段码保存在LEDBuf(初始值20h指向的单元中inc LEDBufinc LEDBuf2djnz r4,MLoopmov r4,#6mov LEDBuf,#020hmov LEDBuf2,#030hljmp MLoopcommkey: ;处理命令键cjne a,#13h,start ;如果按下的键不是EXEC,则转向程序开始call nextkey;==========================把dph、dpl压入堆栈子程序====================nextkey:acall pickdatapush dplpush dphret ;dph与dpl弹出堆栈赋给PC;=================================子程序==============================; ;单片机内部RAM30h-33h单元中存储的是从键盘输入的地址,用于改变PC,执行相应的程序;pickdata:mov r0,#031h ;将30H、31H 单元中的低4 位数据赋给DPHacall pickonemov dph,amov r0,#033h ;将32H、33H 单元中的4 位数据赋给DPLacall pickonemov dpl,aret;=============================取相邻内存单元低4位子程序================ ;取出r0 与r0-1所指向的单元中低4 位数据,并保存到A中,只取低4 位,键盘上输入的每位数据(0到;F最多只用到4位表示pickone:mov a,@r0anl a,#0fhmov r1,adec r0mov a,@r0swap aanl a,#0f0horl a,r1ret////////////////////////////////////六位数码管轮流显示“8”字,从左到右共循环10次//////////////////////////// org 0200hmov r0,#4clr amov r3,#10 ;循环次数,可自行设置DisplayLED1: ;轮流显示mov r0, #LEDBuf1mov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop1:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr, amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #200call Delay ; 延迟值如果设定的太大的话,就会检测不到按键mov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loop1djnz r3, DisplayLED1acall InitLED ;重新从左边显示mov r4,#6mov LEDBuf,#020hmov LEDBuf2,#030hajmp MLoop//////////////////////////////////////8255 的PA,PB,PC 口分别循环输出方波程序/////////////////////////// org 0300htestPort:mov dptr,#Ctrl_8255mov a,#80hmovx @dptr,amov a,#55hmov r3,#20 ;循环次数,可自行设置testPortA:mov dptr,#PA_8255 ;PA 口movx @dptr,ainc dptrmovx @dptr,a ;PB 口inc dptrmovx @dptr,a ;PC 口rr amov r6, #200 ;输出延时,可自行设置延时时间acall Delaydjnz r3, testPortAajmp MLoopend附1.3:Keil的使用步骤参考1、点击”ProjectÆNew Project……”,新建一个工程文件,在Creat New Project窗口中输入工程名。