计算机仿真综合实训.docx
《计算机仿真综合实训.docx》由会员分享,可在线阅读,更多相关《计算机仿真综合实训.docx(24页珍藏版)》请在冰点文库上搜索。
计算机仿真综合实训
1、EWB仿真------------------------------------------------------------------------------------1
(一)模拟电路仿真-----------------------------------------------------------------------------2
1)题目名称、设计任务和主要技术指标;
2)简述设计的思路及过程,重要参数的计算;
3)存在的问题及解决办法;
(2)数字电路仿真设计----------------------------------------------------------------------5
1)题目名称、设计任务和主要技术指标;
2)简述设计的思路及过程,重要参数的计算;
3)存在的问题及解决办法;
二、PROTEL99SE原理图及PCB设计-----------------------------------------------------7
1)、电路名称
2)、原理图设计
3)、PCB设计
4)、元件清单
三、PROTUES单片机仿真--------------------------------------------------------------------13
(一)密码锁-------------------------------------------------------------------------------------13
1)、设计项目名称,实现功能
2)、PROTUES仿真电路
3)、程序清单
4)、调试过程,操作方法
(二)抢答器-------------------------------------------------------------------------------------17
1)、设计项目名称,实现功能
2)、PROTUES仿真电路
3)、程序清单
4)、调试过程,操作方法
4、心得体会-------------------------------------------------------------------------------------19
五、参考文献-------------------------------------------------------------------------------------20
1、EWB仿真
(1)模拟电路仿真
1)、题目名称、设计任务和主要技术指标
设计一个放大电路,要求能将小信号放大,并且不出现失真,有适合的静态工作点,将信号按要求放大。
测量出静态工作点用示波器观察输入输出波形。
列出静态工作点的参数。
2)、简述设计的思路及过程,重要参数的计算
设计思路:
在放大电路中,最基本的要求是能够有合适的静态工作点,这样才能保证再不失真的情况下放大信号,考虑到元件老化,电源电压波动和温度等对放大电路静态工作点的影响,还要有稳定静态工作点的措施,这样当电路在长时间的工作的时候,才不会因为静态工作点不稳定而影响性能。
考虑到上述的因素,可以采用分压偏置的方法来实现。
电路图如下,RW,R1,R2用以调节静态工作点,但是必须使流过R1的电流远远大于Ib,这样才能保证在电源电压波动时大部分电流流经R1,而不是Ib,从而避免了这方面的因素对电路造成的影响,有RW,这样可以调节合适的静态工作点。
考虑到温度对电路静态工作点的影响,可以在晶体管的射级加电阻,这样当温度升高时,集电极电流增大时,射级电阻上的电压将升高,这样Ube会下降,Ib也下降,所以Ic也会降低,就是通过这样,消除了温度这个影响因素。
设计电路及各参数的值的确定如下:
1、按下图接好电路;
2、用示波器观察输入波形和输出
3、测量静态工作点;
电流
Ib
Ic
Ie
静态工作点
14.65微安
1.674毫安
1.68865毫安
4、测量电压放大倍数、输入电阻、输出电阻;
经测量β=960/56=17.14
输入电阻为Ri-=12/0.001776=6.756千欧。
输出电阻Ro=12/0.001656=7.246千欧
5、改变参数的大小,观察输出波形的变化,记录产生失真时的参数:
①、调节RW(饱和失真、截止失真)
当位于19%时产生饱和失真。
②、加大输入信号;
当输入为160毫伏时,产生截止失真。
6、改变负载电阻的大小,观察输出波形的变化,讨论放大倍数随负载RL变化规律;
未增大负载之前,波形是这样的
增大负载后,波形是这样的(100千欧)
再增大负载(1000千欧)
由上可知,波形随负载的增大而增大,随负载的减小而减小。
3)、存在的问题及解决办法
这个电路放大倍数较小,可以增大基极电流,从而增大集电极电流,这样输出电压增大,整个电路的电压放大倍数就会增加。
(2)数字电路仿真设计
1)、题目名称、设计任务和主要技术指标
①设计一自动显示剩余车位的显示牌(设车位最多99个)。
设计任务:
能够准确记录剩余车位的数量,实现对实时剩余车位的数量显示,
主要技术指标:
使用两个可逆计数器74190实现两位的计数,显示用数码管。
②用D/A转换器设计一锯齿波发生器,要求频率可调,幅值5V。
设计任务:
用D/A转换器实现输出一个锯齿波,频率必须为可调。
主要技术指标:
用计数器计数,然后将数字量转换为模拟量,这样在示波器显示上就是一个锯齿波。
2)、简述设计的思路及过程,重要参数的计算
①实现剩余车位显示,首先确定要实现的功能,因为功能是要实现剩余车位的显示,所以考虑到实际的应用还要有清零和复位的功能,用可逆计数器实现就要了解计数器的芯片引脚功能他的功真值表是这样的:
Up/DownCountertruthtable:
____________
CTEN|D/U|CLK|LOAD|ABCD|QAQBQCQDMAX/MINRCO
-----|-----|-----|------|---------|---------------------------
0|X|X|0|XXXX|ABCD1*2*
0|1|POS|1|XXXX|CountDown1*2*
0|0|POS|1|XXXX|CountUp1*2*
1|X|X|X|XXXX|Qa0Qb0Qc0Qd01*2*
-1*=duringtheUPcountMAX/MINgoesHIGHatcount9,duringtheDOWNcountMAX/MINgoesHIGHatcount0.
-2*=duringtheUPcountRCOgoesLOWatcount9,duringtheDOWNcountRCOgoesLOWatcount0.
所以依据它的真值表就可以连接电路,实现功能。
电路连接如下:
下面介绍它的使用方法:
首先在没有车时可以先复位,操作方法是将Z开关拨到上面,这样就复位了,数码管显示99,再将Z拨到下面。
这时将SPACE开关拨到下,当有车进来时,通过传感器就会使A开关产生一个脉冲,这样计数器减一,显示98,如果有车在进来就再减,如此往复。
当有车出去时,SPACE开关拨到上,车出去通过传感器产生一个脉冲使计数器加一,同样的道理,当有车再出去时,就继续加。
就是通过这样的方法计数的。
图中Z电路模块里的内容如下:
②要用D/A实现锯齿波,首先应该了解D/A转换器的工作特点,D/A转换器是实现数模转换的器件,可以将数字量转换成与之相对应的模拟量,但作为波形显示就是一个波形,要实现这么一个波形可以用计数器有规律的从小到大计数,再将计数值用D/A转换器转换成波形,这个波形就是锯齿波。
此外还要了解计数器74163的芯片引脚功能:
4-BitCountertruthtable:
_______
CLR|LOAD|ENP|ENT|CLK|ABDC|QAQBQCQDRCO
----|------|-----|-----|-----|---------|--------------------
0|X|X|X|X|XXXX|00000
1|0|0|0|POS|XXXX|ABCD*1
1|1|1|1|POS|XXXX|Count*1
1|1|1|X|X|XXXX|QA0QB0QC0QD0*1
1|1|X|1|X|XXXX|QA0QB0QC0QD0*1
-*1-RCOgoesHIGHatcount15to0.
电路连接如下:
该电路产生的锯齿波的波形如下:
要实现参考电压可调:
可以调节参考电压的连接,电路接入几伏,就是几伏的参考电压。
3)、存在的问题及解决办法
剩余车位显示电路作为简单的车位显示,一般可以实现剩余车位的计数,但是缺点是,他还要配合其他的设备来工作,比如传感器等,再有就是进来出去的时候要拨动SPACE开关,有点麻烦,解决方法是合理选用传感器,达到最佳性能的同时实现成本的最少。
锯齿波发生电路中,电路的缺点是参考电压的切换有点不方便,在电路实现时,如果精度要求高的话,不能满足要求,这时只要换位数更多的D/A就行,原理是一样的。
2、PROTEL99SE原理图及PCB设计
1)、电路名称
电路名称:
定时控制电路
2)、原理图设计
在PCB图中,按键,LED灯和蜂鸣器的封装是自己画的,三极管在原理图中也是自己画的。
去掉了外面的圈。
其它元件在原理图中的封装如下:
AT89S51:
DIP40
电阻:
AXIAL0.3
电解电容:
RB.2/.4
瓷片电容:
RAD0.1
晶振:
XTAL1
插座:
SIP2
9012:
TO-92A
发光二极管:
自定义
按键:
自定义
蜂鸣器:
自定义
经测量,各个自定义封装的元件尺寸如下:
3)、PCB设计
4)、元件清单
PartTypeDesignatorFootprintDescription
4.7KR1AXIAL0.3
10KR5AXIAL0.3
10KR3AXIAL0.3
10KR4AXIAL0.3
10uFC1RB.2/.4ElectrolyticCapacitor
12MT1XTAL1Crystal
20PC3RAD0.1Capacitor
20PC2RAD0.1Capacitor
560R2AXIAL0.3
9012Q1TO-92APNPTransistor
AT89S51U1DIP40
CON2J1SIP2Connector
LED1D1LED
3、PROTUES单片机仿真
(一)密码锁
1)、设计项目名称,实现功能
密码锁:
设置8个按键,6个按键用于设置密码(三位),一个键用于确认,密码正确显示ON(go),密码错误显示OFF(STOP),一个键用于复位;
2)、PROTUES仿真电路
3)、程序清单
;先按外部中断0的按键,然后设置3位密码,然后按外部中断1的按键,输入3位密码,然后按p3.0口的按键确定。
按题目要求只要8个按键所以上图中其它不设置密码的按键可以不要。
P1口从上到下设置的数值是0~7。
ORG0000H
LJMPMAIN
ORG0003H
LJMPKY_0;跳到外部中断0的服务程序
ORG0013H
LJMPKY_01;跳到外部中断1的服务程序
ORG0100H
MAIN:
MOVSP,#60H
SETBEA;开中断总允许
SETBEX0;开外部中断0
SETBEX1;开外部中断1
SETBIT0;设置为边缘触发方式
SETBIT1
JBP3.0,$;若没有按P3.0确定则一直等待
MOVA,30H
CJNEA,38H,Z2;若设置的密码和输入的数值不同则跳到显示OFF
MOVA,31H
CJNEA,39H,Z2
MOVA,32H
CJNEA,40H,Z2
MOVA,33H
CJNEA,41H,Z2
MOVA,34H
CJNEA,42H,Z2
MOVA,35H
CJNEA,43H,Z2
MOVA,36H
CJNEA,44H,Z2
MOVA,37H
CJNEA,45H,Z2
LJMPZ1;若密码正确则跳转到显示ON
Z2:
MOVP2,#01H;显示OFF的程序
MOVP0,#0C0H
LCALLDEL12MS
MOVP2,#02H
MOVP0,#8EH
LCALLDEL12MS
MOVP2,#04H
MOVP0,#8EH
LCALLDEL12MS
SJMPZ2;动态显示方式,所以一直循环
Z1:
MOVP2,#01H;显示ON的程序
MOVP0,#0C0H
LCALLDEL12MS
MOVP2,#02H
MOVP0,#0C8H
LCALLDEL12MS
SJMPZ1;动态显示方式,所以一直循环显示
KY_0:
MOVR5,#3;设置三位密码
KY0:
MOVP1,#0FFH;置输入方式
MOVA,P1;检测按键有没有按下
CPLA
JZKY0
ACALLDEL12MS
MOVA,P1
CPLA
JZKY0;若为扰动则继续检测,不是则判断是哪个按键按下
JNBACC.0,KEY0_1
DJNZR5,PR0;若3位密码还没输入完,则跳到按键0的服务程序
LJMPKEY_0;如果有3位密码了,则中断返回
KEY0_1:
JNBACC.1,KEY0_2
DJNZR5,PR1
LJMPKEY_0
KEY0_2:
JNBACC.2,KEY0_3
DJNZR5,PR2
LJMPKEY_0
KEY0_3:
JNBACC.3,KEY0_4
DJNZR5,PR3
LJMPKEY_0
KEY0_4:
JNBACC.4,KEY0_5
DJNZR5,PR4
LJMPKEY_0
KEY0_5:
JNBACC.5,KEY0_6
DJNZR5,PR5
LJMPKEY_0
KEY0_6:
JNBACC.6,KEY0_7
DJNZR5,PR6
LJMPKEY_0
KEY0_7:
JNBACC.7,KY0
DJNZR5,PR7
LJMPKEY_0
PR0:
MOV30H,#0;将0送到30H单元
LJMPKY0;继续检测按键
PR1:
MOV31H,#1
LJMPKY0
PR2:
MOV32H,#2
LJMPKY0
PR3:
MOV33H,#3
LJMPKY0
PR4:
MOV34H,#4
LJMPKY0
PR5:
MOV35H,#5
LJMPKY0
PR6:
MOV36H,#6
LJMPKY0
PR7:
MOV37H,#7
LJMPKY0
KEY_0:
RETI;外部中断0从这里返回
KY_01:
MOVR6,#3;输入3位密码
KY01:
MOVP1,#0FFH;置输入方式
MOVA,P1
CPLA
JZKY01
ACALLDEL12MS
MOVA,P1
CPLA
JZKY01
JNBACC.0,KEY_1
DJNZR6,PRO0;3位密码还没输入完则跳到按键0的服务程序
LJMPKEY_01;3位密码输入完则中断返回
KEY_1:
JNBACC.1,KEY_2
DJNZR6,PRO1
LJMPKEY_01
KEY_2:
JNBACC.2,KEY_3
DJNZR6,PRO2
LJMPKEY_01
KEY_3:
JNBACC.3,KEY_4
DJNZR6,PRO3
LJMPKEY_01
KEY_4:
JNBACC.4,KEY_5
DJNZR6,PRO4
LJMPKEY_01
KEY_5:
JNBACC.5,KEY_6
DJNZR6,PRO5
LJMPKEY_01
KEY_6:
JNBACC.6,KEY_7
DJNZR6,PRO6
LJMPKEY_01
KEY_7:
JNBACC.7,KY_01
DJNZR6,PRO7
LJMPKEY_01
PRO0:
MOV38H,#0;按键0的外部中断1的服务程序
LJMPKY01
PRO1:
MOV39H,#1
LJMPKY01
PRO2:
MOV40H,#2
LJMPKY01
PRO3:
MOV41H,#3
LJMPKY01
PRO4:
MOV42H,#4
LJMPKY01
PRO5:
MOV43H,#5
LJMPKY01
PRO6:
MOV44H,#6
LJMPKY01
PRO7:
MOV45H,#7
KEY_01:
RETI;外部中断1从这里返回
DEL12MS:
MOVR4,#12;延时程序
MOVTMOD,#10H
MOVTL1,#18H
MOVTH1,#0FCH
SETBTR1
LOOP:
JNBTF1,$
MOVTL1,#18H
MOVTH1,#0FCH
CLRTF1
DJNZR4,LOOP
RET
END
4)、调试过程,操作方法
先按外部中断0,然后设置3位密码,然后按外部中断1,输入3位密码,然后按p3.0确定。
(二)抢答器
1)、设计项目名称,实现功能
抢答器:
设置8个按键,一个主持人按键,一个清零按键,剩余6个作为抢答按键,通过数码管显示。
2)、PROTUES仿真电路
3)、程序清单
;操作方法:
当主持人按下外部中断0接口的按键时可以抢答,当有人率先抢到时,其他人则不能再抢答,当主持人按下外部中断1接口的按键时显示器清零。
ORG0000H
LJMPMAIN
ORG0003H;外部中断0程序入口
LJMPKY0;跳到外部中断0服务程序
ORG0013H
LJMPKY1;跳到外部中断1服务程序
ORG0100H
MAIN:
MOVSP,#60H
SETBEA;开总中断
SETBEX0;开外部中断0
SETBEX1;开外部中断1
SETBIT0;设置为边缘触发方式
SETBIT1
SJMP$;等待主持人按下按键
KY0:
MOVP1,#0FFH;外部中断0服务程序
MOVA,P1
CPLA
JZKY0
ACALLDEL12MS
MOVA,P1
CPLA
JZKY0;若为扰动则跳回去
JNBACC.0,KEY0_1;开始判断是哪个按键按下
LJMPPR0;是第0个按下则跳到服务程序
KEY0_1:
JNBACC.1,KEY0_2
LJMPPR1
KEY0_2:
JNBACC.2,KEY0_3
LJMPPR2
KEY0_3:
JNBACC.3,KEY0_4
LJMPPR3
KEY0_4:
JNBACC.4,KEY0_5
LJMPPR4
KEY0_5:
JNBACC.5,KEY0_6
LJMPPR5
KEY0_6:
JNBACC.6,KEY0_7
LJMPPR6
KEY0_7:
JNBACC.7,KY0
LJMPPR7
PR0:
MOVP0,#0C0H;按键0服务程序
LJMPKY01
PR1:
MOVP0,#0F9H
LJMPKY01
PR2:
MOVP0,#0A4H
LJMPKY01
PR3:
MOVP0,#0B0H
LJMPKY01
PR4:
MOVP0,#99H
LJMPKY01
PR5:
MOVP0,#92H
LJMPKY01
PR6:
MOVP0,#82H
LJMPKY01
PR7:
MOVP0,#0F8H
LJMPKY01
KY01:
RETI
KY1:
MOVP0,#0C0H
RETI
DEL12MS:
MOVR7,#02H;延时程序
MOVR6,#0FFH
DJNZR6,$
DJNZR7,$-4
RET
END
4)、调试过程,操作方法
操作方法:
当主持人按下外部中断0接口的按键时可以抢答,当有人率先抢到时,其他人则不能再抢答,当主持人按下外部中断1接口的按键时显示器清零。
4、心得体会
通过这个学期的电子电路仿真课,我学习到了很多的东西,首先我们学的是EWB,以前也学过用EWB来进行电路的仿真,但是由于时间关系,学的内容不是很深入,但是这个学期开了EWB仿真,我觉得不仅是对以前学过的知识的回顾,而且还学习到了很多的东西,
EWB作为一种仿真软件,应用非常广泛,他提供了丰富的元件库,而且还有各种仪器仪表,所以学习的时候,我也多多的尝试了它的各种元件的在电路中的使用方法和了解了他们的作用,体现了EWB作为一种模拟电路和数字电路混合仿真的优势,这次做了一个模拟电路和一个数字电路,也是对模拟电子技术和数字电子技术的回顾,在这次实训中积累了很多宝贵的经验,犯了很多错,但是都一一解决了,我想只要认真的做,无论什么事情,就都是可以做好的。
在这个学期,我们学的第二个仿真软件是protel,在开始接触Protel软件时,对其全英文的操作界面一