单片机应用编程技巧100问1.C语言和汇编语言在开发单片机时各有哪些优缺点?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。2.C或汇编语言可以用于单片机,C++能吗?答:在单片机开发中,主要是汇编和C,没有用C++的。3.搞单片机开发,一定要会C吗?答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较好。
上传时间: 2013-12-10
上传用户:busterman
//芯片资料请到www.elecfans.com查找 //DS1820 C51 子程序//这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间//sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte;typedef unsigned int word; //延时void delay(word useconds){ for(;useconds>0;useconds--);} //复位byte ow_reset(void){ byte presence; DQ = 0; //pull DQ line low delay(29); // leave it low for 480us DQ = 1; // allow line to return high delay(3); // wait for presence presence = DQ; // get presence signal delay(25); // wait for end of timeslot return(presence); // presence signal returned} // 0=presence, 1 = no part //从 1-wire 总线上读取一个字节byte read_byte(void){ byte i; byte value = 0; for (i=8;i>0;i--) { value>>=1; DQ = 0; // pull DQ low to start timeslot DQ = 1; // then return high delay(1); //for (i=0; i<3; i++); if(DQ)value|=0x80; delay(6); // wait for rest of timeslot } return(value);} //向 1-WIRE 总线上写一个字节void write_byte(char val){ byte i; for (i=8; i>0; i--) // writes byte, one bit at a time { DQ = 0; // pull DQ low to start timeslot DQ = val&0x01; delay(5); // hold value for remainder of timeslot DQ = 1; val=val/2; } delay(5);} //读取温度char Read_Temperature(void){ union{ byte c[2]; int x; }temp; ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0xBE); // Read Scratch Pad temp.c[1]=read_byte(); temp.c[0]=read_byte(); ow_reset(); write_byte(0xCC); //Skip ROM write_byte(0x44); // Start Conversion return temp.x/2;}
上传时间: 2013-11-03
上传用户:hongmo
单片机教程内容有:CS-51单片机实用子程序库,单片机编程入门26讲,C51单片机C语言学习,单片机C语言教程,单片机应用等等。
上传时间: 2013-10-17
上传用户:aysyzxzm
智能小车
标签: 智能小车
上传时间: 2013-10-09
上传用户:swaylong
小车
标签: 智能小车
上传时间: 2013-11-08
上传用户:geshaowei
今天,几乎所有电子设备里面都包含了嵌入式的软件系统。这些软件隐藏在我们的手表里,录像机里,手机里,甚至可能在烤面包中。这本书就是要教你怎样在嵌入式系统中使用C和C的派生语言C++。即使你已经知道如何编写嵌入式软件,你还是可以从这本书里学到很多东西。 合适就看看吧。
标签:
上传时间: 2014-01-10
上传用户:徐孺
Source files for pxa ac97 sound driver The packet contains the files that is listed below driver files /SOURCE/drivers/sound Makefile ac97.c ac97.h ac97_codec.c pxa-ac97.c pxa-audio.c pxa-audio.h sound_core.c /SOURCE/include/linux soundcard.h
标签: files contains Source driver
上传时间: 2013-12-31
上传用户:qunquan
拷贝构造和赋值操作符,C#和本机 C++ 代码的互用性
标签: 操作符
上传时间: 2014-01-25
上传用户:youlongjian0
文件功能 44binit.s----中断初始化,存储器,堆栈,系统初始化,建立C程序运行环境。 mencfg.s-----定义存储器延时等参数 option.s-----定义系统时钟频率等 main.c-------主函数 44blib.c-----S3C44B0X的一些自己编写的库文件
上传时间: 2015-04-14
上传用户:yuchunhai1990
这是我的课程设计 由于时间有限,程序难免有不足。 还请多多指教。 程序建议不要在win2000和win xp的cmd下运行。 推荐在win98或纯dos中装有UCDOS中文DOS平台下运行。 主菜单程序为main.c 运行此程序,选择相应的菜单,即可运行查看到其他程序。 wnl.c万年历 adstd.c 学生数据库 ply.c小蜜蜂(UFO)游戏 tlife 生存模拟 但是要求main.c和其他程序的执行文件必须在同一目录里(文件夹)。否则连接其他程序将失败。 建议直接运行我已经编译好的执行文件(在ok目录下)运行main.exe即可通过菜单对四个程序进行调用。 如果发现不能正常使用本程序,请与我联系。 寝室电话:0732-8370551 7324474 QQ176141729 email:coynnbai@163.com 学生:陈欢 班级:03级计算机6班
标签:
上传时间: 2014-01-27
上传用户:wuyuying