请问一下单片机入门书籍如何入门??

单片机入门捷径与实例_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
单片机入门捷径与实例
本书从初学者的角度对他们在学习单片机过程中遇到的问题进行了归纳,选取了200多个问题,以“非典型”问答方式介绍MCS-51系列及其兼容单片机的基本知识和接口技术。主要内容包括由外而内地介绍MCS-51系列及其兼容单片机的基本结构,指令系统及程序设计,C51语言程序设计,中断系统、定时器/计数器、串行口的工作原理,存储器扩展和接口技术等,并精选择了一些程序设计、中断系统、定时器/计数器应用、串行口应用、接口技术及典型的新型接口器件的应用程序实例。最后给出了部分汇编语言和C51语言程序索引,方便读者设计程序时参考。
单片机入门捷径与实例基本介绍
单片机入门捷径与实例内容简介
《单片机入门捷径与实例》由电子工业出版社出版。
单片机入门捷径与实例作者简介
广东省电梯技术学会理事;广东省自动化学会会员;《控制理论与应用》杂志审稿专家;广东省科技厅科技咨询专家;广东省综合评标专家库评标专家。广东省自然科学基金项目——最经济智能控制的交流传动系统结构及运动过程研究;广州市高等学校第二批教育教学改革研究项目——基于PROTEUS系统仿真的单片机课程教学改革;广州大学实验教学改革研究项目——单片机及嵌入式系统实验教学改革。
单片机入门捷径与实例图书目录
第1章 对单片机的基本认识1   1.1 单片机是什么?1   1.2 单片机是什么样子?1   1.3 单片机有哪些型号?2   1.4 从外形看,怎么知道单片机的功能?2   1.5 怎么知道单片机是否在工作?2   1.6 单片机和微机有什么区别?2   1.7 单片机与专用集成电路有什么区别?3   1.8 单片机与可编程控制器(PLC)有什么区别?3   1.9 单片机的组成结构是怎样的?4   1.10 什么是普林斯顿结构和哈佛结构?5   1.11 MCS—51单片机有什么功能?5   1.12 AT89S系列单片机的功能有什么特点?6   1.13 单片机用得多吗?6   第2章 由外到里认识单片机——单片机的引脚功能8   2.1 单片机的引脚有些什么作用?8   2.2 单片机接晶体振荡器有什么作用?9   2.3 单片机有哪些时序单位?9   2.4 引脚一定要连接吗?10   2.5 复位有什么作用?10   2.6 复位以后单片机处于什么状态?10   2.7 什么是I/O端口?11   2.8 为什么要外接存储器?12   2.9 为什么要复用P0口?12   2.10 扩展外部存储器,一定要用到P2口吗?12   2.11 外部数据存储器的地址资源用不完,能否实现外借?13   2.12 并行口的“读引脚”和“读锁存器”操作有何区别?13   2.13 P1口的结构和工作是怎样的?14   2.14 P3口的结构和工作是怎样的?15   2.15 P2口的结构和工作是怎样的?17   2.16 P0口的结构和工作是怎样的?18   2.17 为什么I/O口锁存器的位置1,才能进行输入操作?20   2.18 I/O口的输入/输出操作需要先进行初始化吗?20   2.19 AT89C2051、AT89S2051等单片机为什么只有20个引脚?20   2.20 怎样才能使单片机工作?21   2.21 什么是单片机最小系统?22   2.22 AT89S系列单片机有什么新的引脚功能?22   第3章 由外到里认识单片机——单片机的内部基本功能23   3.1 单片机的CPU在哪里?23   3.2 程序状态字PSW起什么作用?23   3.3 程序计数器PC起什么作用?24   3.4 特殊功能寄存器有什么作用?25   3.5 什么是程序存储器地址空间?26   3.6 未使用的程序存储器单元里的内容是什么?27   3.7 什么是数据存储器地址空间?27   3.88052等器件有256字节内部数据存储器单元,是否会与特殊功能寄存器产生地址冲突?29   3.9 如何选择使用工作寄存器组?29   3.10 AT89S系列单片机有哪些新的特殊功能寄存器?29   3.11 什么是AT89S系列单片机的ISP系统内编程?32   第4章 指令系统和程序设计36   4.1 指令跟硬件功能有关系吗?36   4.2 还需要人工编译汇编语言源程序吗?36   4.3 理解机器码有什么作用,有必要吗?36   4.4 字节型传送指令MOV有什么特点?37   4.5 把累加器写成A与写成ACC有什么不同?37   4.6 指令格式中的direct是什么意思?38   4.7 一个内部数据存储器单元应该用direct还是Rn形式表示好?38   4.8 如何理解指令中的“@”标识符?39   4.9 如何理解指令中的“#”标识符?39   4.10 如何区分指令中的数值是地址还是常数?39   4.11 什么是堆栈操作?40   4.12 堆栈操作指令的特点是什么?40   4.13 工作寄存器Rn和累加器A可以堆栈吗?41   4.14 堆栈区的起点可以自由设定吗?41   4.15 堆栈区的大小是固定的吗?41   4.16 如何实现数据交换?42   4.17 传送指令MOVC有什么特点?42   4.18 传送指令MOVX有什么特点?43   4.19 算术运算指令的特点是什么?44   4.20 可以实现累加器A的内容自己相加吗?45   4.21 如何实现DPTR的内容减1?45   4.22 乘法指令和除法指令的操作有什么特点?46   4.23 有哪些针对累加器A本身的逻辑操作指令?46   4.24 如何进行与、或、异或运算?47   4.25 LJMP和AJMP指令的区别是什么,如何选用?48   4.26 LCALL和ACALL指令的区别是什么,如何选用?48   4.27 子程序是以LCALL、ACALL指令开始的吗?49   4.28 有几种子程序返回指令,其用途是什么?49   4.29 “SJMP rel”和“JMP @A+DPTR”指令有什么作用?49   4.30 “JZ rel”和“JNZ rel”指令是对哪个寄存器的?50   4.31 CJNE指令的功能是什么?51   4.32 DJNZ指令在程序中的作用是什么?51   4.33 如何理解转移指令中的rel?51   4.34 空操作NOP指令是没有用的指令吗?52   4.35 如何进行可寻址位的数据传送?53   4.36 可寻址位有哪些运算指令?53   4.37 可寻址位有哪些转移指令?54   4.38 在程序中如何表示一个可寻址的位?54   4.39 如何区分一条指令是字节操作指令还是位操作指令?54   4.40 子程序有什么作用,在什么情况下要采用子程序?55   4.41 设计子程序有什么需要注意的地方?55   4.42 什么是保护和恢复现场?56   4.43 子程序的调用可以嵌套吗?56   4.44 为什么中断响应不自动保护“现场”?57   4.45 主程序的主体应放在程序存储器的哪一部分?57   4.46 什么是标号?57   4.47 “$”是什么符号?58   4.48 使用伪指令有什么好处?58   4.49 有哪些常用的伪指令?58   4.50 单片机的程序结构与C语言一样吗?61   4.51 在什么情况下能用“DA A”指令?61   4.52 如何进行压缩BCD码数的减法运算?62   4.53 在汇编语言源程序中,如何表示BCD码常数?63   4.54 如何理解和编写软件延时子程序?63   4.55 指令有“常用”和“不常用”之分吗?64   第5章 单片机的C51语言程序设计65   5.1 C51语言和C语言的程序有什么异同?65   5.2 C51语言程序中变量的存储器类型指的是单片机本身的存储器吗?65   5.3 C51语言如何对程序中的变量确定存储单元?66   5.4 C51语言如何定义和访问单片机的特殊功能寄存器?66   5.5 C51语言程序如何直接访问单片机内部数据存储器单元?67   5.6 C51语言如何定义和访问单片机的可寻址位?67   5.7 C51语言程序如何访问单片机外部数据存储器和I/O接口器件?68   5.8 C51语言的逻辑运算符与汇编语言中的逻辑运算指令是相同的吗?69   5.9 C51语言的位运算符与汇编语言中的位操作指令是相同的吗?69   5.10 C51语言的指针和汇编语言的间接寻址方式有什么区别?69   5.11 在C51语言程序中如何使用单片机的中断功能?70   5.12 C51语言程序的中断函数会自动保护现场吗?71   5.13 在C51语言程序中如何使用定时器/计数器?71   5.14 在C51语言程序中如何使用工作寄存器?71   5.15 C51语言程序可以和汇编语言程序放在一起吗?71   5.16 如何提高C51语言程序的执行速度?72   5.17 采用C51语言设计的程序,是从main()开始执行的吗?73   第6章 中断系统应用74   6.1 为什么要中断?74   6.2 中断系统有什么作用?74   6.3 中断从哪里来?75   6.4 如何知道中断来了?75   6.5 中断了,干什么?75   6.6 中断请求什么时候来?76   6.7 中断服务子程序在哪里?76   6.8 中断完了干什么?76   6.9 有多个中断源同时申请中断,怎么办?77   6.10 有一个中断正在处理(响应)时,又有新的中断申请,怎么办?77   6.11 中断系统应具有什么功能?77   6.12 MCS—51单片机有哪几个中断源?78   6.13 对外部中断信号有什么要求?79   6.14 在中断响应后,进入中断服务前要满足什么条件?79   6.15 从中断申请到进入程序需要多长时间?80   6.16 响应中断后,如何处理中断申请标志?80   6.17 如何设置中断系统?81   6.18 能否用程序控制对中断申请的取舍?82   6.19 “AJMP $”和“SJMP $”是“等待中断”的指令吗?82   6.20 可以用转移指令退出中断服务程序吗?83   6.21 如何掌握中断优先级的顺序?83   6.22 在中断服务程序中如何利用工作寄存器?83   6.23 外中断应用程序举例84   第7章 定时器/计数器应用88   7.1 为什么需要定时器/计数器?88   7.2 定时器/计数器的工作原理是怎样的?88   7.3 定时器/计数器有几种工作方式?89   7.4 如何设置定时器/计数器的工作?89   7.5 定时器/计数器在方式0是如何工作的?91   7.6 定时器/计数器在方式1是如何工作的?91   7.7 定时器/计数器在方式2是如何工作的?92   7.8 定时器/计数器0在方式3是如何工作的?93   7.9 如何使定时器/计数器按我们的希望溢出?94   7.10 如何计算定时器/计数器的计数初值?94   7.11 如何选用定时器/计数器的工作方式?95   7.12 如何实现超过定时器/计数器范围的定时?96   7.13 单片机上电或复位后,定时器/计数器会不会自动开始工作?96   7.14 用方式0、1、3进行周期性定时/计数时,为什么要重新装入计数初值?96   7.15 如何设计定时器/计数器的应用程序?96   7.16 定时器/计数器应用举例97   第8章 串行口应用115   8.1 什么是同步和异步串行通信?115   8.2 什么是单工、半双工、全双工方式?115   8.3 实现串行通信要用哪些引脚?116   8.4 为什么需要时钟控制串行通信?116   8.5 MCS—51单片机的串行口是哪种接口协议?116   8.6 如何知道串行发送/接收是否已经完成?116   8.7 串行口如何控制?117   8.8 复位后,单片机的串行口会自动处于接收数据的状态吗?117   8.9 串行缓冲寄存器SBUF有什么作用?118   8.10 什么是波特率?如何确定波特率?118   8.11 如何计算串行方式1、3的波特率?118   8.12 什么是串行发送?发送时数据传送的顺序是怎样的?119   8.13 什么是串行接收?接收时数据传送的顺序是怎样的?119   8.14 需要关心发送/接收的详细过程吗?120   8.15 串行口的发送/接收会影响程序的执行吗?120   8.16 串行方式0的发送/接收条件是怎样的?120   8.17 串行方式1的发送/接收条件是怎样的?121   8.18 串行方式2、3的发送/接收条件是怎样的?121   8.19 串行方式2、3中TB8、RB8位起什么作用?122   8.20 什么是主从通信方式?122   8.21 串行控制寄存器SCON的SM2位有什么作用?123   8.22 如何应用串行方式1?123   8.23 如何应用串行方式2、3?130   8.24 一个完善的单片机串行通信系统应考虑哪些因素?137   第9章 单片机接口技术与存储器扩展138   9.1 程序存储器不够用,怎么办?138   9.2 数据存储器不够用,怎么办?139   9.3 什么是总线?139   9.4 什么是三总线结构?139   9.5 如何处理空余的高位地址线?140   9.6 什么是I/O接口和接口技术?141   9.7 什么是接口芯片和端口?141   9.8 接口电路有哪些组成部分?141   9.9 并行I/O口不够用,怎么办?142   9.10 串行I/O口不够用,怎么办?143   9.11 用RAM器件扩展的存储器一定是数据存储器吗?143   9.12 用ROM器件扩展的存储器一定是程序存储器吗?143   9.13 如何扩展程序存储器,并对扩展电路进行分析?144   9.14 如何扩展数据存储器,并对扩展电路进行分析?145   9.15 如何用EEPROM扩展存储器,并对扩展电路进行分析?147   9.16 如何访问扩展的程序和数据存储器?149   9.17 如何理解P0、P2口作为I/O口和地址/数据总线时使用上的区别?   9.18 P0、P2口能同时作为I/O口和地址/数据总线使用吗?150   9.19 如何实现用外部数据存储器方式扩展I/O口?150   9.20 单片机与外部器件间有什么数据传送方式?152   第10章 显示与键盘接口技术153   10.1 什么是LED数码管动态显示的“段控”和“位控”?153   10.2 LED数码管显示器有哪些工作方式?154   10.3 要显示的数字、字符,如何变成显示的“段码”?155   10.4 动态显示时如何保证同时清晰看到所有位?155   10.5 如何更新显示的内容?155   10.6 动态显示为什么采用显示缓冲区的形式?155   10.7 如何编写动态显示程序?156   10.8 以按键和键盘作为输入器件时,为什么需要消抖?163   10.9 如何编写简单的按键处理程序?163   10.10 矩阵键盘电路是怎么样的?166   10.11 单片机如何知道矩阵键盘何时有按键按下?166   10.12 如何识别矩阵键盘中哪个键按下?167   10.13 如何设计矩阵键盘处理程序?168   10.14 一个完善的键盘处理程序应考虑哪些因素?172   10.15 LCD液晶显示模块有什么特点?173   10.16 LCD液晶显示模块有哪些引脚?173   10.17 LCD液晶显示模块有哪些寄存器?174   10.18 LCD液晶显示模块有哪些编程指令?175   10.19 MCS—51指令可以对LCD模块编程吗?177   10.20 如何使用LCD液晶显示模块?178   10.21 什么是SPI总线?182   10.22 显示驱动器MAX7219有什么特点?183   10.23 如何使用和设置MAX7219的寄存器?185   10.24 如何应用MAX   10.25 带SPI接口的单片机如何连接和控制MAX   第11章 实时时钟与温度传感器接口技术197   11.1 实时时钟DS12C887如何与单片机接口?197   11.2 串行实时时钟DS1306有什么功能?202   11.3 单片机如何与串行实时时钟DS1306接口?204   11.4 什么是单总线?208   11.5 温度传感器DS18B20有什么特点?209   11.6 DS18B20有哪些存储单元?210   11.7 什么是循环冗余校验?211   11.8 DS18B20是怎样实现CRC校验的?212   11.9 MCS—51单片机如何连接和控制DS18B20?213   11.10 单片机控制DS18B20的应用程序举例217   附录A223   附一:MCS—51单片机指令系统功能分类及注释表223   附二:MCS—51单片机指令系统顺序查询及注释表226   附录B 部分程序索引230   附一:汇编语言程序230   附二:C51语言程序231   参考文献233新手如何入门单片机开发新手如何入门单片机开发数字科技百家号如果你懂一些计算机原理和C语言开发,读下面的文章就不会很费劲。但如果不懂也没关系,那就交叉学习吧。什么是单片机从CPU说起。CPU(Central Processing Unit, 中央处理器)CPU由运算器、缓存器及总线构成。其中,运算器是指ALU(Arithmetic logic unit,算术逻辑单元),是CPU的核心;缓存器(Cache)可分为一级缓存、二级缓存和三级缓存,容量逐步递增,读写速度速度递减,成本递减;总线(Bus)分为数据、控制和状态三种。典型代表:8086。物理结构从物理结构上看,CPU可分为逻辑部件、寄存器部件和控制部件。逻辑部件主要用于定点或浮点算术运算操作、移位操作和逻辑操作;寄存器部件可分为通用、专用和控制。每一种寄存器都有它自己的用处;控制部件主要用于指令译码和发出控制信号。性能参数作为数据处理的中心,最主要的参数可以说是主频和外频了。先说外频,外频是基准频率,它决定了主板的运行速度,人们所说的超频,超的就是外频。主频=外频*倍频主频,又叫时钟频率。由上述公式可以看出主频由外频决定。主频表示CPU内数字脉冲信号震荡的速度,它可以说明CPU的运算和处理数据的速度。简而言之,主频越高,CPU越快。CPU每做一个动作,处理数据或发布命令,都要随着主频的节奏来。所以这是个很有节奏感的东西。计算机(Computer)依照冯诺依曼体系,计算机的五大组成部件为运算器、控制器、存储器、输入设备和输出设备。其中运算器和控制器合起来就是CPU;存储器又可以拆分为内存和外存;输入和输出设备就是键盘、鼠标、显示器等。处理器运算器和控制器可以合称为处理器,CPU主要就是这两个部件。前者负责数据处理,后者发布命令。存储器存储器主要是指内存(RAM,Random Access Memory,随机存取存储器),靠电容的充放电存储电容信号进而可在逻辑上表示数字信号。由于电容充放电速度很快,所以内存的读写速度仅次于CPU中的缓存。但又因为是电容,所以无法在不通电的情况下存储这些信息。这样就催生了ROM,为了保存数据但只能写入一次的只读存储器。再后来为了能擦了重写就出现了EPROM和EEPROM等可擦写ROM。硬盘、U盘等都是前者的衍生物,他们都统称为外存(external storage),其主要作用就是在断电的时候能够保存数据。因为涉及到物理动作(掰硬盘里面的小磁针、在光盘上烫洞),所以相对于内存的速度要慢上要几个档次。I/OI/O就是与之交互的基础了,通过输入设备来告诉它,通过输出设备来告诉你。就是机器交互的耳朵和嘴了。单片机(MCU, Microcontroller Unit)是一种集成电路(IC, Integrated Circuit),其实应该叫微控制器,单片机这个名字主要是指之前的SCM(Single Chip Micyoco, 嗯… Micyoco是个神奇的单词)。而现在MCU是由SCM发展而来的,在高级点就可以说是SoC(System on Chip)。但后面的我所提到的单片机就是说MCU啦(因为我主要玩了下51单片机,这个是什么鬼我后面会说)。说正事儿,单片机可以说是“浓缩的计算机”而不是“浓缩的CPU”,首先维基百科对他的解释是:a small computer on a integrated circuit。其次是因为它内部不仅仅有运算器、控制器和寄存器这种CPU三件套,他还常封装有RAM、ROM这种存储器部件,还有I/O口供人们编程及操作。所以总结来说,他有处理器、存储器和I/O,也算是符合冯诺依曼体系的“浓缩计算机”。应用领域说到这种“浓缩计算机”的应用,可以说是广到没朋友。智能仪表、实时工控、通讯设备、导航系统、家用电器等等。随着物联网(IoT)时代的到来,单片机可谓再一次大展神威,我们手中的控制端可能是手机这种高级玩意儿,但是用来控制设备电路的接收端就是单片机要做的事情了。让家用电器接入网络,就是在其内部放一块带Wifi模块的单片机即可。封装类型刚才说到它算一个计算机,他的那些部件都是怎么放在一起的?这就涉及到封装问题了。以下列出主要的单片机封装形式。封装全称中文名称DIPDual In-Line Package双列直插式封装PLCCPlastic Leaded Chip Carrier带引线的塑料芯片封装QFPQuad Flat Package塑料方形扁平式封装PGAPin Grid Array Package插针网络阵列封装BGABall Grid Array Package球栅阵列封装这里不做详细描述,具体资料可点击封装名称进入查阅。51单片机你若是初学单片机,并且直接上网去查“单片机入门”之类的关键词,你绝对会看到“51单片机什么什么的”。谁知道51单片机是啥玩意,一开始我还以为51是个牌子,然后就开始吐槽满世界的广告啊,能不能安安静静的学个单片机啊。什么是51单片机百度百科的摘要是这样说的:51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。维基百科是这样说的:The page &51-MCU& does not exist. You can ask for it to be created, but consider checking the search results below to see whether the topic is already covered.嗯,看来这个词是国内出来的。根据百度百科上的内容我们可以了解到如下信息KeyValue指令集8031始祖Intel 8004 单片机8位I/O线32条这跟“51”有个蛋的关系啊?!后来了解到,这款单片机的起点是Intel的MCS51系列单片机,此系列包括:,,等,后来Intel普度众生,将技术传了下去。人们将后来的那些单片机都统称为51单片机。那为毛我入个门就给我个51单片机啊?!因为此款单片机应用非常广,而且支持在线编程(ISP, In-System Programmability),用它可以搭建比较为复杂的系统,相较于其他8位单片机(AVR、PIC)而言,他出现较早,可以获取大量学习资料。所以…引脚单片机的操作向来靠引脚,51系列也不除外。常见的是40脚DIP封装,以此为例说说以下几类引脚。电源说明Vcc电源,用于引入正电平GND地线,引入负电平关于电平的资料请参考:逻辑电平时钟XTAL2片内震荡电路输出端XTAL1片内震荡电路输入端编程控制RST用于复位PSEN当有扩展ROM时用,在读外部ROM时,低电平有效ALE/PROG当有扩展RAM时用EA/Vpp当有扩展ROM时用,高电平读取内部ROM,低电平读取外部ROMP0双向,8位,三态P1准双向,8位P2P3准双向,8位,拥有第二功能P3第二功能定义:标号第二功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2INT0外部中断0P3.3INT1外部中断1P3.4T0定时器/计数器0外部输入端P3.5T1定时器/计数器1外部输入端P3.6WR外部数据存储器写脉冲P3.7RD外部数据存储器读脉冲扩展的关键字单片机编程支持汇编和C,其他的我没用过也不太清楚。如果入门的话最好的选择就是C啦,首先你很有可能学过C,就算没学过也很好上手,去买本谭浩强的《C程序设计》吧。除了标准的ANSI C关键字外,单片机编程还扩展了如下几个类型的关键字:位标量说明关键字bit声明一个位标量或位类型函数sbit声明一个可位寻址变量特殊功能寄存器声明sfr声明一个特殊功能寄存器sfr16声明一个16位的特殊功能寄存器存储器类型说明data直接寻址的内部数据存储器bdata可位寻址的内部数据存储器idata间接寻址的内部数据存储器pdata分页寻址的外部数据存储器xdata外部数据存储器code程序存储器其他interrupt定义一个中断函数reentrant定义一个再入函数using定义芯片的工作寄存器STC89C52我的第一个实体单片机开发,就是这款了,STC89C52,可以说是增强型8051单片机。来,先看一下它的配置:核心MCS-51最高运作频率35MHz物理参数39工作温度商业级:0°C~75°C;工业级:-40°C~85°CRAM512BROM8KBEEPROM4KB功能定时器3个串口1个,全双工外部中断4个看门狗支持内置复位ISP/IAP可选模式掉电模式空闲模式我的这款的具体型号为:STC89C52_35I_PDIP40_1550HHT352.C90C关于标识命名规则请参阅:STC全系列芯片命名规则说明(http://blog.sina.com.cn/s/blog_6jft.html )软件准备既然要编程,我们就需要开发环境,你可以选择Keil,也可以选择加载Keil插件的Eclipse。代码写好后,通过编译器编译成单片机可以识别的机器码。机器码通常会保存为.hex文件,这个文件可以用那些十六进制文件查看器查看。这个文件的数据要写入到单片机的程序存储器中,通常为一个ROM。通常买的开发板都会集成串口及其芯片,还有配套的下载软件。你只需要安装好它的串口芯片的驱动程序,然后用下载器直接下载就好。如果是自己焊的板子就会麻烦一些了。这里不做说明,因为笔者还没干过。还有一种就是通过Proteus模拟,在没有实体板的情况下可以考虑这种方式。Proteus可以模拟单片机的逻辑线路和演示效果。向里面的逻辑单片机下载程序的话,更是十分方便,在Proteus内可以很方便的操作完成。若是要模拟单片机与PC通信,那你就需要一个模拟串口连接的程序了---VSPD(Virtual Serial Port Driver)。列个清单程序Keil单片机开发的IDE,支持编译c、asm、c++。单片机串口驱动用于让计算机识别单片机Proteus模拟集成电路,可以演示效果VSPD模拟串口连接程序下载程序用于将编译好hex文件下载到单片机一个软工狗的总结作为一个软工狗,我对我们专业的理解是更专注于一个软件的工程项目的始终而不是技术实现,偏向于“工”。而单片机开发是更加贴近计算机底层的一种开发,更偏向于“理”,而且也不会采用面向对象的思想。所以,比起之前所做的网页开发也好,客户端开发也罢,都显得更加不友好。内存可能不够用在开发过程中会开始考虑内存够不够用这种问题,这个是现代IT学子几乎不会考虑的问题,不说电脑,手机的内存都大的一腿,但是来到单片机的地盘,你就得考虑了,考虑好不要动不动就上个double(我目前用的最长的变量类型也就是unsigned int),而且为了拓展范围长度还要考虑是不是要把变量声明称无符号类型,更严重的情况可能还要掰指头数清楚你的变量有没有声明的太多。一切从优也是因为硬件资源的限制,所以在做一些实现的时候你不能只考虑如何实现,还要考虑单片机吃不吃得起你的代码。所以在这个领域,面向对象这种思想是基本弃用的(面向对象的思想向来是对程序员友好,对机器不太友好的)。考虑好你程序的时间及空间复杂度,因为单片机不仅内存小,主频一般也特别低。二进制是爸爸好好的巩固一下之前所学的C语言吧,还有二进制操作才是爸爸级别的操作。说到这一点其实还是因为硬件资源的限制。各种且或非、异或、移位会让代码变得高效,虽然我们之前并不习惯这样做。其实很多牛逼的程序员都会很擅长使用二进制操作,因为这样很对机器的口味(1024吧,凑个整)。很好玩!不像客户端或web开发,我们只是在调用,很少有思维上的突破。我觉得单片机开发会更灵活,你可以去网上花十块钱不到买各种小部件添加上去调用着玩。自己设计小型自动电路是我觉得再有趣不过的事情了。怎么个开始要是没学过C语言,先去把C学了。若是学好了,那就了解基础知识后直接实战。关于实战,我的建议是,先在Proteus上模拟,等稍微熟练再往实体开发板里写。一个是因为Proteus模拟,能简单实践一下画板子,可以学习简单的线路,但又不像真正画板子那样麻烦。另一个是因为单片机的程序存储器的擦写次数是有限的,虽然这个次数也不用特别在意,但是能少一次就少一次嘛。到了实体开发板阶段,就不是为了验证你的程序逻辑了,而是解决实际问题,因为Proteus并不会完美模拟出实际情况,这也是由模拟到实践的真正过度。最后,可以自己买各种工具(洞洞板、锡丝、松香、烙铁、吸锡器、烙铁架)来焊个板子,在自己焊的板子上编程。这样就完成了从焊到编再到实现的一条龙DIY。我很推荐软工狗们尝试单片机开发,因为这可以让你对计算机原理和底层有更深的认识,还可以体会到设计并实现各种DIY小器件的乐趣。望各位就着汗水尽情释放创造力吧!本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。数字科技百家号最近更新:简介:数码圈资深人士,搞机大神作者最新文章相关文章}

我要回帖

更多关于 初学单片机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信