proteus仿真实训题目与要求

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.数码管显示可调数字时钟仿真电路:
仿真程序:
#include "AT89X51.H"
#include "delay.h"
#include "max7219.c"
#include "music.c"
#define uchar unsigned char
#define uint unsigned int idata
sbit ADD=P1^1;
sbit SUB=P1^0;
sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;
void showDay(void);//显示时间
void showData(void);//显示日期
void showDishi(void);//显示定时
void int_0(void);//中断0
void int_1(void);//中断1
void flash_max7219(unsigned char n);//闪一个位max7219
/****************************************************************** ***/
/* 实时时钟模块时钟芯片型号:DS1302 */
/*/
/****************************************************************** ***/
sbit T_CLK = P2^3; /*实时时钟时钟线引脚 */
sbit T_IO = P2^4; /*实时时钟数据线引脚 */
sbit T_RST = P2^5; /*实时时钟复位线引脚 */
/****************************************************************** **/
void v_RTInputByte(uchar ucDa); //往DS1302写入1Byte数据
uchar uc_RTOutputByte(void);// 从DS1302读取1Byte数据
void v_W1302(uchar ucAddr, uchar ucDa);//往DS1302写入数据
uchar uc_R1302(uchar ucAddr);//读取DS1302某地址的数据
//void v_BurstW1302T(uchar *pSecDa);//往DS1302写入时钟数据(多字节方式)
//void v_BurstR1302T(uchar *pSecDa);//读取DS1302时钟数据
//void v_BurstW1302R(uchar *pReDa);//往DS1302寄存器数写入数据(多字节方式)
//void v_BurstR1302R(uchar *pReDa);//读取DS1302寄存器数据
void v_Set1302(uchar *pSecDa) ;//设置初始时间,,输入: pSecDa: 初始时间地址。

初始时间格式为: 秒分时日月星期年
void v_Get1302(uchar ucCurtime[]) ;//读取DS1302当前时间
uchar showTime[8]={0,0,10,0,0,10,0,0};//显示的时间**********************************************全局变量
uchar setTime[2]={0,0};//定时的设定
uchar time[7]={0,0x59,0x19,0x24,0x7,0x01,0x08};//秒分时日月星期年
uchar Tmod=7;//此时的调节模式
void main()
{
delay_ms(200);
//sound();
initMAX7219();//初始化max7219
cls();//清屏max7219
//v_Get1302(& time);
//v_Set1302(& time);
EX0=1;
EX1=1;
IT1=1;//下降沿触发
IT0=1;
EA=1;//开中断
v_Get1302(& time);
showDay();
//int_1();
//int_0();
while(1)
{
v_Get1302(& time);
showDay();
if ((setTime[0]==time[2])&&(setTime[1]==time[1]))sound(); }
}
//************************************************显示时间
void showDay(void)
{
//将数据转化为显示格式
showTime[7]=time[0] & 0x0f;//个位
showTime[6]=time[0]>>4;//十位
showTime[4]=time[1] & 0x0f;
showTime[3]=time[1]>>4;
showTime[1]=time[2] & 0x0f;
showTime[0]=time[2]>>4;
showTime[2]=showTime[5]=10;
disp_88(& showTime);
}
//*************************************************显示日期void showData(void)
{
showTime[7]=time[3] & 0x0f;
showTime[6]=time[3]>>4;
showTime[4]=time[4] & 0x0f;
showTime[3]=time[4]>>4;
showTime[1]=time[6] & 0x0f;
showTime[0]=time[6]>>4;
showTime[2]=showTime[5]=10;
disp_88(& showTime);
}
//*************************************************显示定时
void showDishi(void)
{
showTime[1]=setTime[0] & 0x0f;
showTime[0]=setTime[0]>>4;
showTime[4]=setTime[1] & 0x0f;
showTime[3]=setTime[1]>>4;
showTime[6]=12;
showTime[7]=13;
showTime[2]=showTime[5]=10;
disp_88(& showTime);
}
二.函数信号发生器设计
1.设计实验任务指标:
在Proteus模拟设计采用运放(包括可用三极管)构成正弦波、三角波、方波函数信号发生器。

