单片机学什么语言比较好(单片机入门学什么好)

本文目录
单片机入门学什么好
对于初学者来说,在书店有很多针对8051单片机系列和Z80系列的书籍,因为主要是这两种单片机在国内比较普及。但是这两种单片机其实已经过时了,学习它的目的就是为了学习汇编语言及其结构。
:books:书籍众多
单片机的书籍太多太多了,也跟不同的单片机厂商、型号等相关,实在不好推荐。
:thinking_face:学习难点
学习单片机困难的地方在于每种单片机的指令和汇编格式几乎都不同,比如8051的与MOTOROLA 68XXX不同,就连MOTOROLA 6800、6805、6809、6811等等相互的指令格式也不同。
:laptop:软件编程
当然如今的单片机也不一定非用汇编语言,很多也可以通过相关的软件而让我们直接使用C语言编程,对单片机进行控制。
:graduation_cap:学习建议
你要根据你所能得到的条件,或实验环境来针对某款单片机来进行学习。
单片机学习经验分享
我也是一个新手,我的经验仅供参考,别见笑。单片机其实并不难学,你已经有了基础,应该学习起来很快的。
:books:学习资料
数字电路不用专门学,尤其是初接触单片机,用不了太多数字电路知识,当然你要深入学习,那少不了。你只要知道基本的寄存器、存储器的原理就行。像74LS373之类的器件。
:man_technologist:汇编语言
单片机里用的汇编语言比微机原理用的汇编简单,一共111条指令,背一背也就会了。虽然说是C语言也可以编程,但我感觉一开始还是要用汇编,因为C语言编程有时不涉及内部寄存器存取的问题,如果你对这些不是很了解,可能会感到迷茫。如果你对汇编很熟了,再转到C语言更好一些。
:memo:基础原理
单片机的基本原理很简单,5、6页内容搞定。像51单片机,40个引脚功能要记熟。片内存储器的分布、指令的操作时序这些都要弄明白。寻址方式等等都要弄懂记熟的。
:alarm_clock:定时器、串行口、中断
以后涉及到定时器、串行口、中断可能要复杂一些,多分析一些源代码,熟悉了就行。
:electric_plug:扩展器件
8155 8253之类的器件扩展是在掌握了基础知识后才用得到的。这些扩展器件的工作方式都是先寻址,再传递数据,所以要有选通信号,像单片机引脚的ALE、PSEN、WR、DR之类都是选通器件用的。一般找这个思路,这些知识都能很快搞定。
单片机学习建议
学习单片机的建议,以及在数据采集时需要注意的问题。
:books:学习建议
学单片机建议从51单片机学起,先学汇编,再学C51语言。学第二种单片机,你可以直接学C语言,而没必要非得慢慢地学习汇编来掌握,因为你已经掌握了51单片机的汇编,没必要非得再学其它单片机的汇编,除非你时间很充足,或者是你想把基础打得更扎实。
:man_technologist:VB上位机程序
VB好好学,建议把串口通信上位机程序多看看,社会上这些东西用得很多。
:bar_chart:数据采集与处理
当你在用单片机做数据采集时,你一定不要忘了数据处理,比如加数字滤波器,无非就是用单片机程序加上相应的判断,忽略采集某一部分不可取的值,但是建议先去遇见问题再去针对问题解决问题,我所讲的数字滤波器可能不是你所想的那个概念。
:abacus:数学基础
对数学不会要求太高的,不过那些课学好了总归是有好处的。
单片机开发用什么语言好
随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率。
Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是目前较流行的51系列单片机的开发工具。
一、C51语言程序设计的基本技巧
首先,C51语言程序设计要尽可能采用结构化的设计方法。可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可使程序的可读性、移植性增强。
C51语言的主程序结构:
#include
main0{while(1);}
这是最小的C程序,包括头部文件和程序主体。头部文件为引用的外部资源文件,包括硬件信息和外部模块提供的可使用的函数和变量的说明。
语句定义后,就可以在C语言程序中像汇编一样使用这些硬件设备。
在C5l中常用项目来管理,项目一般分为C文件块和头部文件块,常把不同的功能写在不同的C文件中,依靠项目的管理,最后把所有文件连接起来,这样就可以得到烧录的HEX文件或BIN文件。没有在头部文件中列出的文件,可以算是该C文件的内部函数和变量,外部C不能使用。另外,在程序设计过程中要充分利用C51语言的预处理命令。
对于一些常用的常数,如TRUE、FAlSE、PI,以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义(#de-fine)或集中起来放在一个头文件中进行定义,再采用文件包含命令(#in-elude)将其加入到程序中,这样当需要修改某个参量时,只需修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都进行修改,有利于文件的维护和更新。
举例:利用宏定义和条件编译,源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。程序如下:
#define flag 1#ifdef flag==l#define fose 6Mdelay=10;#elif flag==0#define fose 8Mdelay=12;#else#define fosc 12Mdelay=20;#endiFMain0{ for(I=O;l

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





