当前位置:文档之家› 最新单片机原理实验教案参考程序

最新单片机原理实验教案参考程序

单片机原理实验教案参考程序广东松山职业技术学院《MCS-51单片机原理》实验指导书宁玉珊黄晓林使用Proteus辅助设计与仿真实训项目1 Proteus辅助设计与仿真的使用一、实训目的学习并熟练掌握PROTEUS辅助设计与仿真软件的使用。

通过使用Proteus的ISIS组件绘制AT89C51功能接口原理图,并对原理图编写程序和调试程序,观察在仿真条件下的实现功能的效果。

二、实训内容在PROTEUS仿真环境下实现一个发光二极管(LED)闪烁。

要求LED亮0.5s灭1s,并绘制原理图和编写实现程序,同时用虚拟的示波器观察硬件和软件实现的效果。

三、实训器材安装有Proteus7软件的计算机 1 台。

四、实训步骤1)在硬盘建立文件夹用来保存新建项目的所有文件。

如在D盘建立PROJECT文件夹。

2)选择‘开始→程序→Proteus7 professional→ISIS professional(或者双击桌面图标ISIS)’,进入Proteus仿真环境,如图P1_1和P1_2所示。

图P1-1图P1-23)选择菜单【File/New Design】创建一个新的设计项目,如图P1_3所示。

图P1-34)此时系统会弹出模板选择窗口,选择‘DEFAULT’点击【OK】即可,如图P1_4所示。

图P1_45)点击界面左侧工具栏中的图标,接着点击元件池上方的按钮,将要用到的元器件从系统库调到当前设计文件库中。

在弹出的Pick Devices对话框左上角的‘Keywords’文本框中键盘输入元件名(或元件的其它关键词)搜索到需要的元器件。

双击‘Results’栏下的目标元件,该元件即调出到当前设计文件库的元件列表中,如图P1_5所示。

本实训中所要用到的元件如表PS1_1所示。

图P1_5元件名称搜索关键词元件序数值备注号电阻器Resistor R1 10k电阻器Resistor R2 1k电解电容器MINELECT1U63V C1 4.7μ陶瓷电容器CERAMIC22P C2、C3 22p晶振CRYSTAL X1 12MHz单片机AT89C51 U1发光二极管 LED-YELLOW D1表PS1_1元件列表6)点击界面左侧工具栏中的图标,选择元件列表中的元件,在原理图编辑框中放置元件、布局及连线,构成原理图主体,如图P1_6所示。

放置元件、布局及连线的方法与Protel 大致相同。

X T A L 218X T A L 119A L E 30E A31P S E N 29R S T9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 1.01P 1.12P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D17P 3.6/W R 16P 3.5/T 115P 2.7/A 1528P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427U1AT89C51C122pC222pX1CRYSTALR110kC34.7uD1LED-YELLOWR21kVCCABCD图P1_67)点击ISIS 界面左侧工具栏Terminals Mode 图标,选择元件列表中的元件为整幅原理图添加地端和电源端。

电源为Power ,幅值可以默认为VCC ,地为Ground ,如图P1_7所示。

图P1_7 图P1_88)点击ISIS界面左侧工具栏Virtual Instruments Mode图标,选择元件列表中的元件为整幅原理图添加虚拟示波器,观察系统运行时P1.0口的波形。

虚拟示波器为Oscilloscopeund,如图P1_8所示。

9)选择菜单【File/Save Design】保存刚才的设计项目,如图P1_9所示。

图P1_9 图P1_10 10)此时系统会弹出保存文件的窗口,选择好指定保存文件的位置,并在文件名文本框中输文件名,点击【保存】即可,如图P1_10所示。

11)选择菜单【Soure/Add/Remove Soure Files】为CPU添加源程序。

如图P1_11所示。

图P1_1112)此时系统会弹出‘Add/Remove soure code Files’对话框窗口。

在对话框窗口的‘Code Generation Tool’列表框中选择汇编工具ASEM51。

然后点击‘New’按钮,在弹出的对话框中的‘文件名’文本框中输入源程序的文件名,点击‘打开’按钮,如文件不存在时弹出确认对话框,选择“是”即可,如图P1_12所示。

图P1_1213)选择菜单【Soure】下刚才添加的源程序,如图P1_13所示。

图P1_13 图P1_1414)此时系统会自动弹出Proteus自带汇编语言源程序编辑器‘Source Editor’窗口,在编辑器窗口中键入源程序并以后缀为ASM的文件存盘,如图P1_14所示。

