一种良好的程序设计规则和方法是结构化程序设计。结构化程序设计的基本思想是基于这样的考虑,即任何程序都可以用三种基本结构的组合来实现。这三种基本结构为顺序结构、分支结构和循环结构。在本章的程序讲解和编程练习中较多地使用了“延时程序”子程序,其程序结构常用的有单循环和双循环。由于前文所介绍的程序并没有对“延时程序”子程序延时时间的计算进行讲解,因此,在此结合程序的循环结构讲解延时程序的延时时间计算。......
2023-11-07
1.名词与概念
单片机只能直接接收二进制码组成的机器指令。这是因为它本身组成简单,存储量小,速度低,无法直接编译复杂的文字指令。例如,一条2字节机器码指令
若直接阅读,除非查指令表,否则很难识别它的含义。为此,出现了用代表指令意义的助记符表示指令。上面指令可以表示为
这里,第1字节称为“操作码”。RTB是复位端口的位(resetbit),即端口相应位置0。后面的字节称为“操作数”,表示端口的编号是00。对一条指令,操作码是必需的,操作数是可选项。
操作码 <操作数1> <操作数2>
对于有的指令,可以无操作数。有的指令可有两个操作数。例如,指令“STOP”,它只有操作码,无操作数,意义是停止程序向下进行;指令“TIMER 01 02”有两个操作数,意义是延时1×1s。
2.指令格式例
下面用助记符指令编辑一段程序,让指示灯D0点亮。
例如:指令 RTB 00(www.chuimin.cn)
指令 STOP
1)生成机器代码。要想让单片机执行这段程序,首先要将它变换为对应的机器指令代码,还必须指出机器码分配到存储器内的地址。根据“宏”指令集,上面程序的机器代码如下:
2)加入存储器地址。从00地址开始,地址后面要加冒号“:”,表示与机器码的区别。注意,任何程序起点必须从00地址起始。编辑时要用英文格式。
以上格式表明,存储器内容被分配如下:
经过以上变换,即可将程序顺利地输入到单片机中执行。将助记符表示的程序变换为包括地址和机器码在内的可执行程序的过程,称为“汇编”。一般由专用的软件负责,但这一过程也可由人工查表负责。
以上介绍的指令,称为“宏”。对“宏”助记符指令进行的“汇编”,称为“简易汇编”。“宏”只有30条,易学易用,学习它不必了解单片机的内部结构,程序可以由键和数码管输入、编辑并执行,使用非常灵活。利用“宏”作为学习8051汇编语言和C语言的入门阶梯,对初学者是较好的一种选择。
若要执行“宏”指令程序,必须依靠放置在实验机MCU芯片内的驻机解释程序,而用户程序放在片外E2PROM内,单片机从地址00H开始由E2PROM内取指令逐条执行语句,直到程序循环或停止。
有关零起点学习单片机多语言编程的文章
一种良好的程序设计规则和方法是结构化程序设计。结构化程序设计的基本思想是基于这样的考虑,即任何程序都可以用三种基本结构的组合来实现。这三种基本结构为顺序结构、分支结构和循环结构。在本章的程序讲解和编程练习中较多地使用了“延时程序”子程序,其程序结构常用的有单循环和双循环。由于前文所介绍的程序并没有对“延时程序”子程序延时时间的计算进行讲解,因此,在此结合程序的循环结构讲解延时程序的延时时间计算。......
2023-11-07
尽管单片机有许多特点,但仍然属于计算机的范围。这种特殊的语言就是程序设计语言,也就是由一系列语句组成的程序。程序设计语言从原理上可分为机器语言、汇编语言和高级语言三种类型,单片机也不例外。由于汇编语言指令具有直接对应机器语言指令的特点,因而生成的机器代码效率高,执行速度快,至今在单片机程序设计中仍被采用。在众多高级语言中,只有C语言成了应用于单片机系统的高级语言。......
2023-11-07
调试的目的是发现程序的错误。主要是观察工作寄存器、片内RAM单元、SFR及转移的地址位置是否正确,软仿真调试窗口如图3-8所示。2)单击调试菜单上的“外围设备→I/O→Port→Port 1”,I/O接口图标显示P1口状态。经过指令“CPL P1.0”,I/O接口图标显示P1口状态可看到P1.0=0。图3-8软仿真调试窗口4)在调试菜单中单击“单步”按钮,再一下下按动键盘上的“F10”键,程序则一条条执行。......
2023-11-07
第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。......
2023-11-07
if-else条件分支语句是选择结构的一种形式,是最常用的语句之一。这意味着如果if后面的表达式成立(不为0),则执行if下面的语句,否则直接向下执行。......
2023-11-07
将一个二进制数转换成十进制数表示,只需按权展开做一次10进制运算即可以完成。将一个十进制数转换成二进制数表示,是数据转换中较复杂的工作。做乘、除运算时,其法则与十进制数也是相同的。它不同于数值运算。二进制数可以进行按位的逻辑运算,每位之间相互独立,位与位之间不存在进位和借位的关系。......
2023-11-07
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2023-11-07
程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
相关推荐