单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 660|回复: 1
收起左侧

Proteus仿真8086 8253 8255 8259的电子时钟设计

[复制链接]
生活的美Air 发表于 2019-6-11 11:22 | 显示全部楼层 |阅读模式
0.png

1. 设计内容
在 Proteus8.6 仿真平台上,使用 8位七段数码管,设计一个电子时钟,可以显示小时,分钟,秒。
2. 设计思路
电子时钟主要由译码电路、显示模块和时钟控制模块三大部分组成。以 8086微处理器作 CPU,用 8253 做定时器, 接中断控制器 8259的 IR0,向 CPU申请中断,并用 8259A的中断服务程序完成秒、分、时的计算。其中:
(1)显示模块用并行接口 8255的 A口驱动 8位七段数码管(7SEG-MPX8-CC-BLUE)的字段,B口驱动 8位七段数码管(LED)的位控端,从左侧开始各两位分别显示:时、分、秒,中间用“-”分隔,即显示形式为:小时-分钟-秒;采用动态扫描工作方式。
(2) 时钟控制模块用定时计数器 8253 提供定时中断,使用计数器 0 和计数器 1,间隔 1s 的自动产生一次中断,中断控制器 8259提供中断服务,在中断服务程序中并完成时间信息的处理。
(3)使用 4-16译码器(74LS154)完成接口芯片地址译码。

2. 功能实现
系统使用汇编语言实现,为了简化程序设计过程,设计了几个宏,其中 OUT_PORT用于端口输出,SET_INT 用于中断向量设置;INIT_8259 用于中断控制器 8259的初始化,INIT_8253 用于定时计数器 8253 的初始化,详见 2.3 的源代码。系统程序除了初始化之外,还包括显示子程序DISPLAY,延时子程序 DELAY和中断服务程序 INT_0。
2.1 系统程序设计
系统首先完成各接口芯片的初始化,然后等待中断响应。
首先完成中断向量设置,为了方便使用,用宏实现,宏调用如下:
SET_INT 80H,INT_0
其中 INT_0 为中断服务程序,因接入 8259 的 IR0引脚,其中断向量设置为 80H。而 8259 因为单片使用,接下来只需设置 ICW1,ICW2 和 ICW4,采用边沿触发,单片,需要 ICW4,采用自动结束 方 式 , ICW1=13H,ICW2=80H , ICW4=03H, 同 样 , 采 用 宏 调 用 完 成 。 即 : INIT_8259IO2,13H,80H,03H 。
完成中断初始化之后,完成 8255 初始化,使用 A 口和B 口,方式 0,输出,故命令内容为:80H,向其控制口写入即可,控制口地址为 IO3+6。
8253 的初始化要设置计数器 0 和计数器 1,在 OUT1 自动发出周期为 1S 的方波,接 8259 的IR0,即每隔 1s产生一次中断。
0.png

完整的pdf格式文档51黑下载地址:
微机原理与接口技术-大作业报告(样例)(2).pdf (434.38 KB, 下载次数: 18)
回复

使用道具 举报

小六月 发表于 2019-6-19 22:35 | 显示全部楼层
能运行出来结果吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表