❶ 汇编能不能写单片机
没有问题,只要指令集和存储器,外设的头文件正确包含即可。
❷ C51单片机编程中C语言如何嵌套汇编语言
#include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit DS=P3^3; //定义DS18B20接口 int temp; uchar flag1; void display(unsigned char *lp,unsigned char lc);//数字的显示函数;lp为指向数组的地址,lc为显示的个数 void delay();//延时子函数,5个空指令 code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40,0x39,0x00};//共阴数码管显示数的组成是 "0-9""0-9有小数点的" "-" "C" "空表" unsigned char l_tmpdate[8]={0,0,10,0,0,0,0,0};//定义数组变量,并赋值1,2,3,4,5,6,7,8,就是本程序显示的八个数 int tmp(void); void tmpchange(void); void tmpwritebyte(uchar dat); uchar tmpread(void); bit tmpreadbit(void); void dsreset(void); void delayb(uint count); void main() //主函数 { uchar i; int l_tmp; while(1) { tmpchange(); //温度转换 l_tmp=tmp(); //读取温度值 if(l_tmp<0) l_tmpdate[0]=20; //判断温度为负温度,前面加"-" else { l_tmpdate[0]=l_tmp/1000; //显示百位,这里用1000,是因为我们之前乖以10了 if(l_tmpdate[0]==0) l_tmpdate[0]=22;//判断温度为正温度且没有上百,前面不显示,查表第12是空 } l_tmp=l_tmp%1000; l_tmpdate[1]=l_tmp/100;//获取十位 l_tmp=l_tmp%100; l_tmpdate[2]=l_tmp/10;//获取个位再 l_tmpdate[2]+=10;//加入小数点,查表可得出有小数点的排在后10位,所以加10 l_tmpdate[3]=l_tmp%10;//获取小数第一位 l_tmpdate[4]=21; for(i=0;i<10;i++){ //循环输出10次,提高亮度 display(l_tmpdate,5); } } } void display(unsigned char *lp,unsigned char lc)//显示 { unsigned char i; //定义变量 P2=0; //端口2为输出 P1=P1&0xF8; //将P1口的前3位输出0,对应138译门输入脚,全0为第一位数码管 for(i=0;i<lc;i++){ //循环显示 P2=table[lp[i]]; //查表法得到要显示数字的数码段 delay(); //延时5个空指令 if(i==7) //检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到第四位数据 break; P2=0; //清0端口,准备显示下位 P1++; //下一位数码管 } } void delay(void) //空5个指令 { _nop_();_nop_();_nop_();_nop_();_nop_(); } void delayb(uint count) //delay { uint i; while(count) { i=200; while(i>0) i--; count--; }
❸ 单片机中c语言中如何加入汇编
1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:
2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”
和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最
后文件;
4、编译,即可生成目标代码。
❹ 关于8051单片机中的c语言嵌入汇编
你现在看到的是什么结果?
编译通过的话,应该没有问题.实在不行,进入debug模式,看看汇编程序.
❺ C51写单片机程序如何插入汇编指令.
C51些单片机程序插入汇编指令的方法如下:
1、以#pragma asm开始,以#pragma endasm结束,
用pragma asm和#pragma endasm这两个伪指令将汇编代码包起来。
比如:
3、如果勾选椭圆圈中的两项,这样就可以了。
❻ PIC单片机c语言中如何嵌套汇编
3楼的方法是用keil开发51单片机时候潜入汇编的 方法,对于pic单片机来说,不能这杨编译。因为KEIL不能编译pic单片机的C语言和汇编语言,必须用MPLAB+PICC或者MPLAB+ mc编译器 。
一般pic12、16系列的8位中低端单片机的编译器潜入汇编是用 _asm(" 汇编单句语句 ");
如果要输入一大段汇编语句,则用:
#asm
N条汇编语句
#endasm
❼ PIC单片机c语言中如何嵌套汇编
3楼的方法是用keil开发51单片机时候潜入汇编的
方法,对于pic单片机来说,不能这杨编译。因为KEIL不能编译pic单片机的C语言和汇编语言,必须用MPLAB+PICC或者MPLAB+
mc编译器
。
一般pic12、16系列的8位中低端单片机的编译器潜入汇编是用
_asm("
汇编单句语句
");
如果要输入一大段汇编语句,则用:
#asm
N条汇编语句
#endasm
❽ 8051单片机c语言编程 如何嵌入汇编语言呢
这和的你的的编译器是有关的
还有楼上说的根本不对 那是 上位机嵌入汇编的方式
根本不是 51 的·
如果在51 KEIL 中
方法是这样的
#pragma ASM
; Assembler Code Here
#pragma ENDASM
不过你还得在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”
和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
嵌入汇编好嵌入不过我现在一直都闹不懂的就是 如何在嵌入的汇编中 调用 c 中的 变量 ,,希望有知道的分享一下!!
希望不是用 用宏汇编那样的话太麻烦了!!
❾ 51单片机C程序语言怎么嵌入汇编中断
void
touch_INT0()
interrupt
0
{
#pragma
asm
...汇编
语句
#pragma
endasm
}
需要打开SRC:
一、
右键
单击
源程序
文件,选择“Options
for
...”
二、选择“Properties”选项卡
三、在右侧,选中这两个选项“Generate
Assembler
SRC
File”和“Assemble
SRC
File”。如果这两个选项前面的复选框是灰色的,重新选择一下就可以了。
还可能要添加相应的
库文件
。
❿ 51单片机中,C语言中怎么加入汇编语言
C语言的执行效率比汇编高很多,为什么要加汇编呢,C语言中不直接加入汇编,少数的汇编指令你可以在开头宏定义一下,比如#define _NOP()_ nop();