完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1X-cHE2mDgUQYtcmOei-TUg?pwd=8888

部分代码展示

-----------------------------------------------------------
		DOSSEG
		.MODEL	SMALL		; 设定8086汇编程序使用Small model
		.8086				; 设定采用8086汇编指令集
;-----------------------------------------------------------
;	符号定义                                               |
;-----------------------------------------------------------
;
; 8255芯片端口地址 (Port number)分配:
PortA	EQU		91H			; Port A's port number in I/O space
PortB	EQU 	93H			; Port B's port number in I/O space
PortC	EQU 	95H			; Port C's port number in I/O space
CtrlPT	EQU 	97H			; 8255 Control Register's port number in I/O space
;
Patch_Protues	EQU		IN AL, 0	;	Simulation Patch for Proteus, please ignore this line


;-----------------------------------------------------------
;	定义数据段                                             |
;-----------------------------------------------------------
		.data					; 定义数据段;

DelayShort	dw	400   			; 短延时参量	
DelayLong	dw	40000			; 长延时参量

; 显示数字
DISCHAR DB 01,02,03,04

; SEGTAB是显示字符0-F,其中有部分数据的段码有错误,请自行修正
SEGTAB  DB 3FH	; 7-Segment Tube, 共阴极类型的7段数码管示意图
		DB 06H	;
		DB 5BH	;            a a a
		DB 4FH	;         f         b
		DB 66H	;         f         b
		DB 6DH	;         f         b
		DB 7DH	;            g g g 
		DB 07H	;         e         c
		DB 7FH	;         e         c
		DB 6FH	;         e         c
        DB 77H	;            d d d     h h h
		DB 7CH	; ----------------------------------
		DB 39H	;       b7 b6 b5 b4 b3 b2 b1 b0
		DB 5EH	;       DP  g  f  e  d  c  b  a
		DB 79H	;
		DB 71H	;


;-----------------------------------------------------------
;	定义代码段                                             |
;-----------------------------------------------------------
		.code						; Code segment definition
		.startup					; 定义汇编程序执行入口点
;------------------------------------------------------------------------
		Patch_Protues				; Simulation Patch for Proteus,
									; Please ignore the above code line.
;------------------------------------------------------------------------


; Init 8255 in Mode 0
; PortA Output, PortB Output
;
		MOV AL,10001001B
		OUT CtrlPT,AL	;
;
; 把数字1、2、3、4显示在数码管上
;

AGAIN:
		IN  AX,PortC 	  ;得到C端口输入

		AND AX,0F0H
		ADD AX,5H
		OUT PortA,AX      ;选通第一、三位数码管和四位二极管
		PUSH AX
		
		MOV BX,AX         ;高四位显示在第一、三个数码管上
		MOV CL,4
		SHR BX,CL
		MOV AL,SEGTAB[BX]
		OUT PortB,AL
		CALL DELAY
		
		POP AX
		ADD AX,5H
		OUT PortA,AX     ;低四位选通第二、四位数码管	
		
		IN  AX,PortC
		AND AX,0FH
		MOV BX,AX

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