导航:首页 > 装置知识 > 微机原理倒计时显示装置设计

微机原理倒计时显示装置设计

发布时间:2023-04-12 11:40:08

㈠ 微机原理中倒计时秒表的程序中的IRE报错怎么解决

电子秒表的设计

一、设计要求
利用8253A,用实验箱上的数码管模拟一个秒表,要求具有一般秒表的功能。
二、设计内容
1、能显示实时时间(时间可用实验箱上的按键进行调整)。时间值的变化可采用查询8253A的计数器值来进行计算。
2、按“1”键时,进入秒表准备状态,再按“1”键开始秒表计时(计时单位为1/100秒),再按“1”键时停止秒表计时。秒表计时的时间在数码管上显示。
3、按“2”键退出秒表计时状态,显示实时时间。

㈡ 微机原理与接口技术的实验报告怎么写

微雀裤机接口课程设计实验报告
一、实验目的:
1. 掌握综合使用基本输入设备,通用接口顷猜简芯片,专用接口芯片的方法;
2. 熟悉并行接口芯片8255的使用与硬件接口方法, 熟悉8255的各种工作方式,掌握8255的编程方法;
3. 掌握实时处理程序的编制和调试方法;
二、设计兆陆要求:
用实验仪器上的并行接口控制键盘和LED显示,设计一个定时显示装置,用四个数码管显示时间(左边两位显示分值,右边两位秒值).
用小键盘控制计时和显示:
C键(清除) 显示00-00
G键(启动) 显示XX-XX变化的分、秒。
S键(停止) 显示XX-XX不变
P键(设置初始值)设置分、秒的初值
E键(终止程序) 熄灭数码管,程序退出

㈢ 微机原理与接口技术课程设计 题目:象棋比赛计时表设计

你也说了,24小时时钟
肯定12:00 12:00朋友
房东问时24分是24分或0:00,
很负责扒猛任地告诉你

晚上12点,因塌此大为24进制,至少有24到下一个入口,其余的应该是
像团竖全小数已经进入到10 10 110,位0个朋友...

㈣ 电子钟课程设计(微机原理)急需!!!!

电子闹钟接线图
设计原理:

