这学期选修了单片机原理与应用,老师非让用汇编来写入程序。

没办法,记录一下一些知识吧,因为不太熟悉,也不熟练,很容易学过就忘。

      org   0000hjmp   StartORG  0003HJMP    INT00ORG   0100H
Start:  MOV     SP,#60HSETB EASETB  EX0Clr   IT0 CLR    A
Loop:   CPL     A  MOV  P0,A  LCALL DELAY JMP   LoopDELAY: MOV  R6,#200
D1:      MOV    R7,#248   DJNZ  R7,$      DJNZ  R6,D1RET ;----中断子程序程序示例------
INT00:MOV   R1,#9MOV    A,#00HLOOP1:         MOV    P0,A   LCALL    DELAY       SETB    C RRC   A DJNZ  R1,LOOP1RETI

程序效果:

Start部分使8个灯不断闪灭

通过按键引起中断后,执行中断子程序INT00

8个灯流水熄灭,执行完毕,继续不断闪灭。

代码段注释:

      ;---’;’代表注释org   0000h;org指令?;org 0000h代表什么含义呢?;org 0000h是一条汇编伪指令,它指定下一条语句将在哪里开始;在汇编时不产生相应的机器语言指令,只是指导程序该从哪里开始jmp   Start;跳到Start处ORG    0003H;0003H是外部中断INT0的入口地址;加这条伪指令是为了方便系统找到中断指令;ps:依然不太懂JMP   INT00;跳转到中断INT0函数位置ORG  0100H
Start:   MOV     SP,#60H;避免堆栈区与工作寄存器区发生冲突SETB    EA;SETB:对位置1;EA:中断允许总开关控制位,EA=0,所有中断请求被屏蔽,EA=1,所有的中断请求被开放;开中断SETB EX0;允许外部中断0;EX0:外部中断0的溢出中断允许位,为0禁止外部中断0中断。ClR   IT0 ;外部中断0为电平触发;IT0=1,外部中断0为跳沿触发CLR     A  ;累加器清0
Loop:   ;累加器是一个8位寄存器CPL     A  ;累加器求反MOV    P0,A  ;这里的效果是8个灯不断闪灭;把p0的一个位 置为0,对应的灯会亮。LCALL DELAY ;调用延时函数JMP   Loop
;--------延时子程序--------
DELAY: MOV  R6,#200   ;外循环次数
D1:      MOV    R7,#248   DJNZ  R7,$      ;相当于here: DJNZ R7,here;$指本条指令的地址;寄存器减1,不为0则转移;也就是循环执行这条语句248次DJNZ  R6,D1;如果循环够了200次,就跳出去RET ;子程序返回
;----中断子程序程序示例------
INT00:MOV   R1,#9MOV    A,#00HLOOP1:         MOV    P0,A   ;最开始全亮LCALL  DELAY  ;延时1sSETB    C      ;进位标志位C设为1RRC    A      ;经过进位标志位的累加器循环右移DJNZ     R1,LOOP1;R1减一,不为0则转移RETI ;中断返回
;0000 0000
;C, P7,P6,P5,P4,P3,P2,P1,P0
;1--->
;1000 0000
;1100 0000
;1110 0000
;1111 0000
;1111 1000
;1111 1100
;1111 1110
;1111 1111

跳沿触发和电平触发有什么不同???

跳沿触发:即便CPU暂时不能响应,中断请求标志也不会丢失。(依然没明白)。

电平触发:外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断

输入引脚的电平变化而变化,这能提高CPU对外部中断请求的响应速度。

当外部中断源被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求输入必须无效

(即外部中断请求输入已由低电平变为高电平),否则CPU返回主程序后会再次响应中断。

(不太懂,就这吧)

