PIC单片机与PIC单片机C语言编程简介

对于计算机学院与电子学院相关的同学来说,单片机一定不是一个陌生的概念。在大学的学习生涯中,经常用于教学的是MCS-51系列单片机。其实,除了MCS-51单片机外,还有一类单片机——PIC单片机。

PIC单片机,英文名为Peripheral Interface Controller,翻译为“开发和控制外围设备用集成电路”,可以看作是一种高度集成化的小型计算机,拥有CPU、寄存器、内存单元、串口并口等一系列计算机运行时需要依赖的硬件设备。

二、PIC单片机与MCS-51单片机的区别

相较于51系列单片机,PIC单片机的区别主要有3点:

1.总线结构。51系列单片机采用的是经典的“冯诺依曼体系结构”,而PIC单片机则是采用“哈佛体系结构”。这里简单介绍一下两种体系结构的不同:冯诺依曼体系结构是单总线结构,即数据传输与指令传输共用一条总线;而哈佛体系结构则是双总线结构,即数据传输与指令传输分别使用一条总线。由于采用哈佛体系结构,所以PIC单片机的数据总线和指令总线位数(宽度)可能不同。

2.流水线结构。51系列单片机采用的是单流水线结构,即在一条指令完全执行完毕后才会执行。而PIC单片机则有二级流水结构,可以在一定程度上实现指令并发(虽然不如x86/64系列CPU或者ARM系列CPU)。

3.汇编指令。51系列单片机大约有一百多条汇编指令,基本包含了在程序运行中需要用到的绝大多数汇编指令。而PIC的汇编只有35条,功能较少(例如没有常用的乘除功能,需要使用循环加/减实现乘除功能)。但是PIC的指令执行较快,PIC单片机一个指令的执行只需一个指令周期,而51系列单片机则需要2至4个指令周期。

除了以上区别,在保密性方面,PIC单片机不如51系列单片机,PIC单片机比较不能抗干扰,也很容易被解密。

三、PIC单片机环境C语言编程简介(pic单片机c语言)

相较于其他编程语言,使用C语言开发PIC单片机程序有许多优点:

1.相较于汇编语言来说,使用C语言这类高级编程语言进行编程比较简单方便。使用汇编语言编程需要掌握一定的CPU运行知识,而且对寄存器、运算器、指令集等都需要有一定的了解,编程时也需要时刻思考汇编指令的运行流程。而使用C语言编程时则只需将精力放在程序运行逻辑即可。

2.相较于C++、Java等面向对象编程语言来说,C语言更加贴近底层运行逻辑,没有封装、继承等更加高级的语法,更加纯粹地关注程序的执行流程。

PIC单片机环境下的C语言编程与我们平时使用的C语言在语法上大致类似,不过仍有些许不同。下面对PIC单片机的C语言编程做简要介绍。

1.编译器配置。由于PIC单片机有独特的CPU架构,因此不同于传统的gcc或者vc++编译器进行编译,PIC单片机环境下的C语言有专门的C语言编译器PICC Compiler。

2.PIC单片机C语言同样支持常见的short、int、long、float等基本数据类型。不过需要注意的是,PIC单片机C语言的int类型为16位存储,long类型为32位存储,float类型为24位存储。

3.除了基本数据类型外,PIC单片机C语言也同样支持数组、结构体和联合体等复合数据类型。

4.PIC单片机C语言有一个特殊的数据寄存器bank,该寄存器由程序员管理,在定义变量时必须指定变量存储位置,若不指定则默认存储在bank0中。

若定义存储于其他bank寄存器的变量,则需要在定义变量时指定bank寄存器编号。例如:

bank1 unsigned char buffer[32];

bank2 int flag1, flag2;

5.PIC单片机C语言保留volatile关键字,用于告知某些特殊的值可能会发生改变。(pic单片机c语言)

6.使用PIC单片机C语言编程时,虽然也可调用标准库函数,不过由于PIC单片机性能有限,由于诸如scanf()/printf()等库函数的代码比较繁杂,因此在调用这些库函数时需要额外谨慎,可能会造成程序运行时间大幅度增加甚至宕机。

7.PIC单片机C语言支持C语言与汇编语言混合编程。若在C语言内插入汇编语言代码,则需要使用asm关键字标识。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)icon-default.png?t=M85Bhttp://makerschool.mikecrm.com/olf7geW

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/250843.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python知识回顾(10)

