- 使用八个按键开关,可以实现八个人同时投票,通过一位数码管显示十进制的投票数,八个led对应亮灭标志对应是否进行投票。
- 使用八个按键开关,可以实现八个人同时投票,通过二位数码管显示十六进制投票数,八个led对应亮灭标志对应是否进行投票。
总结:方案选择使用方式2,原因:由于投票具有一定私密性,通过十六进制显示,可以间接的实现匿名投票,需将十六进制投票数转换为二进制投票数,除了投票为00或者FF外,其它的投票数都对应着多个投票可能性,实现了投票加密。
;-----------------------------------------------------------
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 ; ----------------------------------