感悟网 导航

如何用单片机写一段(ASM格式,不是C语言)程序 要求:8盏灯轮流闪烁的流水灯 单片机编程语言一般有哪几种

作者&投稿:郦田 (若有异议请与网页底部的电邮联系)
C语言与单片机C语言的区别 急求~

单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。具体体现在:
1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法 如C51扩展的 data xdata bit sbit 一类的,还有一些中断程序写法 void int() interrput 1 一类的。
2、C是一门语言,由对应平台的编译器编译成对应平台汇编的程序,各平台的汇编不一样,当然编译器也不一样 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的编译器 。具体区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。
3、单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。
C51本质就是C,是为在单片机上使用C而出来的,如果C不牢固,还是多掌握一点C再学C51,不过新增的知识也不少,而且基本上跟C无关。
4、C只是一种高级语言。它除具有一般高级语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使之方便于在 写语句的时候,直接直观的编写。这样就差不多是单片机C语言。
C语言的特性差不多都可以用于单片机C语言,因为它们的编译机理都是一样的。

扩展资料:
C语言:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
单片机的C语言:
单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构,设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。
51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用
参考资料:
C语言-百度百科
单片机C语言-百度百科

单片机编程语言很多,大致分成三类:机器语言、汇编语言、高级语言。机器语言由于繁琐容易出错,大部分用户已经不再便用。
1.单片机的汇编语言
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少,程序执行效率高,由于它一条指令就对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。但是不同的类型的单片机,其汇编语言可能有点差异,所以不易移植,因为他们的指令系统是有区别的。但懂得汇编语言可帮助了解影响川可语言效率的特殊规定。例如,懂得汇编语言指令就可以便用在片内ram作变量的优势,因为片外变量需要几条指令才能设署累加器和数据指针进行存取。同样的,当要求便用浮点数和启用函数时也只有具备汇编编程经验才能避免生成庞大的、效率低的程序,对于这方面的编程,没有汇编语言是做不到的。
2.单片机的C语言
单片机的C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言具有功能丰富的库函数,运算谏磨快,编译效率高,有良好的可移植性,而且可以实现直接对系统硬件的控制。此外,C语言程序具有完整的程序模块结构,从而为软件开发中栗用模块化程序设计方法提供了有力的保障。与汇编相比,有如下优点:
对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,至于寄存器分配、不同存储器的寻址及数据类型等细节均由编译器管理。程序有规范的结构,可分为不同的函数。这种方式可便程序结构化,将可变的选择与特殊操作组合在一起,改善了程序的可读性。
编程及程序调试时间显著缩短,从而提高效率。提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。
功能强而有弹性,提供的库包含许多标准子程序,具有较强的数据处理能力,能将已编好程序容易的植入新程序,因为它具有方便的模块化编程技术。
单片机C语言作为一种非常方便的语言而得到广泛的支持,(语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片翻U均不同较快地移植过来。
用单片机c语言进行程序设计,已成为单片机软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。

拓展资料
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机”的称呼。

没听明白你要的轮流闪烁的效果。但是我写了一段你试试,不行的话你自己修改调试调试。
ORG 0000H
MOV R0,#11111110B
start: MOV A,#11111110B
MOV P2,A
s: CALL delay
RL A
MOV P2,A
CALL delay
CJNE A,#01111111B,s
MOV A,R0
MOV P1,A
RL A
MOV R0,A
JMP start
delay: MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
k3: DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
RET
END

单片机AT89C51的P1口和P2口分别接八个发光二极管,P2口八灯实现左移,延时0.5S,
要求左移第一次,P1.0对应灯点亮,P2口灯左移第二次,P1.1对应灯亮,如此延续下去,
做到我理解你的需求

汇编也很简单啊 是用仿真来做吧?

《怎么用arduino单片机模拟一个ds18s20(ds1820)的信号》
答:他靠单线端口通讯,就是它只需要一根线和单片机连接,剩下两根分别接电源正极和负极。编程如下:先使用一段汇编语言,将其保存为ds.asm /*--- 程序名: 温度数据汇编精确时间采集 编写人: 杜洋 ---*/ DSSP SEGMENT CODE ;程序段 PUBLIC DSS ;入口地址,跳转到DL标号处执行汇编程序 RSEG DSSP ;...

《用单片机的定时器设计一个秒表程序,运行该程序后,内部RAM单元DEC的内...》
答:NOMOD51 INCLUDE(F:\c51\ASM\Reg51GB.inc)ADDRDISPLAYEQU 30H DATADISPLAY EQU 31H datahour equ 32h dishour_H equ 33h dishour_L equ 34h datamin equ 35h dismin_H equ 36h dismin_L equ 37h datasec equ 38h datasec_H equ 39h datasec_L equ 3ah SYM_L EQU 3BH SYM_H EQU ...

《求A/D转换单片机.ASM程序》
答:要求是(1)调节电位器,首先要有电位的变化。(2)A/D转换芯片实现数模转换(3)把转换的数字信号在数码管上显示,可以用串并转换使之显示... 要求是(1)调节电位器,首先要有电位的变化。(2) A/D转换芯片实现数模转换(3)把转换的数字信号在数码管上显示,可以用串并转换使之显示 展开 ...

《C51写单片机程序如何插入汇编指令.》
答:C51些单片机程序插入汇编指令的方法如下:1、以#pragma asm开始,以#pragma endasm结束,用pragma asm和#pragma endasm这两个伪指令将汇编代码包起来。比如:2、但是如果直接这样嵌入汇编代码的时候,编译时会报错,错误代码是:'asm/endasm' requires src-control to be active 解决办法是:在工程中,...

《AVR单片机asm("nop");什么意思,8M的话多少 时间》
答:AVR单片机中 asm("nop");这条语句,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。nop是一个空等待汇编指令,这个指令执行时,单片机是什么也不做的,仅仅起一个时间延时作用。对于AVR单片机来与,如果不分频,那么一个振荡周期就是一个指令周期,因此...

《单片机实验数码转换实验代码如何补充,补充过程及注释解释》
答:00H~FFH,保存到寄存器R4 中。2. 将16 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在 RAM 的20H、21H、22H 单元中。2.2.4 实验步骤 1. BCD 整数转换为二进制整数 实验参考例程:(Asm2-1.asm)ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0, #20H ;BCD ...

《c51单片机汇编ASM转化成C语言》
答:首先说下功能:这是一个计数器,每秒计数一次,从0开始,计数到99后复位0,然后再反复执行。。数码管是共阴型的,由P20,P21作为片选信号控制亮灭。P20、P21为0时,选中数码管,送入相应的段码,即可显示。程序如下:include <reg51.h> unsigned char shiwei,gewei,count,times;uusigned char code ...

《用STM8S105单片机写一个输出频率为2KHz的方波,C语言? 没用过stm8单片机...》
答:TIM2_CCER1= 0x03; // CC1配置为输出 TIM2_ARRH = 0x07; // 配置PWM分辨率为10位,ARR=0x07D0 TIM2_ARRL = 0xD0; // PWM频率=8M/0x07D0=2000Hz TIM2_CR1 |= 0x01; // 计数器使能,开始计数 } void init_devices(void){ asm("sim");SystemInit();GPIO_init();...

《pic12f629单片机,想选内部4M晶振,应该如何写程序?》
答:要看是用什麼语言? 哪一家的编译器?以 Microchip MPLAB IDE 自带的 MPASM 为例,请看自己电脑中的这个组语代码模板范例:C:\Program Files\Microchip\MPASM Suite\Template\Code\12F629TEMP.ASM 第 37 行

《51单片机C与汇编的混编问题》
答:51里C语言嵌入汇编的方法:用C语言做个框架,编译后改为汇编框架,填入汇编程序,一般可以保证和C语言兼容.注意格式 _asm { ...} 把asm作关键字,其后的汇编用大括号阔起如:void set_time(void){ asm { del1:mov r4,#0fh del2:mov r5,#0fh djnz r5,del2 djnz r4,del1 } }...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网