参考的源程序清单如下:LED_Flag EQU p1.0 ;LED灯ORG 0000HLJMP MAINORG 0100HMAIN: SETB LED_Flag ;LED灯MOV A,#05HACALL DELAY ;延时子程序CLR LED_Flag ;LED灯MOV A,#0AHACALL DELAY ;延时子程序SJMP MAIN;===============================================;;延时子程序,基本延时100MS ;;入口数据A为100MS的倍数,出口数据无 ;;===============================================;DELAY: MOV R5,ADELAY1: MOV R6,#7ChDELAY2: MOV R7,#0C8HDJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RETEND15)选择菜单【Soure/Build all】对源程序进行编译,修正语法错误直至完全正确为止,如图P1_15所示。

图P1_15 图P1_16 16)双击原理图编辑窗口中的AT89C51,系统会弹出‘Edit Component’对话框。

在弹出‘Edit Component’对话框中向CPU加载源运行程序。

点击‘Program File’文本框右侧打开文件夹图标,双击刚才编译生成的HEX文件,点击‘OK’即可,如图P1_16所示。

17)CPU运行程序加载完毕之后,点击仿真控制按钮的“▶”按钮或选择菜单命令【Debug/Execute】全速运行仿真。

观察仿真功能实现的效果。

点击仿真控制按钮的“‖”按钮暂停仿真,此时可以观测程序运行中间结果,再次按下此按钮则继续全速运行仿真。

停止运行仿真则点击仿真控制按钮的“■”按钮。

18)在全速运行仿真的过程中,通过点击仿真控制按钮的“‖”按钮暂停仿真,选择菜单命令【Debug/8051 CPU/Registers或SFR Memory或Internal(IDATA) Memory】观测CPU内部的工作寄存器、特使功能寄存器和数据存储器的值,如图P1_17所示。

图P1_17实训项目2 基本输入/输出(I/O)接口的使用一、实训目的掌握MSC51单片机P口简单使用。

二、实训内容利用拨动开关的开关信息输入P3口控制点亮发光二极管由P0口作为信息的输出。

三、实训器材安装有Proteus7软件的计算机 1 台。

四、实训步骤1)在Proteus仿真环境下,绘制实现功能的原理图,原理图如图P2_1所示。

本实训中所要用到的元件如表PS2_1所示。

图 P2_1表 PS2_12)编写程序。

程序实现的功能为:由P3.0~P3.2来表示二进制数(通过拨动开关),指示相应的由P1.0~P1.7连接的发光二极管亮。

3)编写程序。

程序在实现上述功能的基础上,实现原亮的发光二极管变为闪烁。

4)在编写程序。

程序实现的功能为:利用查表让走马灯(用接在P1口的8个发光二极管模拟)从两边到中间循环点亮。

七、参考程序清单:1)程序1:CY_Flag EQU PSW.7 ;进位标志ORG 0000HLJMP MAINORG 0100HMAIN: CLR AMOV P0,AMAIN1: MOV A,P3ANL A,#07HINC AMOV R3,ASETB CY_Flag ;进位标志CLR ALOOP: RLC ADJNZ R3,LOOPMOV P0,ASJMP MAIN1END2)程序2:CY_Flag EQU PSW.7 ;进位标志ORG 0000HLJMP MAINORG 0100HMAIN: CLR AMOV P0,AMAIN1: MOV A,P3ANL A,#07HINC AMOV R2,ACLR ASETB CY_Flag ;进位标志LOOP: RLC ADJNZ R2,LOOPMOV P0,AMOV A,#05HACALL DELAY ;延时子程序MOV P0,#00HMOV A,#05HACALL DELAY ;延时子程序SJMP MAIN1;===============================================; ;延时子程序,基本延时100MS ; ;入口数据A为100MS的倍数,出口数据无 ; ;===============================================; DELAY: MOV R5,ADELAY1: MOV R6,#100DELAY2: MOV R7,#63HDJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RETEND3)程序3:LP_VALUE EQU 04H ;取表值次数DL_VALUE EQU 0AH ;延时长度ORG 0000HLJMP MAINORG 0100HMAIN: CLR AMOV DPTR,#TABLOOP: MOV R3,AMOVC A,@A+DPTRMOV P0,AMOV A,#DL_VALUE ;延时长度ACALL DELAY ;延时子程序MOV A,R3INC ACJNE A,#LP_VALUE,LOOPSJMP MAIN;===============================================;;延时子程序,基本延时100MS ;;入口数据A为100MS的倍数,出口数据无 ;;===============================================;DELAY: MOV R5,ADELAY1: MOV R6,#200DELAY2: MOV R7,#0F8HDJNZ R7,$DJNZ R6,DELAY2DJNZ R5,DELAY1RETTAB: DB 81H,42H,24H,18HEND实训项目3 中断系统(定时/计数器)的使用一、实训目的熟悉8051定时/计数器的功能,掌握定时/计数器的使用方法,初步掌握中断服务程序的调试方法和广告彩灯的控制原理二、实训内容利用8051定时/计数器的功能实现如下功能:对外部脉冲记数和控制广告彩灯显示。

相关主题