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