计时功能:
用到的8254的功能只是相当于一个分频计,输入一定频率的缓庆脉冲信号使每隔一秒就会在OUT0端产生0到1的跃变,作为中断IRQ的请求信号。由于秒、分的进制形式不同,可通过中断程序控制,由此完成计时功能。
显示功能:
可以用四位二进制码分别对应表示X4X3X2X1的逻辑值(1--高电平,0--低电平),实现时钟的显示功能。具体操作:首先将秒的个位数据通过8255的B端口送给数码管,同时将二进制码“0111”通过8255的A端口送给小键盘X4X3X2X1,这样通过计算机的扫描后,就会在数码管4上显示秒的个位值;接着将秒的十位数据送给数码管,同时将二进制码“1011”送给小键盘X4X3X2X1,这样就会在数码管3上显示相应的数值;同样的道理,分别将分的个位、十位送给数码管,“1101” 、“1110”送给小键盘X4X3X2X1,就会依次在数码管2、1上显示分的个位、十位数值。特别注意分秒的间隔点,由于数码管共阴极,将数码二进制最高位置1,其他为置0即可。
按键功能:
由于X1,X2,X3,X4低电平显示相应的数码管,利用读回的Y1,Y2逻辑值辨别究竟按下哪个键,并通过相应的编程来完成不同键的按键功能。
(1)1键清除功能的设置:
在判别了按键的逻辑值为01110后,将存储时间的每一个内存单元赋0,这样在数码管显示的就是00.00,便达到了清除功能的目的。
(2)2键启动、3键停止计时功能的设置:
在进行2键和3键功能设置之前,我们必须定义一个暂停标志位:PAUSE,它用标准的逻辑值(0、1)来表示,假如PAUSE=0,在进行计时设置的时候,让其自动加1,依次显示时间的各位;假如PAUSE=1,我们就将其返回,停止加1,即暂停计时。
接着,假如我们判别的是2键被按下,就令PAUSE=0,让计数器计时,自动加1;假如我们按下的是3键,就令PAUSE=1,让计数器暂停计时,即停止加1。
(3)4键终止程序功能的设置:
从上面的分析,我们已经知道,只有同时将对应键盘X列的低电平送到相应的数码管才会使得数码管亮,所以我们在判别了是4键被按下后,只要将键盘对应的二进制码全部赋高电平,并送到数码管,同时结束程序,就可以实现熄灭数码管、退出程序的功能。
(4)5键重置初始值功能的设置:
在这里我们设置了两个标志位:调整位标志ADJUST和闪烁标志FLASH。它们的具体设置如下:
ADJUST初始设置为00H,表示非调整状态,01H表示调整秒的个位,02H表示调整秒的十位,03H表示调整分的个位,04H表示调整分的十位。
FLASH设置为逻辑值,初始设置为00H,表示非闪烁状态,0FFH表示闪烁,其闪烁功能实现的过程为:假如FLASH=0FFH,则将00H送给数码管,让数码管不显示。然后,在中断计时程序里面,加入FLASH取反语句,由于计时程序每秒加1循环一次,这样FLASH也实现了每秒改变逻辑值一次。也就是说,数码管闪烁的周期是1秒。当然,闪烁标志位只是在有对应位需要调整的时候才用的着。
要雀握实现5键设置初始时间的功能,我们就必须增加一个键(6键)来控制时间的增加。
(5)6键时间位加1功能的设置
这里,我们再引进一个标志位:按键标志KEYMARK。其设置为逻辑值,初始设置为0,表示允许响应此次按键,并在响应过后,将其置1;KEMARK为1时,表示不响应此次按键。之所以要设置此标志位,是因为键盘扫描的速度非常扰岁握快,假如我按下6键需要调整时间加1,我按下的时间再怎么短,计算机一定已经扫描了无数次,这样一来,我只按了一次,时间位就会响应无数次,实现了无数次的加1,从而无法实现6键的功能。

汇编源程序:
INTCSR_BYTE0 EQU 9438H
INTCSR_BYTE1 EQU 9439H
INTCSR_BYTE2 EQU 943AH
INTCSR_BYTE3 EQU 943BH
IMB4_BYTE3 EQU 941FH
MY8254_COUNT0 EQU 9C40H
MY8254_COUNT1 EQU 9C41H
MY8254_COUNT2 EQU 9C42H
MY8254_MODE EQU 9C43H

MY8255_A EQU 9C60H
MY8255_B EQU 9C61H
MY8255_C EQU 9C62H
MY8255_MODE EQU 9C63H
IRQ EQU 01C8H
DATA SEGMENT
CSBAK DW ?
IPBAK DW ?
MKBAK DB ?
ADJUST DB 00H ;调整位标志
FLASH DB 00H ;闪烁标志位
PAUSE DB 0B ;暂停标志位
KEYMARK DB 0B ;按键标志位
INKEY DB 00H ;按键
SECONDA DB 00H ;秒个位
SECONDB DB 00H ;秒十位
MINUTEA DB 00H ;分个位
MINUTEB DB 00H ;分十位
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管0-9的编码
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
CLI
MOV AX,DATA
MOV DS,AX
MOV DX,INTCSR_BYTE0
MOV AL,00H
OUT DX,AL
MOV DX,INTCSR_BYTE1
MOV AL,1FH
OUT DX,AL
MOV DX,INTCSR_BYTE2
MOV AL,3FH
OUT DX,AL
MOV DX,INTCSR_BYTE3
MOV AL,00H
OUT DX,AL

