pic单片机c语言哪一种好,PIC单片机挑选哪一个比较好?国产替代方案有哪些?...-程序员宅基地

技术标签: pic单片机c语言哪一种好  

Microchip的PIC单片机有很多个系列,有许多8位、16位和32位单片机可供选择。下面英锐恩将介绍8位PIC,因为它们能够适用于大多数用途,比较适合初学者。

Microchip有不同系列的8位PIC单片机,比如:PIC10F、PIC12F、PIC16F和PIC18F,它们都具有不同的功能和价格范围。其中,PIC10F和PIC12F是最便宜的,通常具有更少的存储器,更少的引脚数和更少的外设。在国产单片机中,能够替代PIC单片机的只有麦肯、英锐恩两家产商。

20447d6595a33da74e984b2916a98d03.png

PIC18F系列是最复杂的,具有更多指令,更适合C编译器,但它们也很昂贵的。而且网上的应用程序和代码示例数量有限,这使得开发自己的项目变得更加困难。

PIC16F系列是最受欢迎的,因为它们已经存在时间最长,并且具有互联网上最大的代码库。已经为PIC16F877编写了许多可用的代码和原理图,但放在今天反而变成一个很糟糕的选择,因为它们是一个非常古老的设计。如果你想尽可能轻松地重复使用PIC16F877设计,那么升级到PIC16F887A,因为它现在比PIC16F877便宜得多,约为价格的1/3。它具有相同的引脚布局,相同的外设和相同的代码将无需修改即可运行。它还具有On-Board Debug功能,因此可以使用廉价的仿真器,如PICKit2或PICKit3。

这些是具有14KB内存的40引脚芯片,足以满足大多数项目甚至是用C语言编写的内容。它们还具有256字节的EEPROM,用于存储序列号,校准数据以及需要重新编程时需要保留的其他值。该单片机的外设包括构建项目所需的一切,并了解PIC的编程,包括串行端口(UART),SPI和I2C总线以及14通道ADC。ADC为10位,对于大多数应用来说足够准确。你还有许多备用I/O引脚。

作为初学者的选择,PIC16F887需要一些优势,因为它可以使用PIC16F877项目,但新版的PIC单片机也值得一看。近年来,Microchip开发出一系列新的PIC16F单片机,从一开始就是PIC16F1519和PIC16F1789。

这两个都是40引脚(与PIC16F877相同的引脚排列),具有类似的外设,但内存的两倍和更好的电流消耗。它们还有更多指令,因此,例如,你可以从代码中读取配置存储器(用户ID字节,校准和保险丝),而不像旧设备。PIC16F1789还具有EEPROM。它们具有2KB的RAM存储器(PIC16F887具有384字节),这使C编译器能够生成更好,更快的代码,并且它们的价格合理。

总之,初学者入门比较适合的是PIC16F系列,特别是新版的PIC16F1xxx。它们涵盖了所有基础知识,并具有代码空间和大多数项目所需的所有外围设备。

PIC18F系列单片机具有更多功能和不同的指令集——指令为16位宽,而不是像PIC16F那样的14位。它们需要一个不同的C编译器,它在MPLAB中作为限制版本包含在内。可用的代码示例不多,因此不适合绝对的初学者。相比PIC系列,在方案开发上,国产单片机,比如麦肯、英锐恩在成本和性能综合考虑上,要有优势的多。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39942191/article/details/117185746

智能推荐

Oracle存储过程创建和使用_oracle存储过程的创建和使用-程序员宅基地

文章浏览阅读486次。基本概念存储过程其实就是一组用于完成特定数据库功能的SQL语句集,在日常中大量使用,它被编译后存储在数据库中,根据定义的存储过程名称来调用并执行,从而完成复杂的数据库操作。优点1.存储过程使一些复杂的数据库操作与代码直接分离,便于扩展和维护,也提高了数据的安全性。2.存储过程可以重复利用,只需要带不同的参数即可,提高了程序的性能。3.存储过程执行效率高,只需要在创建的时候编译,以后每次执..._oracle存储过程的创建和使用

基于python在线商品购物系统 商品推荐系统 Flask框架(附源码)_购物平台源代码-程序员宅基地

文章浏览阅读476次,点赞4次,收藏7次。基于python在线商品购物系统 商品推荐系统 Flask框架(附源码)_购物平台源代码

java中super(aa bb cc)_高手进,急-程序员宅基地

