首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

两个小疑点,散分了

2012-03-15 
两个小问题,散分了~1.用硬件定时器编写程序,设置时、分、秒定时器,分别对应的地址为:4000H、4002H、4004H,晶振

两个小问题,散分了~
1.   用硬件定时器编写程序,设置时、分、秒定时器,分别对应的地址为:4000H、4002H、4004H,晶振频率为12MHZ(用8096编写)

2.C08__2     MODULE   MAIN
        $INCLUDE(8096.INT)
  PORT       EQU       OFFA8H       ;               74LS273(U4)端口地址
  SOFT__INT     EQU         400AH     ;         软件定时器中断向量地址
  RSEG     AT     1CH
  AX:DSW     1
  AL     EQU     AX:BYTE
  BX:DSW     1
  BL     EQU     BX:BYTE
CX:DSW   1
CL   EQU   CX:BYTE
DX:DSW   1
DL   EQU   DX:BYTE
CSEG     AT   2080H
LJMP   START
CSEG     AT   4100H
START:DI
              LD   SP,#00C0H
              LD   AX,#HSOINT           设置软件定时器中断向量
              ST   AX,SOFT__INT
              LDB   AL,#03H               点亮L1,L2两个发光二极管
              STB   AL,PORT
              LDB   BL,#00H                 置计数器BL,CL初值为0
              LDB   CL,#00H  
              LDB   DL,#00H
              CLRB   INT__PENDING
              ORB     INT­__MASK,#20H             置软件定时器中断相应的中断
                                                                  屏蔽位为一      
              LDB     HSO__COMMAND,#38H           使软件定时器ST0在250ms中断
              ADD     HSO__TIME,TIMER1,#0FA00H
              LDB   HSO__COMMAND,#3AH             使软件定时器ST2在125ms后中断
              ADD   HSO__TIME,TIMER1,#07D00H
              EI
LOOP:   SJMP   LOOP
HSOINT:DI
                LDB   CL,IOS1
                JBS   CL,0,STIMER0             ISO1的第0位为1,STO中断
                                                                STMER0      
                JBS   CL,2,STIMER2             ISO1的第2位为1,ST2中断
                                                                STMER2      
                BR   RETURN


STIMER0:INCB   BL                                 软件定时器ST0中断处理
                  CMPB   BL,#04H                     每中断4次,改变74LS273的第0位一次
                  JNE   ST0SET
                  XORB   AL,#01H
                  STB   AL,PORT
                  CLRB   BL
ST0SET:LDB   HSO__COMMAND,#38H       重新使软件定时器ST0在250ms后中断
                ADD   HSO__TIME,TIMER1,#0FA00H
                SJMP   RETURN
STIMER2:INCB   DL                                   软件定时器ST2中断处理
                  CMPB     DL,#04H                         每中断4次,改变74LS273的第1位一次
                  JNE   ST2SET
                  XORB   AL,#02H
                  STB   AL,PORT
                  CLRB   DL
ST2SET:LDB   HSO__COMMAND,#3AH         重新使软件定时器ST2在125ms中断
                ADD   HSO__TIME,TIMER1,#07D00H
RETURN:EI
                RET
                END
将以上程序改为使两个发光二极管每秒依次亮闪一次。

都比较简单,各位帮忙看看

[解决办法]
8096已经用得很少了,居然还是汇编

为什么不用ARM或430之类的呢?
[解决办法]
帮顶~~~~
[解决办法]
STIMER2:INCB DL 软件定时器ST2中断处理 
CMPB DL,#04H ;每中断4次,改变74LS273的第1位一次 //这里改成8,然后在后面作点灯操作
JNE ST2SET 
XORB AL,#02H 
STB AL,PORT 
CLRB DL
[解决办法]

热点排行