MOV AX,0000H
MOV ES,AX
MOV DI,01ccH ;保存系统中断矢量
MOV AX,ES:[DI]
MOV IPBAK,AX
MOV AX,OFFSET MYINT
CLD
STOSW
MOV AX,ES:[DI]
MOV CSBAK,AX
MOV AX,SEG MYINT ;设置中断矢量
STOSW
IN AL,0A1H
MOV MKBAK,AL
AND AL,0F7H
OUT 0A1H,AL
STI ;开中断
MOV DX,MY8254_MODE ;8254初始化
MOV AL,15H ; 00010101:计数器0,只读低八位,方式2分频器,十进制
OUT DX,AL
MOV DX,MY8254_COUNT0
MOV AL,0
OUT DX,AL
MOV DX,MY8255_MODE ;8255初始化
MOV AL,81H ;10000001:A口:方式0,输出,B口:方式 0 ,
;输出,C口:低四位输入,高四位输出
OUT DX,AL

A1: NOP ;等待
MOV CX,32H
A2: MOV DX, MY8255_B
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET LED
MOV AL,SECONDA
XLAT LED
CMP ADJUST,01H ;是否调整秒的个位
JNE DIS_SECONDA
CMP FLASH,0FFH ;是否闪烁
JNE DIS_SECONDA
AND AL,00H ;熄灭数码管(若FLASH=1)
DIS_SECONDA: ;显示秒的个位
OUT DX, AL
MOV DX,MY8255_A
MOV AL,0111B
OUT DX,AL
CALL KEYCTR ;调用按键处理程序
CALL DELAY ;调用延迟程序

MOV DX,MY8255_B
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET LED
MOV AL,SECONDB
XLAT LED
CMP ADJUST,02H ;是否调整秒的十位
JNE DIS_SECONDB
CMP FLASH,0FFH
JNE DIS_SECONDB
AND AL,00H
DIS_SECONDB: ;显示秒的十位
OUT DX,AL
MOV DX,MY8255_A
MOV AL,1011B
OUT DX,AL
CALL KEYCTR
CALL DELAY

