proteus实验.docx

上传人:b****6 文档编号:3100401 上传时间:2022-11-17 格式:DOCX 页数:18 大小:383.47KB
下载 相关 举报
proteus实验.docx_第1页
第1页 / 共18页
proteus实验.docx_第2页
第2页 / 共18页
proteus实验.docx_第3页
第3页 / 共18页
proteus实验.docx_第4页
第4页 / 共18页
proteus实验.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

proteus实验.docx

《proteus实验.docx》由会员分享,可在线阅读,更多相关《proteus实验.docx(18页珍藏版)》请在冰豆网上搜索。

proteus实验.docx

proteus实验

实验一proteus与单片机电路的交互式仿真与调试

1、实验目的

熟练掌握proteus集成开发环境,并掌握proteus与单片机电路进行交互式仿真与调试的方法。

2、实验设备

装有proteus的电脑一台

3、实验内容

1)设计一个基于51单片机的电路,控制P2口连接的led灯的循环亮灭。

2)在keil中编制程序,并在proteus中进行调试。

4、实验步骤

1)在proteusISIS界面中编辑电路原理图如图1.1所示。

图1.1电路原理图

2)添加仿真文件。

双击单片机AT89C51,打开其属性编辑框,在“programfile”栏中,单击打开按钮,选取后缀名为*.HEX的目标代码文件。

在“clockfrequency”栏中设置时钟频率为12MHZ。

如图1.2、1.3所示。

图1.2元件编辑对话框

图1.3添加仿真程序文件

因为仿真运行时的时钟频率是以单片机属性中设置的频率值为准,所以在proteusISIS界面中设计电路原理图时,可以略去单片机的时钟电路。

另外,复位电路也可略去。

对于MCS-51系列单片机而言,在不进行电路电气检测时,EA引脚也可悬空。

2)在proteus仿真界面中单击运行按钮,全速启动仿真。

LED灯从上往下依次亮灭,并循环交替。

如图1.4所示。

图1.4仿真运行中的电路

3)在系统全速仿真运行时,单击暂停按钮,然后单击proteusISIS界面的“Debug”菜单,利用其调试按钮进行调试。

5、参考程序

可参考单片机实验教程实验2程序。

实验二I/O输入输出应用

1、实验目的

1)掌握AT89C51单片机I/O口输入输出的应用方法;

2)掌握单片机驱动7段数码管显示数字的电路设计方法及编程方法。

2、实验设备

装有proteus的电脑一台

3、实验内容

1)利用单片机AT89C51制作一个0—99的手动计数器,用其P2.0—P2.7接一个共阴极数码管,输出显示计数器个位,用P0.0—P0.7接数码管输出显示计数值的十位数。

用P3.3引脚外接一轻触开关,要求每按一次按键,计数值加1,当计数值超过99后自动返回0重新开始循环计数。

参考电路如图2.1所示。

图2.1参考电路图

2)编程实现计数器的自动计数,利用按键实现计数暂停、复位功能。

4、实验步骤

1)在proteusISIS环境中根据电路图绘制电路。

2)在keil中建立程序文件。

并编译源程序,修改程序中的错误直至通过。

3)加载目标代码文件。

在priteus中双击AT89C51元件打开编辑元件对话框,设置单片机的频率为12MHz,并加载先前在Keil中编译产生的“.HEX”文件。

4)在proteus菜单栏中,打开“Debug”下拉菜单,选择“UseRemoteDebugMonitor”选项,以支持与Keil的联调。

5)进行调试与仿真。

仿真结果如图2.2所示。

图2.2电路仿真图

5、参考程序(实验内容1)

ORG00H

LJMPSTART

ORG30H

START:

MOVDPTR,#TABLE;设置段码表首地址

MOVR0,#00H;计数初值存R0

MOVP0,#3FH

MOVP2,#3FH;复位时数码管显示0

S1:

INCR0

CJNER0,#100,S2

MOVR0,#00H

S2:

JBP3.3,$;等待按键

LCALLDELAY;消抖动延时

JBP3.3,S2

S3:

MOVA,R0

MOVB,#10

DIVAB;分离计数值的个位和十位

MOVCA,@A+DPTR;差表求数字的七段码值

MOVP0,A

MOVA,B

MOVCA,@A+DPTR

MOVP2,A

JBP3.3,S1;等待按键抬起

LJMPS3

DELAY:

MOVR5,#20;延时10ms

D1:

MOVR6,#250

DJNZR6,$

DJNZR5,D1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H;0~9七段码值

DB6DH,7DH,07H,7FH,6FH

END

实验三8×8点阵LED显示

1、实验目的

1)掌握8×8点阵LED显示屏的使用方法;

2)掌握单片机进行拉幕式显示的编程方法。

2、实验设备

装有proteus的电脑一台

3、实验内容

1)利用单片机AT89C51、74LS245制作一个8×8点阵LED显示屏显示电路。

在LED点阵中显示一个“×”。

2)编程实现LED显示屏轮流显示0-9的数字,显示方式采用自右向左拉幕式显示。

参考电路如下。

图3.1参考电路图

4、8×8点阵LED元件介绍

