汇编语言编程 秒表程序

用汇编语言实现简单的秒表程序
要求:
1、使用芯片:8253、8255、8259
2、电子秒表要实现的功能:用键盘中断来控制整个程序,按一下回车键启动电子秒表,再按一下暂停,按一下ESC键清零,用七段数码管显示时间。
3、最小单位为十分之一秒 加到10后显示秒 秒加到60后显示分
可以发到我的邮箱 pxhaizy@163.com 如果可以的话用C语言I/O接口模板 内容用汇编

第1个回答  2010-06-22
直接发给你把
PROCESSOR 16C74
INCLUDE "P16C74B.INC "
SEC EQU 0X23 ;
MSEC EQU 0x24
TEMP1 EQU 0X22
FLAG2 EQU 0X28

ORG 0x00
GOTO START
ORG 0x04 ; 设定中断向量
BCF STATUS,RP0
BTFSC INTCON,T0IF ; 判断TIER0中断标志位是否被设置
GOTO TMR0_ISR ; 若是,则去执行TIMER0中断子程序
RETFIE

START:
CALL PIC_INIT ;去设置端口、TIMER0工作模式
BSF INTCON,GIE
BSF INTCON,T0IE
MAIN_LOOP:
;程序的主体是个无限循环

BTFSC FLAG2,7
CALL DISPLAY

GOTO MAIN_LOOP

PIC_INIT:
CLRF INTCON
BCF INTCON,T0IE

BSF STATUS,RP0
MOVLW B'00000000' ;B’XXXXXXXX’表示单引号中的数是二
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC

BCF STATUS,RP0
MOVLW B'11000000' ;B’XXXXXXXX’表示单引号中的数是二
MOVWF PORTB
MOVLW B'11000000'
MOVWF PORTC

BSF STATUS,RP0
MOVLW B'11000100'
MOVWF OPTION_REG ; 对TIMER0工作模式进行设置,32分频
BCF STATUS,RP0
MOVLW 0X06
MOVWF TMR0

CLRF SEC
CLRF MSEC
CLRF TEMP1
CLRF FLAG2
RETURN

TMR0_ISR:
CLRWDT
BSF FLAG2,7
BCF INTCON,T0IF
MOVLW 0X06
MOVWF TMR0
CLRWDT
INCF TEMP1,1
MOVF TEMP1,0
SUBLW .125 ;125-TEMP
BTFSS STATUS,2
RETFIE

CLRWDT
CLRF TEMP1
INCF MSEC,1

RETFIE

DISPLAY:
MOVF MSEC,0
SUBLW .10
BTFSS STATUS,2
GOTO NEXT_1

CLRWDT
CLRF MSEC
INCF SEC,1
MOVF SEC,0
SUBLW .6
BTFSS STATUS,2
GOTO NEXT_1
CLRF SEC

NEXT_1:
CLRWDT
MOVF MSEC,W
CALL CHAR_CODE
MOVWF PORTC

MOVF SEC,W
CALL CHAR_CODE
MOVWF PORTB

BCF FLAG2,7
RETURN

CHAR_CODE:
ADDWF PCL,1 ;PCL+=W
RETLW B'11000000' ; Code for 0
RETLW B'11111001' ; Code for 1
RETLW B'10100100' ; Code for 2
RETLW B'10110000' ; Code for 3
RETLW B'10011001' ; Code for 4
RETLW B'10010010' ; Code for 5
RETLW B'10000010' ; Code for 6
RETLW B'11111000' ; Code for 7
RETLW B'10000000' ; Code for 8
RETLW B'10010000' ; Code for 9
END本回答被提问者采纳

汇编语言 秒表程序设计
push ds ;保存数据段 mov ax,0000 mov ds,ax ;数据段清零 mov ax,offset irq7 ;取中断程序入口地址 add ax,2000 ;加装时IP=2000地址 mov si,003c ;填8259中断7中断矢量 mov w[si],ax ;填偏移量矢量 mov ax,0000 ;段地址CS=0000H mov si,003e mov w[si...

汇编语言 秒表程序设计
ORG 00H AJMP MAIN ORG 03H AJMP EX0INT ORG 0BH AJMP T0INT ORG 13H AJMP EX1INT ORG 0030H MAIN:MOV P1,#0 MOV TMOD,#01 MOV TH0,#3CH MOV TL0,#0B0H MOV R0,#20 SETB EA SETB EX0 SETB IT0 SETB EX1 SETB IT1 SETB ET0 MAIN1:MOV P1,A AJMP MAIN1 EX0INT:CPL TR...

AT89C51单片机用4位数码管做秒表,要求用动态扫描做,汇编语言
;汇编时钟程序。4位共阳管。P0口段码,P2.0~P2.3位码。显示毫秒和秒。三个按键一个控制时钟开始走,一个控制暂停和继续。。。一个按键清0 ;12M晶振 2011 04 20 调试完成 STRT EQU P3.2 STP EQU P3.3 CLRR EQU P3.5 ORG 00H SJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN: MOV ...

单片机计数器0到999的编程怎么写
估计你说的是汇编语言。我以51为标准假设晶振为6Mhz.计算计数初值是0CEH。计数器工作方式2。程序:mov ie, #00h 关中断 mov tmod,#02h 置计数器工作方式2 mov th0,#0ceh 保存计数初值 mov tl0,#0ceh 值计数初值 mov r0,#0ah 置循环次数 setb tr 启动计数器 loop:jbc tf0...

...用8086、8259、8253\/8255这几个芯片、VC汇编语言
CPU是8086,,8259用来采集按键信息,8253,用于计时器,8255可以用于输出控制LED。如果是单片机的话,应该还有EPROM,或者EEPROM,可以用TC编程,形成EXE文件,然后更改地址后写入到EEPROM中

汇编语言中STAPN什么意思,或者他是哪个单词的缩写,一直看见他,却百度...
这个是一个电子秒表程序的一段。8086内部结构的汇编语言的基本元素的一个是标识符 是指给指令或某一存储单元地址所起的名字。可由下列字符组成: 字母:A ~ z ; 数字:0 ~ 9 ; 特殊字符:?、· 、@、一、$ 。数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长为3...

在单片机中断中void time0() interrupt 1 using 1
在c语言中,我们写一个函数,例如延时函数,里面用的变量,反汇编之后就是在使用R0-R7,那么你能确定你使用的是哪一组寄存器吗?所以说,使用using能选择使用的寄存器组,但同时在“切换”时要特别小心。你在中断程序里调用别的程序就会出现寄存器组切换问题。。其实using还有其他的注意地方,因为使用麻烦,我从来不用这个...

高分求助:kei c如何编程让8位数码管亮
include <REG51.H> define uint unsigned int define uchar unsigned char uchar code DIS_SEG7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};uchar code DIS_BIT[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};\/***\/ void delay1ms(uint i){ uint j;while(i--)for(j...

相似回答