MOV DX,MY8255_B
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET LED
MOV AL,MINUTEA
XLAT LED
CMP ADJUST,03H ;是否调整分的个位
JNE DIS_MINUTEA
CMP FLASH,0FFH
JNE DIS_MINUTEA
AND AL,00H
DIS_MINUTEA: ;显示分的个位
ADD AL,80H ;显示XX.XX中的点“.”
OUT DX,AL
MOV DX,MY8255_A
MOV AL,1101B
OUT DX,AL
CALL KEYCTR
CALL DELAY
MOV DX,MY8255_B
MOV AX,DATA
MOV DS,AX
MOV BX , OFFSET LED
MOV AL, MINUTEB
XLAT LED
CMP ADJUST,04H ;是否调整分的十位
JNE DIS_MINUTEB
CMP FLASH,0FFH
JNE DIS_MINUTEB
AND AL,00H
DIS_MINUTEB: ;显示分的十位
OUT DX,AL
MOV DX,MY8255_A
MOV AL , 1110B
OUT DX,AL
CALL KEYCTR
CALL DELAY
LOOP SK1
JMP SK2
SK1: JMP A2
SK2: JMP A1
MYINT: PUSH DS
PUSH AX
PUSH DX
MOV DX,IMB4_BYTE3
IN AL,DX
MOV DX,INTCSR_BYTE2
MOV AL,3FH
OUT DX,AL
;清8259中断标志
MOV AL,63H ;根据中断号修改
OUT 0A0H,AL
MOV AL,62H
OUT 20H,AL
MOV AX,DATA
MOV DS,AX
NOT FLASH ;中断处理程序
MOV KEYMARK,0B
CMP PAUSE,0B
JNE L1
INC SECONDA
CMP SECONDA,0AH
JC L1
MOV SECONDA,00H
INC SECONDB
CMP SECONDB,06H
JC L1
MOV SECONDB,00H
INC MINUTEA
CMP MINUTEA,0AH
JC L1
INC MINUTEB
MOV MINUTEA,00H
CMP MINUTEB,06H
JC L1
MOV MINUTEB,00H
L1: POP DS
POP AX
POP DX
IRET
KEYCTR PROC NEAR
MOV INKEY,AL
MOV DX,MY8255_C
IN AL,DX
AND AL,03H ;高六位清零
CMP AL,10B ;是否按下Y1行
JNE INY2
ADD INKEY,00H
JMP JUDGKEY
INY2: CMP AL,01B ;是否按下Y2行
JNE SKIP
ADD INKEY,10000B
JUDGKEY:
CMP INKEY,01110B ;是否按下1键
JNE KEY2
AND SECONDA,00H ;时间位清零
AND SECONDB,00H
AND MINUTEA,00H
AND MINUTEB,00H
SKIP: JMP BACK
KEY2: CMP INKEY,01101B ;是否按下2键
JNE KEY3
AND PAUSE,0B ;启动计时
JMP BACK
KEY3: CMP INKEY,01011B ;是否按下3键
JNE KEY4
MOV PAUSE,1B ;暂停计时
JMP BACK
KEY4: CMP INKEY,00111B ;是否按下4键
JNE KEY5
MOV DX,MY8255_A
MOV AL,0FFH ;熄灭数码管,程序退出
OUT DX,AL
CALL DELAY
MOV AX,4C00H
INT 21H
JMP BACK
KEY5: CMP INKEY,11110B ;是否按下5键
JNE KEY6
CMP KEYMARK,0B
JNE KEY6
MOV KEYMARK,1B
MOV PAUSE,1B
CMP ADJUST,04H ;是否已调整完分的十位
JE TL
INC ADJUST
JMP BACK
TL: AND ADJUST,00H
JMP BACK
KEY6: CMP INKEY,11101B ;是否按下6键
JNE BACK
CMP KEYMARK,0B
JNE BACK
MOV KEYMARK,1B
CMP ADJUST,01H ;是否调整秒的个位
JNE AD1
INC SECONDA ;秒的个位加1
CALL OUTCLEAR ;判断溢出
JMP BACK
AD1: CMP ADJUST,02H ;是否调整秒的十位
JNE AD2
INC SECONDB
CALL OUTCLEAR
JMP BACK
AD2: CMP ADJUST,03H ;是否调整分的个位
JNE AD3
INC MINUTEA
CALL OUTCLEAR
JMP BACK
AD3: CMP ADJUST,04H ;是否调整分的十位
JNE BACK
INC MINUTEB
CALL OUTCLEAR
BACK: RET
KEYCTR ENDP
OUTCLEAR PROC NEAR ;溢出清零程序
CMP SECONDA,0AH
JC Q1
AND SECONDA,00H
Q1: CMP SECONDB,06H
JC Q2
AND SECONDB,00H
Q2: CMP MINUTEA,0AH
JC Q3
AND MINUTEA,00H
Q3: CMP MINUTEB,06H
JC Q4
AND MINUTEB,00H
Q4: RET
OUTCLEAR ENDP
DELAY: PUSH CX ;延迟程序
MOV CX,1111H
DXMS: LOOP DXMS
POP CX
RET
CODE ENDS
END START

㈤ 微机原理与接口课程设计倒计时器

你可以让8253计秒产生中断,然后将倒计时时间在中断里减1。倒计时时间可以是时、分、秒,秒到0后再减就将分钟减1,秒变59等。
主程序显示是循环的,就是不断去读取那个倒计时时间,并显示。

㈥ 微机原理与接口技术课程设计之数字显示倒计时器

DATAS SEGMENT
sec db 24 ;倒数的秒数,可以随意更改
osec db 0
startmsg db "Counting down .... press [p] to puase, [c] to continue, [s] to stop",13,10,"$"
timesup db 13,10,"Times up!"
endmsg db 13,10,"Thanks for using, bye~$"
secStr db 6 p ("$")
curpg db 0
ispause db 0
x db 0
y db 0
DATAS ENDS

STACKS SEGMENT
db 64 p(?)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
push ax
push bx
push cx
push dx

MOV AX,DATAS
MOV DS,AX

