求解proteus仿真

有没有人比较熟练proteus的,代做类似于下面的仿真实验:
设计一个简单的十字路口交通信号灯控制系统,间隔时间固定为45秒。东西向/南北向红绿灯轮。换要求使用8253提供定时中断信号,用8259控制中断请求,要求使用8255连接LED。

该回答引用ChatGPT
对于这个需求,可以使用Proteus设计一个简单的交通信号灯控制系统。

1、使用8253定时器来提供定时中断信号,通过设置定时器的计数值和定时方式来控制灯的间隔时间为45秒。

2、使用8259控制器来处理中断请求,通过配置8259控制器的中断优先级和中断类型来控制灯的顺序。

3、使用8255连接LED,通过控制8255的输出端口来控制灯的亮灭状态。

以上三个设备可以通过Proteus中的仿真功能来模拟它们的工作,并验证交通信号灯控制系统的正确性。

1)硬件设计:

1.1)8253:8253是一个16位定时器,用于产生定时中断信号,并设置定时时间为45秒。

1.2)8259:8259是一个8位中断控制器,用于控制中断请求,以便于接收8253发出的定时中断信号。

1.3)8255:8255是一个多功能编程接口芯片,它可以连接LED灯,并根据控制信号控制LED灯亮灭。

2)软件设计:

2.1)设置8253:首先使用8253的控制字节来控制8253的模式,然后设置定时时间为45秒。

2.2)设置8259:首先使用8259的控制字节来控制8259的模式,然后设置中断向量,以便接收8253发出的定时中断信号。

2.3)设置8255:首先使用8255的控制字节来控制8255的模式,然后根据定时中断信号控制LED灯亮灭。

我可以提供一些关于如何在 Proteus 仿真中设计简单的交通灯控制系统的信息和指导。

下面是在 Proteus 中模拟交通灯控制系统的步骤:

1.准备硬件组件:您需要选择和放置系统所需的组件,包括8253定时器、8259中断控制器、8255并行I/O、LED和开关。

2.连接元器件:按照电路图连接元器件。 例如,将 8253 定时器的输出连接到 8259 中断控制器,将 8255 并行 I/O 连接到 LED。

3.Configure the components:配置各个组件的设置,比如8253定时器的时钟频率和8259中断控制器的中断请求。

4.编写代码:用汇编语言或C语言编写程序代码来控制红绿灯系统。 该代码应处理定时中断信号、中断请求和 LED 的连接。

5.验证电路:使用Proteus仿真验证电路,确保元器件连接正确,代码功能正常。

6.测试系统:通过模拟红绿灯系统来测试系统,并验证红绿灯按正确的顺序变化,东西/南北红绿灯循环的固定间隔为 45 秒。

请注意,Proteus 仿真软件可能有不同的版本和配置,因此具体步骤和设置可能会有所不同。 建议参考 Proteus 用户手册和在线资源,了解有关如何在 Proteus 中模拟交通灯控制系统的更多信息。

首先,您需要了解Proteus是什么以及如何使用它。Proteus是一款电子仪器仿真软件,它可以帮助您设计、仿真和调试电子系统。

您可以使用Proteus中的元件库,如8253、8259和8255等,设计您的电路,并通过仿真检验电路的正确性。您可以设置模拟的时间间隔,并根据您的需求配置8253提供定时中断信号,配置8259控制中断请求,并使用8255连接LED。

如果您在进行实验过程中遇到困难,可以尝试查阅Proteus的使用手册,或寻求相关社区的帮助。

提供参考实例:基于proteus仿真的十字路口的交通灯控制系统(仿真+代码+报告),链接:https://blog.csdn.net/qq_51072601/article/details/127820367

回答不容易,望采纳

方法一

系统框架:

  1. 8253定时器:设置定时中断信号,时间间隔为45秒。

  2. 8259中断控制器:控制中断请求,接收定时中断信号,并触发中断服务程序。

  3. 8255接口控制器:用于连接LED,控制LED的显示。

  4. 中断服务程序:接收8259发出的中断请求,控制8255接口控制器,更改LED灯的显示状态。

  5. 硬件:LED灯,用于显示交通信号灯的颜色。

方法二


如下:

; 8253定时器设置
MOV AL, 0B6H ;设置8253控制字
OUT 43H, AL
MOV AL, 0FFH ;设置8253计数器0的初始值
OUT 40H, AL
MOV AL, 0FFH
OUT 41H, AL

