《单片机PROTEUS实验指导书》由会员分享,可在线阅读,更多相关《单片机PROTEUS实验指导书(22页珍藏版)》请在金锄头文库上搜索。
1、目 录实验一 I/O 口输出控制实验 . 20 实验二 I/O 口输入输出控制实验 . 24 实验三 中断程序设计练习. 34 实验四 定时器、计数器实验. 32Keil C51 集成开发环境介绍1、打开计算机,运行Keil C51 集成开发环境。图1-1 第一次启动Keil C图1-2 Keil C Vision2 操作界面Keil C 软件菜单命令非常丰富,常用的菜单命令都有对应的快捷键和快捷图标,自己 可以打开相应的菜单,熟悉各种命令。 2选择“Project”-“New Project”建立新的工程文件(注意工程文件放置的文件夹),输入 文件名,选择“保存”。图1-3 创建一个新工程图
2、1-4 为新工程命名并保存3工程保存后会弹出来一个器件选择窗口,这里需要选择单片机芯片类型。器件选择的目 的是告诉Vision2 最终使用的80C51 芯片的型号是哪一个公司的哪一个型号,因为不同型 号的51 芯片内部的资源是不同的。图1-5 器件选择窗口如果不知道自己需要使用什么型号的芯片,暂时选择“Atmel”下的“AT89C51”,然后在 接下来的窗口中,选择“是”,加载芯片基本参数。图1-6 选择AT89C51 芯片4选择“File”-“New”或者点击新文件快捷图标,会打开一个文本编辑器窗口。输入下列数 据传送的程序,然后选择“File”-“Save”,注意保存的时候给文件起名字以后
3、,加个文件 名后缀,Keil C 支持汇编语言及C 语言编程,它是依靠文件名后缀来判断文件是汇编语言 还是C 语言格式的,如果是汇编语言,后缀为“.asm”,C 语言格式的,后缀为“.c”。我们 根据实验要求选择保存为汇编语言格式或C 语言格式。注意此时程序中的一些代码和寄存 器将会自动蓝色显示,方便观察。图1-7 创建一个新文件图1-8 输入程序并保存文件5选择“Project”-“Targets,Groups,Files”,选择“Groups/Add Files”标签,首先点击下边 窗口中的“Source Group 1”,然后选择下边的“Add Files to Group”,在接下来的
4、窗口中, 首先选择你需要加入的文件的后缀名(默认是.c,我们可选择“Asm Sourcefile,即后缀为. asm”)。图1-9 准备添加一个文件进入工程项目(1)图1-10 准备添加一个文件进入工程项目(2)图1-11 选择准备添加的文件类型然后选择对应的文件,选择“Add”,然后选择“Close”,最后选择“确定”,完成文件的添加 工作。图1-11 选择准备添加的文件名称工程项目添加结束后,可以用鼠标点击工程项目窗口中的“+”,展开工程项目内部的文件, 从中可以看到添加进来的文件名称。图1-12 添加文件结束后的工程项目6然后选择“Project”-“Options for Target
5、 Target1”,对工程项目进行设置,选取其中的 “Debug”标签,选中“Use Simulator”,然后点击“确定”,就可以使用软件仿真了。图1-13 准备对工程项目进行设置图1-14 选取软件仿真模式选择“Project”-“Build target”或者直接按下F7,对文件进行编译。编译的结果会出现在 屏幕下方的输出窗口,其中会提示编译中出现的问题。如果发现问题,双击错误提示,光 标会跳到出错的源程序处等待修改,直至程序没有错误,编译才能通过。图1-15 对源程序文件编译之后的窗口7按下“CTRL+F5”,进入Debug(调试)状态,在窗口的左边会出现各个寄存器的状态 (内容)。选
6、择“View”-“Disassembly Window”,可以打开反编译窗口,其中显示了源程序 中每条指令在程序存储区中的地址以及对应的机器码。下F11 单步执行程序,观察寄存器 状态,填写下列表格中地址和有关单元的内容。图1-16 进入Debug 状态图1-17 打开反编译窗口图1-18 将窗口横向并排分割并排分割的效果打开存储器观察窗口显示数据存储器内容显示数据存储器内容显示程序存储器内容8对于查询内存地址中的数据,可双击存储器窗口中的address 后的文本框,并在其中输 入待查看的地址,如D:0030H,表示查看数据存储器中30H 单元内容,C:0030H 则表示 查看程序存储器中30
7、H 单元内容,X:2000H,表示查看外部存储器2000H单元内容。实验一 I/OI/O口输出控制实验一、实验目的 1熟悉PROTEUS单片机仿真软件的使用。 2. 熟悉Keil C51软件的使用 3掌握单片机I/O口输出的控制方法。 二、实验设备(仪器) PC 微机一台 三、实验内容 1按照Keil C51 集成开发环境的要求,建立一段程序,然后进行编译并进行软件仿真。 2输入实验例程,利用P1口作为输出控制端口,控制8位LED流水闪烁。 四、实验步骤图3.1实验线路图 1单片机I/O 接口的原理如图3.1所示。从图中可以看出,当单片机P1口某位为低电平时, 对应的LED会亮,反之熄灭。 2
8、打开Keil C51 集成开发环境,建立一个工程并输入相应程序. 3输入以下程序并进行编译、调试,观察、分析现象,说明P1 口的赋值与LED 亮灭的关 系,在空白部分填加注释。 ORG 0000H LJMP Main ORG 00F0H Main: Loop: MOV P1,#0FEH ACALL DELAY MOV P1,#0FDH ;_ ACALL DELAY ;_ MOV P1,#0FBH ACALL DELAY MOV P1,#0F7H ACALL DELAY MOV P1,#0EFH ACALL DELAY MOV P1,#0DFHACALL DELAY MOV P1,#0BFH A
9、CALL DELAY MOV P1,#07FH ACALL DELAY SJMP LOOP DELAY: MOV R1,#10 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 ;_ DJNZ R2,DEL2 DJNZ R1,DEL1 RET END 五、预习要求 1Keil C 软件的调试方法及相关硬件设置。 2预习实验例程,理解指令意义。 六、实验报告要求 1把程序和注释补充完整 2把设计的PROTEUS仿真图,写入实验报告。 3思考题:请思考并描述调试工具中单步调试、运行、步入、步出的区别。实验二 I/OI/O口输入输出控制实验
10、一、实验目的 1利用单片机的P1 口作I/O 口,掌握P1 口同时作为输入和输出的用法。 2掌握按键去抖动的方法。 3掌握条件转移指令的用法。 二、实验设备(仪器) PC 微机一台 三、实验内容 1输入实验例程,进行仿真调试完成下述功能:P1.0-P1.6作为输出,控制7位LED。P1.7 口作为输入,当P1.7按下时,P1.0-P1.6控制的LED亮;当P1.7没有按下时,P1.0-P1.6控制的 LED 灭。 四、实验步骤 1原理图如图4.2所示。P1.0P1.1P1.2MCU P1.3P1.4P1.5P1.6P1.71K200图4.2 原理图 2打开Keil C51 集成开发环境,对以下
11、程序补充并进行调试,填加注释。 ORG 0000H LJMP Main ORG 0100H Main: SETB P1.7 ;_ JB _ , SETLED ;按键没有按下时,跳转到SETLED CLRLED: MOV R0,#0FFH DJNZ R0,$ ;_ JB P1.7,SETLED CLR P1.0 CLR P1.1 CLR P1.2 ;_ CLR P1.3 CLR P1.4 CLR P1.5CLR P1.6 SJMP Main SETLED: MOV P1,_ ;令LED 熄灭 _ _ ;跳转主程序 END 五、预习要求 1例程分析补充。 2完成预习报告。 六、实验报告要求 1把程
12、序和注释补充完整 2把设计的PROTEUS仿真图,写入实验报告。 3思考题:什么是按键去抖,为什么按键程序需要进行去抖动处理,一般按 键去抖的硬件处理方法和软件处理方法分别是怎样的。实验三 中断程序设计练习一、实验目的 1学习并掌握外中断的使用。 2学习中断处理程序的编程方法。 二、实验设备 PC 微机一台 三、实验内容 1使用单脉冲作中断源,每按一次按钮,点亮的发光二极管向右移动一位 四、实验步骤 1本实验电路如下所示。1KP1.0P1.1P1.2MCU P1.3P1.4P1.5P1.6P1.7P3.32002输入以下程序并进行调试运行。 ORG 0000H LJMP START ORG 0
13、013H LJMP INTT ;INT1 入口地址 ORG 3000H START: MOV SP,#60H MOV A,#0FEH SETB IT1 ;_ MOV IE,_ ;外中断1 允许,总中断允许 MOV P1,#0FFH HERE: NOP SJMP HERE INTT: MOV P1,A RL A RETI ;_ END 五、预习要求1中断控制寄存器的定义。 2外中断的初始化过程,入口地址等相关知识。 3熟悉并分析实验例程。 4完成预习报告。 六、实验报告要求 1把程序和注释补充完整 2把设计的PROTEUS仿真图,写入实验报告。 6思考题: 单片机外中断两种触发方式的区别,各适用
14、于何种情况。实验八 定时器、计数器实验一、实验目的 1学习并掌握单片机定时器中断的使用。 2掌握定时器中断溢出时间的计算。 3了解单片机定时器各工作模式的区别。 二、实验设备(仪器) PC 微机一台 三、实验内容 连线并编制程序。使用定时器1中断,按方式1工作,将LED灯循环点亮。 1定时器/计数器的输入脉冲周期与机器周期一样,为振荡器频率的1/2。本实验中时钟频 率为12M,现要采用中断方法来实现1秒延时,要在定时器1中设置一个时间常数,使其每隔 0.05 秒产生一次中断,CPU响应中断后R0中计数值减一,令(R0)=14H,即可实现1 秒 的延时。 时间常数可按下法确定: 机器周期=12/晶振频率=12/12=1uS 定时器需设初值为X,则(216X)*1=50000uS 求出X=15536 转化为十六进制:X=3CB0H,故初始值为:TH1=3CH,TL1=B0H 2初始化程序 包括定时器初始化和中断系统初始化。主要对IP,IE,TCON,TMOD 的相应位进行正确 的设置,并将时间常数送入定时器中。由于只有定时器中断,IP不必设置。 注意一点:定时器1 初始化时建议用如下的指令: ANL TMOD,