单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂。目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求。单片机的编程可以通过汇编语言和C语言来实现。1汇编编程的特点汇编是一种更接近于硬件底层的低级语言。硬件在编程时总线和地址非常重要,在汇编语言中,一般用助记符来替代机器指令的操作码,用标号代表操作数的地址,所以汇编语言和机器指令之间存在着唯一对应的关系,这就导致了不通系列的单片机其汇编指令集是完全不通的。这样做是比较麻烦的,因为更改了单片机或者升级老产品之后,原有的汇编代码难以跨平台移植,只能再重新编写。所以,汇编的移植性非常差,由于是直接操作机器指令,所以在可读性上也非常差。这是汇编语言的两个最大的缺点,但是其优点就是执行效率非常高。从方便的角度上来说,汇编方便了硬件,但对工程师却不友好。
2C语言编程的特点
在前几年使用汇编编程的人还是挺多的,现在使用汇编的人原来越少,即使是写驱动的人也不完全使用汇编而是使用汇编和C语言结合的方式。单片机的C语言编程具有两个最大的优点。第一个优点:易于移植有过单片机C语言编程的同行都有这样的经历,在编程时,首先要在初始化中配置单片机的寄存器,配置完之后的代码不再频繁的和寄存器打交道,所以使得C语言的层次非常清晰,在移植代码时,只需要根据新的平台修改一下寄存器的配置部分就可以了,功能主体部分几乎不用修改。这也就是很多优秀程序员所倡导的当文档层次化编程的原因,每个功能块都对应一个C文件和H头文件,在移植时只需要把这两个文件拷走即可,方便了移植。
从这个方面来讲,完全可以抛开单片机的寄存器配置来实现编程,这方面做的比较好的如STM32的官方库编程和CMSIS等。第二个优点:易于阅读由于C语言通过寄存器和硬件驱动/接口建立关系,编程者不用再去记忆枯燥的指令,而且C语言编程的层次化、模块化编程也大大提高了代码的可读性。相比于汇编,C语言可以用更少的代码实现更复杂的功能,而且还更易于理解。这也是C语言越来越受欢迎的原因。
3C语言对比汇编的优势
通过前面的描述可以看得出来,C语言占有更多得优势,C语言易于跨平台移植、C语言易于理解、C语言易于延续。总之,从编程得角度C语言更受程序员们得欢迎。
关键字:单片机 编程 C语言 汇编
引用地址:
单片机编程用C语言还是汇编?
推荐阅读最新更新时间:2024-11-10 18:01
51单片机外围模块——LCD1602液晶模块
LCD1602简介 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。 1602的引脚 操作步骤 初始化(写命令) 写地址 写数据 时序图及时序参数 LCD1602关键性的指令设置 1.清屏指令 功能: 清除液晶显示器,即将 DDRAM 的内容全部填入 空白 的 ASCII码 20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为 0。 2.进
[单片机]
MCU需要改进
长久以来,计算机系统的抗干扰一直是人们关心的重要问题,因为计算机用得越来越广,可靠性越来越重要,而抗干扰本身就是可靠性的重要组成部分。为了汽车、飞机、卫星、反应堆的安全,人们在抗干扰问题上花费了大量精力与金钱,尽管已经取得了长足的进展,但在性价比上远不能满足要求,以致高抗干扰的要求只是在高技术领域才加以考虑。本文讨论了干扰对错误的形成机制,提出了对MCU改进的建议。这个建议如果实施,不仅有利于高技术领域的应用,也会惠及一般的民用领域。 1 干扰源的讨论 很久以前,还在“8031+2764+14433”的年代,我们做了一批过程监控仪表,用于灭菌过程F0的监控,遇到了强烈的干扰问题。灭菌过程约30 min,由电触点压力表控制进气
[单片机]
PIC单片机实现通讯功能设计
1. 单片机 PIC1编程(发送部分) LIST P=16F877 #INCLUDE P16F876.INC CBLOCK 0X24 ;保留三个字节作为显示用 COUNT ;作计数器或暂存器用 ENDC ORG 0X0000 ;程序复位入口 NOP START GOTO MAIN ORG 0X20 MAIN MOVLW 0X30 ;以下将RAM内容初始化 MOVWF FSR ;从30H单元开始 MOVLW 0X30 ;将值30H赋给单元30H MOVWF COUNT INTRAM MOVF COUNT,0 ;将30H~7FH赋给单元30H~7FH MOVWF INDF INCF COUNT,1 INCF FSR,1 BT
[单片机]
基于MSP430单片机的倒车雷达设计
超声波雷达又称泊车辅助系统,是一种利用超声波原理,由装载于车尾保险杠上的探头发送超生波撞击障碍物后, 反射此声波探头,从而计算出车体与障碍物之间的距离。倒车雷达主要由三部分组成: 感应器(探头),主机,显示设备。感应器发出和接收超声波信号,然后将得到的信号传输到主机里面的电脑进行分析,再通过显示设备显示出来。随着人们对汽车驾驶辅助系统易用性要求的提高,以及单片机价格不断下降和汽车电子系统网络化发展的要求,新型的倒车雷达都是以单片机为核心的智能测距传感系统。本文介绍了一种基于MSP430 单片机的超声波倒车雷达监测报警系统。 1 系统的硬件设计 本倒车雷达主要用来显示汽车后面的情景,测量和障碍物之间的距离。整个设计主要由
[单片机]
MCU市场呈现新局面,国内厂商如何抓住机遇进入市场
就当下 MCU 芯片缺货涨价,国际大厂商并购整合,整个市场面临着与之前略有不同的新环境。当然,对于国内厂商来说,应该抓住这一机遇进入市场。在2017深圳国际电子展暨嵌入式系统展上,《电子产品世界》编辑采访了 华大半导体 有限公司 MCU 事业部总经理谢文录先生,就当下 MCU 市场发展、国内厂商面临的机遇和挑战及如何与国际大厂商同台竞争进行了分析和解读。下面就随嵌入式小编一起来了解一下相关内容吧。 国内MCU产业发展不充分、不平衡 随着物联网发展的进一步深入,当下国产MCU产业发展主要面临发展不充分和不平衡两大难题。 其中,不充分主要体现在两个方面: 第一个不充分是很多国内产品找不到最合适的MCU芯片支持。以往新型的
[嵌入式]
AVR的指令与汇编器系统及宏指令
AVR单片机指令系统是RISC结构的精简指令集,CISC结构存在指令系统不等长,指令数多,CPU利用效率低,执行速度慢等缺陷。 ATmega16共有131条指令,按功能可分为五大类,它们是: A.算术和逻辑运算指令(28 条); B.比较和跳转指令(36 条); C.数据传送指令(35 条); D.位操作和位测试指令(28 条); E.MCU控制指令(4 条)。 AVR一条指令的长度大多数为16位,还有少部分为32位。 AVR的指令的一般格式为: 操作码用于指示CPU执行何种操作,是加法还是减法,是数据传送还是数据移位。 一条指令可以只有操作码,或第一操作数。 AVR的汇编语句的格式: (1) 伪指令 (2)
[单片机]
EM78P447S单片机/在直流电机红外遥控系统应用
1 EM78P447S的主要特点 EM78系列单片机是台湾义隆电子股份有限公司采用CMOS工艺制造的8位高性价比单片机。该系列单片机一般都内置看门狗计数器(WDT)、RAM、ROM、可编程定时/计数器、预分频器以及5层堆栈。该系列器件的绝大部分指令只需两个振荡周期,同时具有内外部中断、低电压检测复位、可编程I/0、内部上拉电阻和集电极开路输出、SLEEP方式等功能。另外,EM78P447S单片机还具有编程简单、速度快、功耗小、成本低等优点,能广泛应用于玩具、家电、工业控制等方面。 EM78P447S的主要性能特点如下: ●工作电压范围:2.5-5.5V; ●允许温度范围:0-70°C; ●工作频率范围: 石英振荡型:5
[单片机]
什么是单片机寻址方式?寻址方式有哪些?
寻找操作数地址的方式称为寻址方式。 1. 寄存器寻址 寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。 如果程序状态寄存器PSW的RS1RS0=01(选中第二组工作寄存器,对应地址为08H~0FH),设累加器A的内容为20H,则执行MOV R1,A指令后,内部RAM 09H单元的值就变为20H。 2. 直接寻址 直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特
[单片机]