; 8259中断控制器设置
MOV AL, 0FFH ;设置8259中断屏蔽寄存器
OUT 21H, AL
MOV AL, 0FFH ;设置8259中断请求屏蔽寄存器
OUT A1H, AL
MOV AL, 020H ;设置8259中断向量
OUT 20H, AL
MOV AL, 021H ;设置8259中断向量
OUT A0H, AL

; 8255控制器设置
MOV AL, 037H ;设置8255模式寄存器
OUT 60H, AL

; 主程序
MAIN:
MOV AL, 0FCH ;设置东西向红绿灯
OUT 61H, AL
MOV AL, 0FCH ;设置南北向红绿灯
OUT 62H, AL

; 设置定时器
MOV AL, 0B6H ;设置8253控制字
OUT 43H, AL
MOV AL, 0FFH ;设置8253计数器0的初始值
OUT 40H, AL
MOV AL, 0FFH
OUT 41H, AL

; 开启定时器
MOV AL, 036H ;设置8253控制字
OUT 43H, AL

; 开始循环
LOOP:
MOV AL, 0FCH ;设置东西向红绿灯
OUT 61H, AL
MOV AL, 0FCH ;设置南北向红绿灯
OUT 62H, AL

; 设置定时器
MOV AL, 0B6H ;设置8253控制字
OUT 43H, AL
MOV AL, 0FFH ;设置8253计数器0的初始值
OUT 40H, AL
MOV AL, 0FFH
OUT 41H, AL

; 开启定时器
MOV AL, 036H ;设置8253控制字
OUT 43H, AL

; 等待定时器中断
WAIT:
HLT
JMP WAIT

; 定时器中断处理程序
TIMER_ISR:
MOV AL, 0F3H ;设置东西向红绿灯
OUT 61H, AL
MOV AL, 0F3H ;设置南北向红绿灯
OUT 62H, AL

; 设置定时器
MOV AL, 0B6H ;设置8253控制字
OUT 43H, AL
MOV AL, 0FFH ;设置8253计数器0的初始值
OUT 40H, AL
MOV AL, 0FFH
OUT 41H, AL

; 开启定时器
MOV AL, 036H ;设置8253控制字
OUT 43H, AL

; 恢复程序
IRET

; 结束
END:
HLT

方法三


参考如下:

int main() 
{ 
    /*初始化8253*/ 
    init_8253(); 
    
    /*初始化8259*/ 
    init_8259(); 
    
    /*初始化8255*/ 
    init_8255(); 
    
    
    /*让8253向8259发送定时中断信号*/ 
    set_8253_trigger_8259(); 
    
    /*循环控制红绿灯,每45秒交替红绿灯*/ 
    for(;;) 
    { 
        /*东西向灯控制*/ 
        control_east_west(); 
        
        /*南北向灯控制*/ 
        control_north_south(); 
    } 
    return 0; 
} 


/*8253 初始化函数*/ 
void init_8253(){ 
    //初始化8253 
} 

/*8259 初始化函数*/ 
void init_8259(){ 
    //初始化8259 
} 

/*8255 初始化函数*/ 
void init_8255(){ 
    //初始化8255 
} 

/*让8253向8259发送定时中断信号*/ 
void set_8253_trigger_8259(){ 
    //让8253向8259发送定时中断信号 
} 

/*东西向灯控制*/  
void control_east_west(){ 
    //控制红绿灯方向 
} 

/*南北向灯控制*/  
void control_north_south(){ 
    //控制红绿灯方向 
}
  1. 使用Proteus设计一个简单的十字路口交通信号灯控制系统,包括8253、8259和8255。
  2. 使用8253设置定时中断信号,设置定时时间为45秒。
  3. 使用8259控制中断请求,设置中断服务程序,实现红绿灯的轮换。
  4. 使用8255连接LED,实现红绿灯的控制。
  5. 运行仿真,检查系统的正确性。
建立模拟模型:您需要在 Proteus 中选择适当的组件,如 8253、8259  8255,并在模拟中使用这些组件。

连接模型:您需要通过在 Proteus 中连接组件来实现交通信号灯控制系统的结构。

设置定时时间:您需要使用 8253 来设置 45 秒的间隔时间。

设置中断请求:您需要使用 8259 来控制中断请求,以实现交通信号灯的轮换。

连接 LED:您需要使用 8255 来连接 LED,以表示交通信号灯的状态。

进行仿真:您需要启动仿真并进行测试,以验证系统的功能是否正常。

https://wenku.baidu.com/view/4a50d1303968011ca3009161.html?fr=aladdin664466&ind=1&_wkts_=1676377308160