信号源:1.模拟信号发生源
2. V+ =12V 、V- =-12V
频率范围:150——1500Hz
输出电压:1.方波U≤14V
2.三角波U≤8V
3.正弦波U>15V
波形特性:1.方波上升时间T<30us
2.三角波非线性系数r<2%
3.正弦波非线性失真r5%
三简易电子琴电路设计
四.Proteus原理图绘制
4.1选取元件
(1)进入Proteus界面后,单击工具栏上的“新建”按钮,新建一个设计文档。

单击“保存”按钮,在弹出的对话框中的文件名框中输入“简易电子琴”,再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。

(2)单击绘图工具栏中的元件模式中的“P”按钮,弹出如图9所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“LM324”,系统
在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。

在“Results”栏中的列表项中,双击“LM324”,则可将其添加至对象选择器窗口。

图9 Proteus元件选择框
(3)按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“SWITC*”可以找到开关。

被选取的元器件都加入到ISIS对象选择器中。

如图10所示。

图10元件选择图
4.2放置元件及排版
(1)通过对象选择器窗口单击选择相应元件,在右侧图形编辑窗口中单击左键放置元件。

元件的移动:用鼠标左键按住元件拖曳。

元件的旋转:选定所需旋转元件,单击绘图工具栏左右旋转按钮完成旋转。

元件的删除:通过鼠标左键选定要删除的元件,点击键盘上的delete键即可完成对应元器件的删除。

将鼠标移至元件引脚处待出现红色方框单击鼠标左键将鼠标移至所需连接的另一元件管脚处待出现红色方框后再次单击鼠标左键完成单根导线的连接。

以此类推,按照实验原理图放置元件并布线。

引出节点:在所需引出节点导线处单击鼠标右键,移动鼠标即可在该点设置节点并引出导线。

(2)完成电路布线后,为使电路更加紧凑有逻辑性,各功能区域明显,应对相应元件或导线位置进行相应调整。

元件位置调整:单击相应元件按住鼠标左键并将元件拖曳至相应位置后放开即可。

导线间距的调整:将鼠标移至要调整导线所连接的元器件,单击该器件,相应导线及元器件将变为选定状态,将鼠标移至该导线处出现左右(上下)调节标志,按住鼠标左键拖曳相应导线到预定位置后放开,即可移动导线。

4.3模拟及仿真
电路连接无误后,根据实验要求,选定所需信号源及测试仪表,单击仿真键仿真。

示波器:在绘图栏中选择虚拟仪器菜单中的Oscilloscope(示波器)选项,将其放置到图形编辑窗口,连接相应导线至测试点。

图11示波器
图12示波器操作界面
五.Proteus电路仿真
由于Proteus具有强大的仿真功能,所以我们优先选用Proteus作为本电路图的仿真工作。

在电路原理图中,我们已经将各元件安放参数调试完毕。

下面就需要用示波器观察输出参考点波形。

我们将第一个采样点选取在振荡电路的输出端,将第二个采样点选取在总电路的输出端。

先将所有的开关打开,单击开始按钮,弹出示波器显示窗格,通过按下不同的按键改变R的值,从而改变频率进而发出不同的声音,但只能同时闭合一个开关。

观察示波器输出的波形,进行仿真结果分析。

(1)按下R12旁的开关,得到下面的波形
(2)按下R11旁的开关,得到下面的波形
1)按下R10旁的开关,得到下面的波形
2)按下R9旁的开关,得到下面的波形
3)按下R旁的开关,得到下面的波形(改变了测周期处的量度)
4)按下R7旁的开关,得到下面的波形
5)按下R6旁的开关,得到下面的波形
6)按下R旁的开关,得到下面的波形
四模拟交通灯设计
首先东西方向绿灯亮,南北方向红灯亮,同时开始倒计时20S ,在7段数码管上显示时间。

当20S 倒计时结束后,开始3S 倒计时,并且东西方向绿灯开始山水,南北方向红灯亮。

当3S 倒计时结束后再开始2S 倒计时,并且东西方向黄灯亮,南北方向还是绿灯亮。

当2S 倒计时结束后开始20S 的倒计时,此时是南北方向绿灯亮,东西方向红灯亮。

接下来就是南北方向绿灯闪烁3S ,再南北方向黄灯闪烁2S ,接着又开始循环。

相关文档
最新文档