单片机包含命令编译器执行吗
㈠ 单片机是什么如何编程输入单片机
1、建议你接收头使用HS0038一体化接收头,因为其接受频率宽,我做过实验,因为单片机产生中断一般是26-27us,那么产生的频率并不是标准的38KHZ,而是37-38.5范围,其他很多的接收头接收严格。
2、红外线接收头在接收到38Khz的红外线时候,输出脚为低电平0,而在未接收到38Khz的红外线的时候,输出脚为高电平,其电压值与电源一致。
3、你可以把红外线看成是手电光,调制成38khz是增加其发射功率,而红外线一体化接收头只接收38Khz的脉冲波。
4、可以通过判断语句随时监控P1.7脚,如发现P1.7为低电平,立即执行下面程序,这个简单不说了。
5、发射电路可以利用中断程序产生13us中断,驱动引脚如P1.0产生中断,控制一个三极管基极,利用三极管控制红外线发射管电源,而红外线发射管的负极接TXD脚,红外线接收直接可以利用RXD脚接红外线接收管的输出脚。
以上内容,本人原创,欢迎提出意见。
㈡ 单片机编程知识九大问答知识
单片机编程知识九大问答知识
为帮助大家更加了解单片机编程知识,下面,我为大家分享单片机编程知识问答知识,希望对大家有所帮助!
搞单片机开发,一定要会C吗?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用c语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较好。
而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。
综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。
当开发一个较复杂而又开发时间短的项目时,用C还是用汇编开发好?
答:对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。
C语言和汇编语言在开发单片机时各有哪些优缺点?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的.一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。
对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题,而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。
如果对单片机C语言有兴趣,HOLTEK的单片机就有提供C编译器,可以到HOLTEK的网站免费下载使用。
C或汇编语言可以用于单片机,C++能吗?
答:在单片机开发中,主要是汇编和C,没有用C++的。
在教学中要用到8088和196芯片单片机教材,请问哪里可以找到关于这方面的书或资料?
答:有关这方面的教材,大学里常用的一本是《IBM-PC汇编语言程序设计》清华大学出版社出版的,在网上以及书店都是可以找到的,另外网上还可以搜索到很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬 等编着 )和《16/32 位微机原理、汇编语言及接口技术》(作者: 钟晓捷 陈涛 ,机械工业出版社 出版)等,可以在较大型的科技书店里查找或者直接从网上订购。
初学者到底是应该先学C还是汇编?
答:对于单片机的初学者来说,应该从汇编学起。因为汇编语言是最接近机器码的一种语言,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基础。
我是一名武汉大学电子科技大3的学生,学了电子线路、数字逻辑、汇编和接口、C语言,但是总是感觉很迷茫,觉好象什么都不会,怎么办?
答:大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相脱节,这是国内大学教育系统的通病,不过对于学生来说切不可好高骛远。一般从大三会开始接触到一些专业课程,电子相关专业会开设相关的单片机应用课程并且会有简单的实验项目,那么要充分把握实验课的机会,多多地实际上机操作练习。平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会2-3个人合作做一个完整系统,会更有帮助。到了大四毕业设计阶段,也可以选择相关的课题作些实际案例增长经验。做什么事情都有个经验的积累过程,循序渐进。
请问作为学生,如何学好单片机?
答:学习好单片机,最主要的是实践,在实践中增长经验。在校学生的话,实践机会的确会比较少,但是有机会的话,可以毕业实习选择相关的课题,这样就可以接触到实际的项目。而且如果单片机微机原理是一门主课的话,相信学校会安排比较多的实践上机机会。有能力的话,可以找一些相关兼职工作做做,会更有帮助。而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完美,平时也要注意硬件知识的积累,多上上电子论坛网站,买一些相关杂志。可能的话,可以到电子市场去买一些小零件,自己搭一个小系统让它工作起来。
如何才能成为单片机的高手啊?
答:要成为单片机高手,应该多实践,时常关注单片机的发展趋势;经常上一些相关网站,从那里可以找到许多有用的资料。
;㈢ 单片机C语言编程,要使用C语言自带的库函数,使用哪个宏包含命令
使用#include调族颤明用库函数。
C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理兆告命令#include将有关的头文件包含进来。
C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代洞扰码长度。
单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。
㈣ 关于C51单片机单片机的几个问题
1、徐汉斌版单片机微型计算机原理教材P144上说“中断服务程序最后一条指令必须是中断返回指令RETI”,
这句话是不是错了?
如果最后一句话是跳转指令不是也可以么,只不过程序不会回到断点处罢了,PC也会填充跳转处PC地址
--写跳转指令、或者写其它什么指令,都行,随你便。单片机都会执行。
--只是,单片机没有执行 RETI 指令,中断程序就没有结束。
--如果,你不写 RETI,中断后,单片机就永远处于中断程序之内。
2、在方式0定时器T0的初值为1E0CH,则TH0,TL0的初值分别为()
这题答案给的居然是F0H、0CH,我觉得分明是1EH、0CH啊,是不是答案错了
--写成二进制:1E0CH = 0001 1110 0000 1100B
--取其低 13 位,写成高八位、低五位:11110000、01100
--方式0的初值,就应该是:F0、0C。
3、”MCS 51的程序计数器PC不能被用户使用,因为他没有地址“,
首先,不能被用户使用指的收拾什么?其次,它没有地址那他到底在哪?
--PC 的数值,时时刻刻,在自动加一,这个特点,用户对其,不可控制。
--但是,用户,可以用 JMP 指令,改变 PC 的数值。
--说 PC 不能被用户使用,实际上是他不会用。
--51 单片机里面,确实没有 PC 的地址,因为,谁都不需要这个地址。
4、MOV 20H,@DPTR 这个语句错了是因为DPTR只能用于片外寻址么
--这个指令,并不存在。
DPTR只能用于片外寻址么
--查一下指令表,就知道了。
5、”80C51单片机子程序调用时能自动保护断点和现场“,
这句话错了是不是因为只能自动保护断点不能自动保护现场?
--中断时,51 单片机,采用压栈的方法,自动的保护断点地址。
--保护现场 ?
--单片机,不知道你的现场是什么。
--把单片机和保护现场联系在一起,就是狗戴嚼子,胡勒!
6、MOV A,#33H 是把33H当成无符号数吧?那么如果我想移入一个带符号数呢
就写上负号即可。
MOV A, #-33H
这就行了。
7、向前转移的偏移量为什么等于(目的地址+0100H)-(原地址+3),0100H是什么?
--编写程序,现在都用编译软件来进行编译。
--编译软件,会自动计算程序中的偏移量。
--编程人,根本不用讨论偏移量的计算,以及推导公式。
--有些教材,作者的思维,还停留在人工编译的阶段,抱残守缺,不用理他。
--0100H,是256。