找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5294|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机中断优先级汇编程序

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-27 17:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. ;============================================================
  2. ;程序编写人:兰建文
  3. ;编写地点:51hei培训机构
  4. ;时间:5月23日下午  星期六
  5. ;功能:本程序实现P0口的对2个数码管显示0到99,一个按键实现加1,
  6. ;    到99回到0;一个按键实现减1,减到0回到99,低电平亮
  7. ;P2口实现对数码管的片选功能
  8. ;============================================================
  9. ;=======================开始初始化===========================
  10.        SHUCHU   EQU   P2           ;定义P0口为输出口
  11.     SHUZI    EQU   30H          ;设置处理数据存放地址
  12. ;========================程序开始===========================
  13.                 ORG    00H          ;程序开始
  14.                 LJMP   START        ;跳到MAIN
  15.     ORG    03H
  16.     JMP    INIT_0
  17.     ORG    13H
  18.     JMP    INIT_1
  19.                 ORG    0030H        ;入口地址      
  20.           START:
  21.           CALL   INIT
  22.           MOV    SP,#60H
  23.           MOV    SHUZI,#00
  24.           MOV    DPTR,#TAB   ;查表初始化
  25. ;==========================主程序=============================
  26.         MAIN:CALL   CHULI       ;计算处理
  27.              CALL   XIANSHI     ;显示
  28.     JMP    MAIN
  29. ;=============开启外部中断0和外部中断1子程序=================
  30. ;输入:无
  31. ;输出:无
  32. ;实现的功能:开启中断0和外部中断1
  33. ;============================================================
  34.             INIT:MOV   IE,#85H
  35.         MOV   TCON,#05H
  36.      SETB  PX1
  37.      RET
  38. ;========================处理子程序==========================
  39. ;输入:30H
  40. ;输出:"A和B"
  41. ;实现的功能:把30H的数据的十位和个位分离出来,分别放A和B中
  42. ;============================================================
  43.           CHULI:MOV   A,SHUZI      ;数据放在A中  
  44.        MOV   B,#10        ;除数放在B中
  45.          DIV   AB           ;商放在A中,余数放在B中
  46.        RET               
  47. ;========================显示子程序==========================
  48. ;输入:"A"
  49. ;输出:"P0口"
  50. ;实现的功能:把A的数输出到P0口显示,十位和个位分开显示
  51. ;============================================================
  52.         XIANSHI:MOVC  A,@A+DPTR
  53.           MOV   SHUCHU,A     ;显示十位
  54.     MOV   P1,#01H
  55.        CALL  DELAY
  56.     MOV   SHUCHU,#0FFH
  57.     MOV   A,B
  58.     MOVC  A,@A+DPTR
  59.           MOV   SHUCHU,A     ;显示个位
  60.     MOV   P1,#02H
  61.     CALL  DELAY
  62.     MOV   SHUCHU,#0FFH
  63.                 RET      
  64. ;===================外部中断0服务程序========================
  65. ;输入:无
  66. ;输出:外部中断0
  67. ;实现的功能:响应一次外部中断0,30H内容实现加1
  68. ;============================================================
  69.         INIT_0:MOV    A,SHUZI
  70.     INC    A
  71.     CJNE   A,#100,NEXT0
  72.     MOV    SHUZI,#00
  73.     JMP    LL0
  74.     NEXT0:MOV    SHUZI,A
  75.    LL0:RETI
  76. ;===================外部中断1服务程序========================
  77. ;输入:无
  78. ;输出:外部中断1
  79. ;实现的功能:响应一次外部中断0,30H内容实现减2
  80. ;============================================================
  81.         INIT_1:
  82.           MOV    A,SHUZI
  83.     CJNE   A,#1,NEXT1
  84.     MOV    SHUZI,#99
  85.     JMP    LL1
  86.     NEXT1:CJNE   A,#0,NEXT2
  87.           MOV    SHUZI,#98
  88.     JMP    LL1
  89.     NEXT2:SUBB   A,#2
  90.           MOV    SHUZI,A
  91.          LL1:RETI
  92. ;========================延时程序============================
  93. ;输入;无
  94. ;输出: 无
  95. ;实现的功能:延时一段时间
  96. ;============================================================
  97.           DELAY:
  98.           MOV  R6,#80
  99.        L7:MOV  R5,#80
  100.           DJNZ R5,$
  101.           DJNZ R6,L7
  102.     RET
  103. ;=====================共阳查表数据============================
  104.       TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  105. ;=======================程序结束==============================
  106.     END
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表