文章浏览阅读529次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼考试题目中有2题程序题,老师给出程序,我们写出结果,可是我家里没有 JAVA,无法做,求有JAVA的朋友帮忙看下,运行结果是什么(1)public class Exam{public static void main(String[] args){int mm;int array[] = {30,81,37,45,26,46,44,78,80,64};S..._2.定义三个方法,分别接收 aa bb cc请求效果:

vue——实现组织架构图(vue-org-tree)——技能提升-程序员宅基地

文章浏览阅读3.1w次,点赞35次,收藏162次。关于组织架构图,效果图如下:之前我是用jq写过一个组织架构图,文章链接如下:当时是用的jOrgChartjq版本的组织架构图:https://blog.csdn.net/yehaocheng520/article/details/117379214?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162883781016780264023604%2522%252C%2522scm%2522%253A%252220140713.13010_vue-org-tree

花季酒店设备采购管理系统(程序+开题报告)(开题报告+源码)-程序员宅基地

文章浏览阅读794次,点赞16次,收藏18次。系统将涵盖供货商的信息管理、员工的权限分配与操作记录、设备信息的详细记录、设备分类的系统化管理、设备采购的流程自动化、酒店设备的使用监控、设备入库的智能识别和处理、设备盘点的定期更新以及在线沟通平台的集成等功能模块。通过对这些功能的整合和优化,本研究将致力于解决花季酒店在设备采购和管理方面的主要问题,以期构建出一个全面、高效、智能的设备采购管理系统。该系统旨在通过信息技术手段,实现酒店设备采购和管理的自动化和智能化,提高管理效率,降低成本,确保酒店服务的质量和客户的满意度。最终成品以下面运行环境。

element-plus版本升级导致编译失败_element-plus 版本-程序员宅基地

文章浏览阅读375次,点赞4次,收藏8次。由于我们的项目依赖中指定了 "^2.2.2" 的版本范围,编译时会自动引入当前大版本下的最新版本,即 2.3.8。然而,在这个新版本中,"./lib/locale/lang/zh-cn" 的路径发生了变化,导致了编译错误。前端项目中使用了 Element Plus 组件库,并在项目依赖中引入了 "element-plus": "^2.2.2" 的版本。在项目中引入的依赖库可能会随着时间的推移进行版本升级,因此我们需要仔细检查和调整相关的引用路径,以确保项目的稳定性和可靠性。问题出现在引入路径上。_element-plus 版本

随便推点

teradata数据类型转换oracle,Oracle 中常见函数在teradata中如何实现-程序员宅基地

文章浏览阅读1.1k次。Oracle 中常见函数在teradata中如何实现下面看看Oracle 和 Teradata 几个常见函数对比:1、oracle:nvl(f1,f2...),teradata:coalesce(f1,f2...)2、oracle:decode(AA,v1,r1,v2,r2),teradata:casewhen AA=v1 then r1when AA=v2 then r2else nullend..._teradata转oracle

linux netstat -an命令,linux 命令之netstat-程序员宅基地

文章浏览阅读1.1k次。在linux中netstat命令的作用是查看TCP/IP网络当前所开放端口,所对应的本地和外地端口信息。netstat命令的格式netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]各参数选项的含义a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息,格式“netstat -i”..._netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n

关于Vue+webpack之H5打包优化,说说我的一些心得体会_webpack打包优化html项目-程序员宅基地

文章浏览阅读972次。基于公司的业务以及今年接触到的项目大部分都是APP混合开发,即原生Android/ios +H5页面开发APP。项目从产品需求的评审到方案的评审再到开发提测...这一套流程下来让我收货颇多。总想找个时间好好记录一番,大概还是自己懒惰了,一直拖到现在。想记录的东西太多了,一次讲完也没有突出的重点,我今天最想记录的是关于H5资源打包优化的问题。以前常常看到一些大V长篇大论的在讲各种优化问题,自己没有真正动手去实践过的话也不明所以,也不明白优化的重要性。_webpack打包优化html项目

Windows10和 Ubuntu 18.04双系统下时间错乱解决方法[亲测有效]_双系统ubuntu时间不对-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏6次。错乱原因:Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。 Linux系统把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。而Windows显示的是硬件时间,所以两个时间会发生错乱[1]。操作分两步走:1.进入Ubuntu 18.04系统打开终端并输入[2]: timedatectl % 查看时间 sudo timedatectl _双系统ubuntu时间不对

二叉树的输入输出操作_二叉树输入一组数据-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏49次。一、二叉树的抽象数据类型: 12345678910111213141516171819202122232425262728293_二叉树输入一组数据

std::list为空时调用pop_front的访问越界问题_std::list pop_front-程序员宅基地

文章浏览阅读2.6k次。std::list为empty时调用pop_front导致程序崩溃如果list中装的是指针,当其为empty时,再调用pop_front可能会返回一个非NULL的值,此时直接使用这个返回的指针会导致内存越界。#include <stdio.h>#include <stdlib.h>#include <iostream>#include <list..._std::list pop_front

推荐文章

热门文章

相关标签