lea dx,startmsg
call puts

;读取时间
mov ah,2ch
int 21h
mov osec,dh ;记下秒数
call getxy ;取得游标的位置

;倒数,显示倒数,查键盘。
;倒数的原理就是 osec 和现在秒数的对比得出
timer:
mov ah,2ch
int 21h
mov ah,6 ;检查键盘
mov dl,0ffh
int 21h
cmp al,"s" ;终止程式
jz done
cmp al,"p" ;暂停程式
jz pause
cmp al,"c" ;继续程式
jz continue
cmp ispause,0
jg timer
cmp osec,dh ;检查秒数的变化
jnz interval
jmp timer
interval:
mov osec,dh ;更新秒数
dec sec
call showcountdown ;显示倒数秒数(sec)
cmp sec,0
jg timer
lea dx,timesup
call puts
jmp done

pause:
mov ispause,1
jmp timer

continue:
mov ispause,0
jmp timer

puts:
mov ah,9
int 21h
ret

showcountdown:
call setxy ;保持显示倒数的位置
xor ax,ax
xor dx,dx
mov al,sec
cbw
mov bl,10
div bl
add al,"0"
add ah,"0"
lea bx,secStr
mov byte ptr[bx],al
mov byte ptr [bx+1],ah
mov dx,bx
call puts
ret

;读取游标的位置
getxy:
mov ah,3
int 10h
mov x,dl
mov y,dh
mov curpg,bh
ret

;设置游标的位置
setxy:
mov ah,2
mov bh,curpg
mov dl,x
mov dh,y
int 10h
ret

done:
pop dx
pop cx
pop bx
pop ax
MOV AH,4CH
INT 21H
CODES ENDS
END START

㈦ 微机原理与接口技术8254的设计题

微机原理与接口技术课程设计

课程尺液设计题目:

温度州困纯控制册咐系统

㈧ 微机原理课程设计:通过使用软件延时,编写一个程序,在屏幕上依次显示9、8、7。。。1、0十个数字。。。

CODESEGMENT
ASSUMECS:CODE
START:
MOVCX,3;设外循环3次
@0:
PUSHCX
MOVCX,10;设内循环10次
@1:
MOVAH,2
MOVDX,CX
DECDX;将内循环变量减一后输出
ORDL,30H
神纯指INT21H
MOVAX,18;延时18个单位,约等于1秒
CALLDELAY_PROC
LOOP@1
CALLLFCR;换行回车
POPCX
LOOP@0
MOVAH,4CH
INT21H

LFCR:PUSHAX
PUSHDX
MOVAH,2
MOVDL,13
INT21H
MOVDL,10
INT21H
POPDX
POPAX
游配RET

;===============================================================
DELAY_PROCPROC裤好NEAR;延迟子程式,延迟ax/18秒
PUSHES
PUSHDX
MOVDX,40H
MOVES,DX
MOVDX,ES:[006CH];取系统1/18秒计数
ADDDX,AX;延时x/18
DELAY10:
CMPES:[006CH],DX;时限到了?
JBEDELAY10;没
POPDX
POPES
RET
DELAY_PROCENDP
;============================================================
CODEENDS
ENDSTART

㈨ 求教各位微机原理大师!!一个抢答器实验!!!

data segment
CountDown = 5;倒计时的秒饥郑数,也是抢答时间上限,不要超过9秒
msgCD db 'CountDown','$'
msgU db 'User '
Uid db ?
db '档耐: '
Time db ?,'.',?,?,' Seconds.$'
UKey db 'qzpm';按键ASCII码
UCount = ($-UKey);抢答人数
msg db 'Press Any key to Exit!$'
msg1 db 'No one Press!$'
StartTC dw ?,? ;抢答开始时钟计数
EndTC dw ?,? ;抢答结束时钟计数

data ends

PRTSTR MACRO X;输出字符串
LEA DX,X
MOV AH,09H
INT 21H
ENDM