Day 10 本节主要讲解的是Python中文件操作(IO 技术)方面的知识。 文章目录 1.文件的处理1.1.1 文本文件和二进制文件1.1.2 文件操作相关模块概述1.3 创建文件对象 open()1.4 文本文件的写入1.5 常用编码介绍1.5.1 中文乱码问题1.5.2 write()/writelines()写入数据1.5.3 close(…

安卓手机阅读器_得到电纸书阅读器到底如何,值不值得买?使用一个月后,我告诉你答案!...

1 电纸书墨水屏的发展 一直以来,这世界上只有两种电纸书阅读器(电子书阅读器),一种是Kindle,另一种是其他。当然索尼的电子纸也不错,不过它的定位和价格已经不是普通的看电子书了。 自2007年第一代Kindle问世,如今已经将近13年过去了。Kindle有了更高的知名度,也有了更…

HNU-电子测试平台与工具2-串口实验5次

计算机串口使用与测量 【实验属于电子测试平台与工具】 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 0.环境搭建 在实验开始之前,安装好Ubuntu 20.04操作系统。(这个没有难度) 但要提醒的是,这个ubuntu是xubuntu,而且虚拟硬盘只有10GB的大小…

Java开发 - 让你少走弯路的Redis的主从复制

前言 大家举举手,让我看看还有多少人不会配置Redis的主从,主主这些的。故事发生在前段时间,小伙伴看到了博主的MySQL主从,就问博主有没有Redis的主从配置教程,本以为网上到处都是教程的博主打开网页一搜,好…

程序员の诗 - 启蒙

启蒙 一入挨踢(IT)门,从此断红尘。 网络席卷人生路,代码看似少年梦。 面朝电脑黑眼圈,一坐又是一整天。 错把代码当成梦,写尽半生皆是空。 然, 机器识 0 1,吾辈创世界&#xf…

linux恶搞指令

alias 指令 linux命令提供了一个有用的工具alias,让我们将需要频繁使用但又过于冗长的命令设置一个别名,以后只需要输入一个简单的别名就可以达到同样的作用 alias 查看当前设置的所有别名 alias cdtest‘cd /src/www/app/account’ 等号两边不能有空格 unalias c…

我爱优雅的代码,我爱搞笑的诗词

天王盖地府,小鸡炖蘑菇,拿了此大奖,才是最幸福。 也不知道什么原因,平时总爱写写各种好玩的东西,作为程序员,也许是一个放松的方式吧,我不喜欢做一个只会写代码的码农,我喜欢能在各个…

用计算机术语写诗,网上盛行写诗软件 电脑作诗毫无逻辑令人喷饭

自从“诗坛芙蓉”赵丽华(BLOG)红遍网络之后,诗歌——一个几乎被忽略的文学体裁又重新引起了大家的关注。 昨日(27日),记者在浏览网站时发现,目前网络上一款写诗软件十分盛行, 只要输入几个关键字,电脑就自动写出一首诗…

机器学习知识经验分享之五:R语言安装

python语言用于深度学习较为广泛,R语言用于机器学习领域中的数据预测和数据处理算法较多,后续将更多分享机器学习数据预测相关知识的分享,有需要的朋友可持续关注,有疑问可以关注后私信留言。 目录 一、R语言介绍 二、R语言安装…

上海斯歌K2 x 赛博威 | 战略合作深度交流暨签约仪式

2月16日,上海斯歌K2与赛博威进行了战略合作深度交流,并在赛博威广州科学城办公室举办战略合作签约仪式。 为满足客户在数智化建设过程中的多元化需求,上海斯歌K2与赛博威曾多次产生交集。凭借双方多年合作的良好基础,自2022年始&a…

Eclipse教程 Ⅸ

今天继续来学习Eclipse 快速修复、Eclipse 浏览菜单、Eclipse 查找以及Eclipse 悬浮提示的内容!老规矩,废话不多说,开始吧。 Eclipse 快速修复 使用快速修复 在 Eclipse 编辑器中当你输入字母时,编辑器会对你输入的内容进行错误…

matplotlib常用功能汇总

文章目录 1.IDE里的1.1 显示模式(plt.ion()和plt.ioff())1.2 backend说明 2 jupyter里的3 通用的3.1 cmap3.2 subplot()相关3.3 绘制动态图(Animation类)3.4 matplotlib利用rcParams配置样式参数 4. 与opencv连用可能遭遇的问题1.…

再谈Linux epoll惊群问题的原因和解决方案

差别是什么?差别只是西装! 缘起 近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡。一共fork了20个Server进程,在请求负载中等的时候&…

自适应网格搜索的多目标粒子群优化(MOPSO)

此博客中对文档的翻译为博主自己学习时意译的,仅用于学习用途,如有侵权请联系博主删除。如果有不足的地方,欢迎大家评论指出,与博主共同学习。 MOPSO对多目标粒子群优化的一个小建议 这篇文章提出了一个建议是扩展粒子群优化的启…

Python 极简socket多人聊天群

前言 别看目录又臭又长,其实可以直接从 第二章 开始看,因为 第一章 主要讲述socket的基础概念。但如果你只是想参考一下,可以直接跳到最后一章。 整个项目只使用了python的标准库,并建议初学者看完第一章 注:写这篇教程…

微信群机器人微云助手微小云如何设置群内积分兑换

经常有用户咨询我们询问积分有什么用,小编沉思之后只能说,没什么卵用…… 不过现在不一样了,微小云在新版本中推出了积分商城,积分商城可以让群友使用群内产生的积分兑换礼品了 具体怎么使用呢 首先点击登录的机器人,然后就可以看到积分商城的设置部分了 积分商城一共有4个功…

【继承】【群主发红包案例】

一、题目要求: 群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则: ①.群主的- -笔金额, 从群主余额中扣除,平均分成n等份,让成员领取。 ②.成员领取红包后,保存到成员余额中。 请…

如何区分企业微信的内部群和外部群

企微内部群主要分成3种:全员群、部门群、内部群 1,全员群:上限10000人,群名会有【全员】标记 企业全员群,新入职的员工将自动加入此群,离职后将自动退群。加入的同事可以看到历史的群聊消息。全员群人数上限…

QQ群主怎么清理群里的不良内容(怎么一次性全部删除QQ群不良信息)

今天突然发现加我们的QQ群的人数减少了,打开群属性看到了如下信息,该群在群搜索结果中的排名将不予展示,群内一下内容模块存在较多不良内容,清理并通过审核可解除搜索屏蔽并提升星级。显示是4星,最优是5星!…

前端gojs中禁用指定节点的选中效果

代码思路 适用于禁用某些节点的选中状态,选中节点时判断该节点要不要禁用 点击节点的时候,判断节点要不要禁用选中效果 如果禁用,就在选中时,把选中节点重置为最近一次非禁用的节点 diagram.select:选中节点 diagram.…