单片机汇编语言程序学习
这学期选修了单片机原理与应用,老师非让用汇编来写入程序。
没办法,记录一下一些知识吧,因为不太熟悉,也不熟练,很容易学过就忘。
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返回主程序后会再次响应中断。
(不太懂,就这吧)
单片机汇编语言程序学习相关推荐
- AVR中C语言while语言,AVR单片机汇编语言程序实例
;范例 快速生成位序列校验码/或对接收位序列进行循环冗余检测子程序 ;100字节位序列m0,m1,m2,m3,m4,...m98,m99在发送方以递推方式生成CRC校验码子程序 ;或 ...
- mcs51C语言指令系统,MCS-51单片机指令系统和汇编语言程序实例
MCS-51单片机指令系统和汇编语言程序实例 介绍MCS-51的指令系统和汇编语言编程,了解处理器的软件资源 3.1 MCS-51单片机指令系统概述
- 单片机 c语言 宏程序,宏程序学习的几点心得.doc
有关宏程序学习的几点心得 天长市职业教育中心 蒋春飞 HNC-21/22T为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算.逻辑运算和函数的混合运算,此外宏程序还提供了循环 ...
- 单片机汇编编程300例_pic单片机编程串烧,pic单片机汇编语言讲解下篇
看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求.前文中,小编曾对pic单片机汇编语言进行过部分讲解.本文中,将对pic单片机的清零等指令加以讲解,以帮助大家 ...
- 单片机编程入门学习 这几问你能回答吗?
单片机编程入门学习前,大家即使对单片机的了解浅薄,相信也明白C语言在单片机学习的重要性.至于再深入,可能就比较懵逼了. 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记 ...
- STM 32汇编语言的学习
一.STM32的三种boot模式 1.1 boot简介: 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT ...
- c51单片机汇编语言语法错误,[计算机]汇编语言常见错误分析.doc
[计算机]汇编语言常见错误分析.doc 单片机汇编语言常见错误分析 2009年07月12日 星期日 1244单片机汇编语言常见错误分析发布 2009-4-04 0027 | 作者 hnrain | 查 ...
- 51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)
本系列共6篇文章,本文作为本系列的第三篇文章,介绍实验三 :定时/计数器实验,本系列文章基于Dais-52PRO实验箱. 本系列文章链接: --------------------------- ...
- 单片机 架构 程序 经验总结_avr单片机工作经验总结
AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机.可以广泛应用于计算机外部设备.工业实 ...
最新文章
- TCP性能和发送接收Buffer的关系
- 中国电子学会图形化四级编程题:绘制雪花
- 用于显示本地通知的跨平台插件flutter_local_notifications
- Shiro 编码/加密
- 什么是windows10的Shell Infrastructure Host
- Jmeter接口测试使用beanshell断言json返回
- Win10: adb: error: remote could not create file(解决)
- VTD软件说明书阅读之OpenDRIVE Scenario Editor
- allatori混淆工具_Java 代码混淆工具 Allatori
- 计算机考试界面没有验证码,win10系统下网页验证码显示不了的两种解决方法
- 数据库原理第三章习题作业
- nyoj54小明的存钱计划
- Vue项目:IE11中地址栏直接改变路由页面不跳转bug
- BZOJ 4484: [Jsoi2015]最小表示 拓扑排序 bitset
- Python学习笔记——网络通信过程
- 百度信息流介绍,没有比这更详细的啦
- 苏州职业大学计算机考试成绩查询系统,苏州工业园区职业技术学院教务管理系统登录入口、成绩查询网上选课查分...
- 光伏储能容量优化MATLAB论坛,微电网中电池储能的容量配置及优化
- CSS层叠样式表基础知识整理
- 蜻蜓FM课程种类繁多,用python爬取热门课程排行榜