SETXY MACRO X,Y;设置光标位置,X=行,Y=列
XOR BH,BH
MOV AH,02H
MOV DH,X
MOV DL,Y
INT 10H
ENDM

code segment
assume cs:code,ds:data
DELAY PROC far;延时一秒
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,02H
INT 1AH
MOV BL,DH
D_P:MOV AH,02H
INT 1AH
CMP BL,DH
JZ D_P
POP DX
POP CX
POP BX
POP AX
RET
DELAY ENDP

start:
mov ax,data
mov ds,ax

;设置80×25黑白字符显示模式
MOV AH,00H
MOV AL,02H
INT 10H

SETXY 12,35
PRTSTR msgCD;屏幕中间显示CountDown

;倒计时开始烂蠢颂
xor cx,cx
mov cl,CountDown
@@:
SETXY 13,40
mov dl,cl
add dl,30h
mov ah,02h
int 21h;显示倒计时秒数
call DELAY;延时一秒
loop @B

SETXY 13,40
mov dl,cl
add dl,30h
mov ah,02h
int 21h

;抢答计时开始
mov ah,0
int 1ah ;cx:dx=获得自午夜以来的时钟计数,每秒18.2次.
mov StartTC,dx
mov StartTC+2,cx;保存抢答开始时钟计数

mov bx,CountDown*91/5;CountDown秒所经过的时钟数
add dx,bx
adc cx,0
mov EndTC,dx
mov EndTC+2,cx ;计算并保存抢答结束计数

L_again:
mov ah,06h
mov dl,0ffh
int 21h
or al,al
jz L_test;没按键则直接检测是否已到抢答时间上限
xor si,si
@@:
cmp UKey[si],al
je L_Press
inc si
cmp si,UCount
jb @B
L_test:
mov ah,0
int 1ah
mov bx,EndTC
mov ax,EndTC+2
sub bx,dx
sbb ax,cx
jae L_again

SETXY 14,33
PRTSTR msg1
jmp @F

L_Press:
mov ah,0
int 1ah;获得按键时刻的时钟数
inc si
mov ax,si
add al,30h
mov Uid,al;存贮按键用户编号
mov bx,StartTC
mov ax,StartTC+2
sub dx,bx
sbb cx,ax;计算从计时开始到按键经过的时钟数,最后存在dx中
mov ax,1000
mul dx
mov bx,182
div bx;将时钟数换算成百分秒数,存放在ax中
mov bl,100
div bl;计算整秒数,结果在al中
add al,30h
mov Time,al
mov al,ah
xor ah,ah
mov bl,10
div bl;计算十分秒数,结果在al中
add al,30h
mov Time+2,al
add ah,30h
mov Time+3,ah;百分秒
SETXY 14,34
PRTSTR msgU
@@:
SETXY 15,29
PRTSTR msg
@@:
mov ah,06h
mov dl,0ffh
int 21h;等待用户按键退出
cmp al,0
je @B

mov ax,4c00h
int 21h
code ends
end start

阅读全文

与微机原理倒计时显示装置设计相关的资料

热点内容
机械之血讲了什么 浏览:3
爱丽舍仪表盘显示的是什么 浏览:37
制冷剂加少了会出现什么现象 浏览:131
养鸡设备有多少家 浏览:20
购买实验仪器索要什么 浏览:92
阀门上h和y怎么选 浏览:359
杰德仪表盘的时间怎么调 浏览:681
途安后轮轴承怎么拆 浏览:648
汽车燃气加气阀门 浏览:249
型材自动送料装置价格 浏览:878
怎么让制冷柜不起冰 浏览:285
万向传动装置公用 浏览:732
化学实验制取氧气的连接装置 浏览:250
汽车仪表上除了加油标签还有什么 浏览:614
b超运用了超声波的什么特点 浏览:736
良乡五金建材批发市场 浏览:548
九龙坡五金批发市场 浏览:903
车仪表显srs是什么图案 浏览:273
实验室制cl2的发生装置 浏览:453
排气阀门车内无法打开 浏览:557