单片机汇编语言程序学习相关推荐

  1. AVR中C语言while语言,AVR单片机汇编语言程序实例

    ;范例    快速生成位序列校验码/或对接收位序列进行循环冗余检测子程序    ;100字节位序列m0,m1,m2,m3,m4,...m98,m99在发送方以递推方式生成CRC校验码子程序    ;或 ...

  2. mcs51C语言指令系统,MCS-51单片机指令系统和汇编语言程序实例

    MCS-51单片机指令系统和汇编语言程序实例 介绍MCS-51的指令系统和汇编语言编程,了解处理器的软件资源 3.1 MCS-51单片机指令系统概述

  3. 单片机 c语言 宏程序,宏程序学习的几点心得.doc

    有关宏程序学习的几点心得 天长市职业教育中心 蒋春飞 HNC-21/22T为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算.逻辑运算和函数的混合运算,此外宏程序还提供了循环 ...

  4. 单片机汇编编程300例_pic单片机编程串烧,pic单片机汇编语言讲解下篇

    看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求.前文中,小编曾对pic单片机汇编语言进行过部分讲解.本文中,将对pic单片机的清零等指令加以讲解,以帮助大家 ...

  5. 单片机编程入门学习 这几问你能回答吗?

    单片机编程入门学习前,大家即使对单片机的了解浅薄,相信也明白C语言在单片机学习的重要性.至于再深入,可能就比较懵逼了. 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记 ...

  6. STM 32汇编语言的学习

    一.STM32的三种boot模式 1.1 boot简介: 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT ...

  7. c51单片机汇编语言语法错误,[计算机]汇编语言常见错误分析.doc

    [计算机]汇编语言常见错误分析.doc 单片机汇编语言常见错误分析 2009年07月12日 星期日 1244单片机汇编语言常见错误分析发布 2009-4-04 0027 | 作者 hnrain | 查 ...

  8. 51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)

       本系列共6篇文章,本文作为本系列的第三篇文章,介绍实验三 :定时/计数器实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: --------------------------- ...

  9. 单片机 架构 程序 经验总结_avr单片机工作经验总结

    AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机.可以广泛应用于计算机外部设备.工业实 ...

最新文章

  1. TCP性能和发送接收Buffer的关系
  2. 中国电子学会图形化四级编程题:绘制雪花
  3. 用于显示本地通知的跨平台插件flutter_local_notifications
  4. Shiro 编码/加密
  5. 什么是windows10的Shell Infrastructure Host
  6. Jmeter接口测试使用beanshell断言json返回
  7. Win10: adb: error: remote could not create file(解决)
  8. VTD软件说明书阅读之OpenDRIVE Scenario Editor
  9. allatori混淆工具_Java 代码混淆工具 Allatori
  10. 计算机考试界面没有验证码,win10系统下网页验证码显示不了的两种解决方法
  11. 数据库原理第三章习题作业
  12. nyoj54小明的存钱计划
  13. Vue项目:IE11中地址栏直接改变路由页面不跳转bug
  14. BZOJ 4484: [Jsoi2015]最小表示 拓扑排序 bitset
  15. Python学习笔记——网络通信过程
  16. 百度信息流介绍,没有比这更详细的啦
  17. 苏州职业大学计算机考试成绩查询系统,苏州工业园区职业技术学院教务管理系统登录入口、成绩查询网上选课查分...
  18. 光伏储能容量优化MATLAB论坛,微电网中电池储能的容量配置及优化
  19. CSS层叠样式表基础知识整理
  20. 蜻蜓FM课程种类繁多,用python爬取热门课程排行榜

热门文章

  1. excel如何冻结前几行
  2. 网站入侵检测之全方位突破安全狗
  3. TPS7250QDR低压差(LDO)稳压器
  4. 与倪院士商榷:联盟商店不是云计算平台
  5. 浅谈HtmlUnit
  6. 七周成为数据分析师 第二周:业务篇-框架与模型
  7. Js基本包装类型(含原理)
  8. Groovy轻松入门——Grails实战基础篇
  9. 【社招面试】虎扑旗下毒app面试
  10. 关于powerbi加载不了地图异常解决方法