由于8×8点阵LED元件引脚没有任何标注,因此在使用之前必须进行引脚测试,以确定行线和列线的顺序及极性。

图3-2给出了一种进行引脚测试的方法,根据测试结果便很容易确定该元件的电路接法。

图3-28×8点阵LED引脚测试

5、参考程序

(1)实验内容1参考单片机实验教程实验10程序。

(2)实验内容2参考程序

R_CNTEQU31H

NUMBEQU32H

TCOUNTEQU33H

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

ORG30H

START:

MOVR0,#00H;显示的幕次(即每一幕显示的行码起始序号)置0

MOVR_CNT,#00H;列码序号置0

MOVNUMB,#00H;行码序号置0

MOVTCOUNT,#00H

MOVTMOD,#01H

MOVTH0,#(65536-5000)/256;定时5ms

MOVTL0,#(65536-5000)MOD256

SETBTR0

MOVIE,#82H

SJMP$

INT_T0:

MOVTH0,#(65536-5000)/256

MOVTL0,#(65536-5000)MOD256

MOVDPTR,#TAB;取列码表首地址

MOVA,R_CNT

MOVCA,@A+DPTR

MOVP3,A

MOVDPTR,#NUB;取行码表首地址

MOVA,NUMB

MOVCA,@A+DPTR

MOVP0,A;输出行码

INCNUMB

NEXT1:

INCR_CNT

MOVA,R_CNT

CJNEA,#8,NEXT2

MOVR_CNT,#00H

MOVNUMB,R0

NEXT2:

INCTCOUNT

MOVA,TCOUNT

CJNEA,#40,NEXT4;每个数字显示200ms。

必须在TCOUNT数值是8的整数倍时再进行下面的移位操作,否则显示衔接时会乱。

MOVTCOUNT,#00H

INCR0;上一幕显示行码的起始序号+1

CJNER0,#88,NEXT3

MOVR0,#00H

NEXT3:

MOVNUMB,R0;送新一幕显示行码的起始序号

NEXT4:

RETI

TAB:

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

NUB:

DB00H,00H,00H,00H,00H,00H,00H,00H;空

DB00H,00H,3EH,41H,41H,41H,3EH,00H;0

DB00H,00H,00H,00H,21H,7FH,01H,00H;1

DB00H,00H,27H,45H,45H,45H,39H,00H;2

DB00H,00H,22H,49H,49H,49H,36H,00H;3

DB00H,00H,0CH,14H,24H,7FH,04H,00H;4

DB00H,00H,72H,51H,51H,51H,4EH,00H;5

DB00H,00H,3EH,49H,49H,49H,26H,00H;6

DB00H,00H,40H,40H,40H,4FH,70H,00H;7

DB00H,00H,36H,49H,49H,49H,36H,00H;8

DB00H,00H,32H,49H,49H,49H,3EH,00H;9

DB00H,00H,00H,00H,00H,00H,00H,00H;空

END

实验四单片机与步进电机的接口技术

1、实验目的

1)强化对步进电机工作原理的理解;

2)掌握用单片机控制步进电机时的接口电路设计方法;

3)掌握对步进电机进行控制的编程方法。

2、实验设备

装有proteus的电脑一台

3、实验内容

利用单片机AT89C51单片机控制步进电机的启/停、正转与反转。

参考电路如下。

图4.1参考电路图

4、步进电机元件介绍

Proteus软件中的单极性步进电机元件为6线制,其原理图及属性编辑框如图4.2所示,各属性值可根据需要修改。

本实验中所设置的属性值如图4-2所示。

图3-28×8点阵LED引脚测试

5、参考程序

ORG00H

AJMPSTART

ORG100H

START:

MOVDPTR,#TAB1

MOVR0,#03H

MOVR4,#0

WAIT:

MOVP1,R0;初始角度为0度

MOVP2,#0FFH

JNBP2.0,POS;判断键盘

JNBP2.1,NEG

SJMPWAIT

JUST:

JBP2.1,NEG

POS:

MOVA,R4;正转45度

MOVCA,@A+DPTR

MOVP1,A

ACALLDELAY

INCR4

AJMPKEY

NEG:

MOVR4,#6;反转45度

MOVA,R4

MOVCA,@A+DPTR

MOVP1,A

ACALLDELAY

AJMPKEY

KEY:

MOVP2,#3H;读键盘

JBP2.0,FZ1

CJNER4,#7,LOOPZ;是结束标志

MOVR4,#0FFH

LOOPZ:

INCR4;地址加1

MOVA,R4

MOVCA,@A+DPTR

MOVP1,A;输出控制脉冲

ACALLDELAY;程序延时

AJMPKEY

FZ1:

JBP2.1,KEY

CJNER4,#0H,LOOPF;是结束标志

MOVR4,#08H

LOOPF:

DECR4

MOVA,R4

MOVCA,@A+DPTR;输出控制脉冲

MOVP1,A

ACALLDELAY;程序延时

AJMPKEY

DELAY:

MOVR6,#5

DD1:

MOVR5,#80H

DD2:

MOVR7,#0

DD3:

DJNZR7,DD3

DJNZR5,DD2

DJNZR6,DD1

RET

TAB1:

DB02H,06H,04H,0CH

DB08H,09H,01H,0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1