5)标号后边遗漏“:”。例如:建议修改为9)字母I和数字1混淆。10)创造发明不存在的汇编语言指令。例如,主程序中设定了R4=5,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。编写汇编语言的忠告:要养成良好的程序书写习惯,如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。......
2023-10-28
程序设计语言的层次结构如下:
硬件逻辑被虚拟化成汇编语句,汇编语句再次被封装,虚拟化成高级语言语句。高级语言的语句,再次被封装,形成一个特定目的的程序,或者称为函数,然后这些函数再通过互相调用,生成更复杂的函数,再将这些函数组合起来,就形成了最终的应用程序。程序再被操作系统虚拟成一个可执行文件。其实这个文件到了底层,就是一次一次地对CPU的电路信号刺激。也就是说,硬件电路逻辑,一层层地被虚拟化,最终虚拟成一个程序,程序就是对底层电路作用的一种表达形式。按照与硬件虚拟化关系的远近,计算机程序设计语言分为机器语言、汇编语言和高级语言,它们的关系如图6-9所示。
图6-9 程序设计语言
汇编语言有如下缺点:
1)汇编语言与处理器密切相关。每种处理器都有自己的指令系统,相应的汇编语言各不相同。所以,汇编语言程序的通用性、可移植性较差。
2)汇编语言编写涉及寄存器、主存单元等硬件细节,所以编写程序比较繁琐,调试起来也比较困难。
汇编语言有如下优点:
1)汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言,它可以直接、有效地控制计算机硬件。其主要优点是占用资源少,程序执行效率高,由于它一条指令就对应一条机器码,每一步的执行动作都很清楚。(www.chuimin.cn)
2)懂得汇编语言可帮助了解任何影响语言效率的规则,并且程序大小和堆栈调用情况都容易控制。例如,懂得汇编语言指令就可以使用在片内RAM作变量的优势,因为片外变量需要几条指令才能设置累加器和进行数据指针存取。同样的,当要求使用浮点数和启用函数时也只有具备汇编编程经验才能避免生成庞大的、效率低的程序,对于这方面的编程,没有汇编语言是做不到的。
与汇编语言相比,C语言有如下优点:
1)对单片机的指令系统不要求了解,仅要求对51单片机的存储器结构有初步了解,至于寄存器分配、不同存储器的寻址及数据类型等细节均由编译器管理。
2)程序有规范的结构,可分为不同的函数。这种方式可使程序结构化,将可变的选择与特殊操作组合在一起,改善了程序的可读性。
3)编程及程序调试时间显著缩短,从而提高了效率。提供的库包含许多标准子程序,具有较强的数据处理能力,在已编好程序中可容易地植入新程序,因为它具有方便的模块化编程技术。
4)单片机C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不作修改就可根据单片机的不同较快地移植过来。
C语言更新维护方便、可移植性强,但实践证明,单独使用C语言开发单片机程序也存在诸多不足,如占用存储空间大、对硬件控制不灵活等。因此想成为一个优秀的单片机编程技术员,最好就是能懂得单片机C语言和汇编语言的混合编程。在编程过程中,通常用C语言来构建程序框架,而用汇编程序作为子程序来处理一些有实时性要求的特殊应用。与硬件关系密切的程序或对性能有特殊要求的程序往往用汇编语言设计,上层应用软件则往往用C语言来设计。
作为单片机初学者,还是应该先学习汇编语言,因为汇编语言程序除了具有简洁明快、跳跃性强、占ROM资源少等优点以外,还因它和单片机底层硬件紧密联系,可以让初学者更加了解单片机硬件系统各种资源、软件的工作原理,熟悉各个功能模块的作用,从而为编出更高效率的程序打好扎实的基础。
有关51单片机案例笔记的文章
5)标号后边遗漏“:”。例如:建议修改为9)字母I和数字1混淆。10)创造发明不存在的汇编语言指令。例如,主程序中设定了R4=5,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。编写汇编语言的忠告:要养成良好的程序书写习惯,如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。......
2023-10-28
为此,出现了用代表指令意义的助记符表示指令。后面的字节称为“操作数”,表示端口的编号是00。将助记符表示的程序变换为包括地址和机器码在内的可执行程序的过程,称为“汇编”。对“宏”助记符指令进行的“汇编”,称为“简易汇编”。利用“宏”作为学习8051汇编语言和C语言的入门阶梯,对初学者是较好的一种选择。......
2023-11-07
因为学过C语言的人最多,熟悉C语言风格语法的人更多,所以C语言成为思想交流的首选媒介语言。2017年中国软件开发者薪资大调查显示,最赚钱的4种编程语言是:Java、C++、Python、C语言。学习C语言的意义并不在于使用它,而在于它可以让人们了解很多基本原理。对于第二类读者,学习C语言最大的好处是可以更直接地体会计算机最基本的工作模式和方式。这并不是C语言自身决定的,而是中国庞大的C语言教育体系决定的。......
2023-11-20
一种良好的程序设计规则和方法是结构化程序设计。结构化程序设计的基本思想是基于这样的考虑,即任何程序都可以用三种基本结构的组合来实现。这三种基本结构为顺序结构、分支结构和循环结构。在本章的程序讲解和编程练习中较多地使用了“延时程序”子程序,其程序结构常用的有单循环和双循环。由于前文所介绍的程序并没有对“延时程序”子程序延时时间的计算进行讲解,因此,在此结合程序的循环结构讲解延时程序的延时时间计算。......
2023-11-07
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
1)使用非法的或错误的标识符,如main写成mian,写成,或使用sin(2α)、cosΦ、π*r*r等。2)变量未经定义就使用。3)变量类型使用不当。5)语句或定义结束缺少分号或误用分号。6)表达式中漏写了必要的乘号*。例如,将3*x*y+5错写成3xy+5。7)表达式中缺少必要的圆括号,或圆括号不匹配,或者用花括号、方括号取代了圆括号。......
2023-10-28
包括函数名的命名和类型说明、形式参数的类型说明、变量定义和语句。下面举例说明主函数和自定义函数。函数的定义是平行的,彼此相互独立,不能嵌套定义。函数的类型和函数返回值的类型应保持一致。以两个数求和为例,说明函数的定义。......
2023-10-21
“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
相关推荐