文章目录
题目要求
实现一个数码管显示时钟的仿真程序,要求绘制仿真图和编制程序。
要求显示时分秒,走时比较准确,例如 18-21-36。
思路
👉设计一个电子时钟,首先要有时钟控制电路,其次要能显示出时钟。
1️⃣ CPU选用8086(没得选,学的就是这个芯片),用来响应时钟信号并控制数码管显示。
2️⃣ 时钟脉冲由定时器8253产生,时钟用8位七段数码管显示。
3️⃣ 由于输入/输出设备必须通过I/O接口才能接到系统总路线上和主机进行信息交互,因此还要加 8255A 做并行接口,用 74LS373 做地址锁存,74LS138 做地址译码。
效果演示🔥
原理图和程序文件下载🔥
源程序直接跳转:
【微机原理大作业】从0开始设计RTC电子钟系统(三)(含完整源码和仿真图及下载地址)
下面进入正题
proteus主要仿真元件
1.8086 CPU
⭐️8086共有16条数据总线和20条地址总线。由于这次我们设计的系统是单机系统,所以8086的工作模式为最小模式。
2.可编程定时器8253A
(1)8253A有3个可独立工作的16位定时/计数器,每个计数器通道均有6种工作方式。
8253A在不同方式下的工作特点:
(2)8253A编程:上电之后,通过CPU向8253的控制寄存器写入控制字,可以选择计数器通道,确定8253A的工作方式。
8253A控制字:
(3)GATE端控制计数器的启停。若GATE信号高电平触发通道后计数器才开始工作,则为软件启动;若GATE信号上升沿触发通道后计数器才开始工作,则为硬件启动。
(4)外电路的脉冲信号通过CLK信号线进入通道,如果GATE有效,使CLK上的脉冲信号进入计数器计数,8253A计数器工作在减1状态,每输入一个计数脉冲,计数器值减1.当计数到0时,OUT信号有效通知外设计数器产生溢出。在通道工作过程中,CPU可以随时通过对端口的读/写,读取计数器的数据。
8253A与系统连接示意图:
(5)8253A信号线:
数据总线DB:编号为D0~D7,用于8253A与CPU传送8位数据。
地址总线AB:编号为A0~A1,用于选择定时/计数器0、1、2与控制寄存器。
控制总线CB:片选信号、写信号、读信号。当CPU要对8253A进行读、写操作时,必须先向8253A发送片选信号选中8253A芯片,然后发送读信号或写信号对8253A进行读或写数据的操作。
⭐️本次设计要用到两个计数器通道,选用通道0作为分频,通道1产生1Hz信号。通道0作为分频,选择工作方式2,输入1MHz信号,经过1000分频,产生1kHz信号,作为通道1的输入。通道1选择工作方式3,输出方波信号,稳定显示时钟,并产生不可屏蔽中断的中断申请信号。
3.可编程并行接口8255A
(1)8255A有3个独立的8位并行输入/输出端口,3种工作方式。
方式0――基本输入/输出(A,B,C口均有),主要工作在无条件的输入/输出方式下,不需要“联络”信号;
方式1――选通输入/输出(A,B口具有),主要工作在异步或条件传输方式;
方式2――双向传输(A口具有),即在同一端口内分时进行输入/输出操作。
(2)8255A编程:用户在使用8255A前,可以通过写入控制字来定义端口的工作方式,选择所需要的功能。8253A控制字包括工作方式控制字和对PC口的按位操作控制字。
8255A控制字:
8255与系统的连接示意图:
(3)8255A信号线:
数据总线DB:编号为D0~D7,用于8255A与CPU传送8位数据。
地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。
控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255A进行读、写操作时,必须先向8255A发送片选信号选中8255A芯片,然后发送读信号或写信号对8255A进行读或写数据的操作。
⭐️本次设计要用到PA和PB口,工作方式均选择方式0,作为输出。
4.7SEG-MPX8-CC
(1)7SEG-MPX8-CC是共阴极数码管显示器。显示器的A、B、C、D、E、F、G、DP是数码管显示器的I/O口,是段选信号;显示器的1、2、3、4、5、6、7、8是它的位选信号,即从左到右8位显示字符。段码线控制显示的字型,位选线控制该显示位的亮或暗。
(2)数码管显示器有静态显示和动态显示两种方式。静态方式即每位的段选线分别与一个8位锁存器的输出口相连,静态方式编程容易,但占用I/O线资源较多;动态方式即将所有位的段选线并联在一起,由一个8位I/O口控制。
⭐️由于本次设计显示位数比较多,所以选择动态显示方式,将段选信号接到8255A的PA口,位选信号接到8255A的PB口,从左侧开始各两位分别显示:时、分、秒,中间用 “-” 分隔,即显示形式为:小时-分钟-秒。