基于8086的电子秒表

使用 8255 和 8253 等芯片设计秒表,计时精度 0.1 秒,有 3 个 独立按键(开始、暂停/继续、复位),并用 7 位数码管显示小时、 分钟、秒和 0.1 小数秒。可以使用 NMI 中断。
另外,画proteus的版本为8.6,如果用别的版本打开可能会出现故障(比如我用8.9打开就不是很好用),如果出现这种情况可以在自己的版本上重新画一个图,然后再将代码复制过去,重新运行就好了。
其中有一个原理图中有较多的注释,另一个没有太多注释,可以挑自己喜欢的来看,并且如果要在proteus中直接进行仿真编译,需要进行挂载masm32这个编译器,如果没有挂载可以生成exe文件来链接到8086中(这个方法我没有试过,具体可行性未知,喜欢探索的小伙伴可以尝试一下)。
其中原理图1的代码如下
DATA SEGMENT

seg_param db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh  ;数码管显示
buf db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h  ;存放时间
param dw 0000h       

DATA ENDS

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE, DS:DATA

START:
      ; Write your code here     
      ;8253
      mov al, 37h ;通道0,16位,方式三,BCD码
      out 4eh, al  ;写控制字

      mov al, 00h 
      out 48h, al ;写通道2低字节

      mov al, 02h ;
      out 48h, al ;写通道2高字节
      call delay
      
      ;8255
      mov ax, DATA
;省略.....

原理图2的代码如下所示

DATA SEGMENT

seg_param db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh
buf db 00h, 00h, 00h, 00h, 00h, 00h, 00h
param dw 0000h

DATA ENDS

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE, DS:DATA

START:
      
      ;8255
      mov ax, DATA
      mov ds, ax

      lea si, seg_param
      lea di, buf

      mov al, 82h  
      out 86h, al  
      call delay
      
      ;8253
      mov al, 37h 
;省略

1. 原理图

基于8086的电子秒表_第1张图片

2.完成开始功能

基于8086的电子秒表_第2张图片

3.暂停和继续功能

基于8086的电子秒表_第3张图片

基于8086的电子秒表_第4张图片

4.停止功能

基于8086的电子秒表_第5张图片

5.项目流程图

基于8086的电子秒表_第6张图片

下载链接:

其中,分为两个Word文档和两个原理图,文档1和8086(1)对应,文档2和8086(2)对应,其中8086(2)的程序我打出来了放在文件夹里面。

https://download.csdn.net/download/nbbskk/79723561

你可能感兴趣的:(项目整合,单片机,proteus)