单片机入门-要从汇编开始
简介
单片机 是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器、显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。单片机的发展先后经历了4位、8位、16位和32位等阶段。8位单片机由于功能强,被广泛用于工业控制、智能接口、仪器仪表等各个领域,8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的发展方向,在单片机应用领域发挥着越来越大的作用。
51单片机
单片机的开发主要包括CPU开发、程序开发、 存储器开发、计算机开发及C语言程序开发,同时得到开发能够保证单片机在十分复杂的计算机与控制环境中可以正常有序的进行。程序开发嵌入式系统的合理应用得到了大力推广,对程序进行开发时要求能够自动执行各种指令,这样可以快速准确地采集外部数据,提高单片机的应用效率。
为啥选汇编入门
很多电子爱好者都想学习单片机这门技术,初学者入门从底层硬件入手基于汇编和c两种语言,详细的介绍了单片机的原理,指令,寄存器,以及接口等,后面还为你准备了一些小的设计。都是从单片机最基本的东西讲起,相信你一定能看懂,并且学会单片机这门有意思的技术,有什么问题可在文章后面的评论留言。
初学单片机汇编有利于深入结构的了解,但是真正工作的时候,用的是C语言;汇编语言一般只在处理器启动的时候用一下,或C语言插入汇编的调用,之后就全是C语言,汇编移植性太差,但是它的效率高,时间精度能控制好。一般汇编都不需要你自己写,拿来用就行,主要还是C语言。可以肯定的告诉 你,99%用C语言。
51单片机开发板
现在单片机的编程大多 是C语言完成
但有时代码中必须嵌入汇编语言解决某些特定的问题
对于程序调试 汇编语言更是不可或缺。
直接使用汇编指令编写单片机程序,对硬件的控制更加直接,可以直接操作物理地址,寄存器,端口等;其它更高级的语言(如:C语言)对硬件的控制是依赖于类库来实现的。并且,对于一些对程序大小和运行速度有非常严苛要求的项目而言,都必须使用汇编指令。C语言只是为了方便编写,与机器打交道的其实都是2进制得代码,汇编语言就是这些代码好记忆的名称和规则,只是比C语言难理解些。
单片机
单片机最小系统
包括电源电路 、时钟晶振电路 、复位电路 。
时钟晶振电路、复位电路
程序存储器中有七个特设的地址,其功能分别是用于:0000H 复位时ROM的地址;0003H 外部中断0入口地址;000BH 定时器计数器0溢出中断入口地址;0013H 外部中断1入口地址;001BH 定时器计数器1溢出中断入口地址;0023H串行口中断入口地址;002BH 定时/计数器2溢出中断入口地址。
0000H地址是单片机复位时的PC地址,从0000H开始执行程序。
其他6个地址是单片机相应不同的中断时,所跳向对应的入口地址。
该表也叫中断向量表或称中断向量,在写程序时,这些地址不要占用。使用时一般在这6个地址写跳转指令,如AJMP,LMJP等等。
单片机汇编指令
为解决某些特定的问题代码中必须嵌入汇编语言以代替C语言完成的单片机的编程,汇编语言对于程序调试是不可或缺的。它包括:算术操作类指令,布尔变量操作类指令,逻辑操作数指令,控制转移类指令。
常用单片机汇编指令:
1 .MOV A,Rn 寄存器内容送入累加器
2 .MOV A,direct 直接地址单元中的数据送入累加器
3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器
4 .MOV A,#data 立即数送入累加器
5 .MOV Rn,A 累加器内容送入寄存器
6 .MOV Rn,direct 直接地址单元中的数据送入寄存器
7 .MOV Rn,#data 立即数送入寄存器
8 .MOV direct,A 累加器内容送入直接地址单元
9 .MOV direct,Rn 寄存器内容送入直接地址单元
布尔变量操作类指令:
1. CLR C 清进位位
2 .CLR bit 清直接地址位
3 .SETB C 置进位位
4 .SETB bit 置直接地址位
控制转移类指令
1. ACALL addr11 绝对(短)调用子程序
2 .LCALL addr16 长调用子程序
3 .RET 子程序返回
4 .RETI 中断返回
5 .AJMP addr11 绝对(短)转移
6 .LJMP addr16 长转移
7 .SJMP rel 相对转移
8 .JMP @A+DPTR 相对于DPTR 的间接转移
9. JZ rel 累加器为零转移
10. JNZ rel 累加器非零转移
11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移
12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移
13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移
14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移
15 .DJNZ Rn,rel 寄存器减1,非零转移
16 .DJNZ direct,rel 直接地址单元减1,非零转移
17 .NOP 空操作
闪烁灯汇编代码
流程图
闪烁灯汇编代码:
ORG 0000H ;初始地址
LJMP A0A0 ;跳转至I/O初始化
ORG 002BH
A0A0:MOV P0,#0FFH ;P0口初始化
MOV P1,#0FFH ;P1口初始化
MOV P2,#0FFH ;P2口初始化
MOV P3,#0FFH ;P3口初始化
A0A1:SETB P1.5 ;P1.5置1(高电平)
LCALL DELA0 ;调用延时
CLR P1.5 ;P1.5清0(低电平)
LCALL DELA0 ;调用延时
LJMP A0A1 ;跳转至开头循环
DELA0:MOV 68H,#5 ;延时
DELA1:MOV 67H,#248
DELA2:MOV 66H,#250
DJNZ 66H,$
DJNZ 67H,DELA2
DJNZ 68H,DELA1
RET
END
闪烁灯电路_亮
闪烁灯电路_灭
单片机课程设计章节课程体系的汇综“灵魂”!
单片机是实践性、应用性较强的课程,中学生通过学习单片机技术可以把握简单的智能型的小作品设计,例如智能电电扇、交通灯、电子密码锁之类的设计。使中学生才能具备高素养劳动者和中中级专门人才所必须的单片机基本知识和单片机的基本应用能力,初步把握单片机应用的通常技巧和步骤,为提升职业技能打下基础。
单片机技术作为工程应用中应用广泛、综合实用的应用技术之一,是多门课程体系的汇综“灵魂”,是将相关知识、能力整合于一体的综合彰显。
须要用到的知识包括但不限于:
1、元元件的选用和使用:模电、数电、电路、电工基础等
2、传感器的选用和讯号处理:传感原理和应用、信号处理
3、电机等执行机构的选用、控制方式:控制马达、自控原理
4、仿真和硬件设计:Proteus、布线和加工工艺、Prorel/AD设计PCB、电子线路CAD、焊接技术
5、程序设计:计算机基础、C语言、汇编语言、C51、KeilC仿真工具
6、生产与营销:营销方法、工程造价、设备维护
工程技术知识体系是综合“积累”的过程,前导课程很重要,中学生在学习单片机的过程中须要不断的备考前期课程的知识,更要依据后续课程的具体使用要求,有针对性的学习、解决具体工程案例中原理、设计中的有关问题。强化课程间的连续性、承上启下性关系。课程中第九章单片机应用系统的设计与开发上面讲解有综合运用的实例,单片机课程设计章节,详尽讲解了怎样进行课程的设计的内容,相关视频讲解了怎么写课程设计说明书。
单片机更指出应用,须要你们从“动手”为出发点,强化实验和作品的制做要求,以中学生制做的“作品”,通过质量、效果等综合考察教学培养疗效、学生真实动手水平。我们在实验章节里特设置了联通实验室内容,视频里给你们讲解了我们中学老师设计的一套板子,从最小系统开始训练你们的动手能力,板子可扩充20多个功能,你们按照自己的时间,在课后完成实物的制做和调试,在实验课上检测结果,谈论问题。
本课程教学内容的“规划”和创新作品的“设计”,一切围绕工程要求,从实用性出发,培养解决具体工程问题能力,积累工程理念,培养工程素养。
相关问答
请各位好友推荐几本关于学习 单片机 的 汇编 语言教材谢谢了急求?我当时学习51汇编用的是北京航空航天大学出版的《单片机初级教程》挺不错的。刚开始学汇编估计会有些枯燥,多与实验相结合效率会高很多。我当时学习51汇编...
STC 单片机 能用 汇编 写程序吗?指令和C51有什么区别?当然可以用和汇编语言写。其实STC就是51内核的单片机。指令系统当然和c51单片机兼容的。不过有的STC的外设比标准的C51丰富,比如有的STC有P4口,普通的C51就没...
单片机 C51的 汇编语言 编程pragma只是用于之间潜入asm代码,不是变了相的混合编程技术,它不能直接调用其他文件(注意是文件)中的函数。真正意义上的多模块编程,每个模块之间都...
单片机汇编 指令ACALL怎么用?ACALL是51汇编的子程序调用指令,其使用范围是±2K范围,超出这个范围的调用将会出错,这时可以使用LCALL即长调用语句。调用格式如下:ACALL标号(子程序名)例...
51 单片机 要控制多个汽缸实现如下定时?怎么写 汇编 程序?这个容易,设置定时器工作,开始就启动定时器,设置秒变量sec,if(sec==1)气缸1启动if(sec==4){气缸1停止,气缸2/3启动}if(sec==6){气功1启动,气缸3停止,气.....
单片机 用 汇编 语言编写用一个控制器控制8个LED灯亮?ORG0000HLJMPMAINORG000BHLJMPT0ISRORG0030HMAIN:MOVTMOD,#01HMOVTH0,#HIGH(65536-50000)MOVTL0,#LOW(65536...
单片机 的编程?单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的...
单片机汇编 语言流水灯程序延时0.5秒,一共四个灯循环?4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDE.....
单片机 有几种语言 学哪些好-ZOL问答单片机常见的编程语言主要有汇编和C语言。汇编语言:不同的单片机有着各自不同的汇编形式,相对较为复杂繁琐,但它能非常有助于深入理解相关硬件知识,尤其在对...
单片机 用C语言编程很好学,为什么还要用 汇编 呢?现在一般单片机都支持C语言和晦涩难懂的汇编语言,在许多介绍单片机应用技术的教材中有相当一部分是用汇编语言编写的这说明汇编语言在学习单片机和编写单片机程...