单片机学结与心得

时间:2022-08-02 22:54:33 学习总结 我要投稿
  • 相关推荐

单片机学结与心得

为了给前一段时间学习pic16f616型单片机的一个总结和方便大家的交流,我写了这篇关于pic单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见。

单片机学结与心得

复位、中断和睡眠

(1)复位

pic16f616包括这样的几个复位功能,上电复位(power-on)、硬件复位、欠压复位(brown-out)、看门狗复位。

关于上电复位por,大家都不陌生,单片机在上电的时候保持复位直到电压能够满足其正常的工作电压,同时你可以通过对connfig(编译器上即可设置)的设置,来开启power-up time,这个时间一般为64ms。

硬件复位可以通过mclr引脚外界复位电路,即可实现硬件复位(将此引脚接低电平)。

欠压复位这个功能是可选的,也可以直接在编译环境中配置config寄存器来开启此功能。当此功能开启时,如果单片机在运行的时候,供电电压不足就会引起欠压复位,复位后单片机如果发现供电电压已经达到正常值的时候,会有一个64ms的延时,然后再运行程序。

关于看门狗的复位在看门狗部分已经说了。这里的一些复位还涉及到一些标志位。这些标志位分布在status和pcon上面。status上有两个位 to、pd,当标志位to=1时,表示表示已经操作了上电复位或者是执行了clrwdt或者sleep指令,当to=0时,表示发生了看门狗复位。当标志位pd=1时表示操作了上电复位或者是执行了clrwdt指令,当pd=0时,表示执行了sleep指令。pcon上有两个标志位是por和bor,分别表示的是上电复位和欠压复位标志。具体的可以参看手册。

(2)中断

pic16f616包括这样的几个中断源:ra2/int引脚外部中断、ra端口电平变化中断、定时器timer0、timer1、timer2溢出中断、比较器中断、ad转换中断、捕获/比较/pwm中断。

这些中断的允许位和中断标志位分别位于intcon、pie1、pir1、ioca这些寄存器里面,如果要开启相应的中断,就要置相应的中断允许位,开启总中断位(intcon寄存器的gie位),还要开启intcon上的peie位(定时器0溢出中断、int引脚沿中断和ra端口的电平变化中断除外)。

当中断发生的时候,相应的中断标志位就会置起来,同时总中断标志位gie会被清零,保证在此时间内不会相应其他的中断,然后将当前的pc指针值压栈保存,以用来保证中断能正确的返回到原来执行的地方。然后pc指针指向中断向量地址0004h的地方,所以在编程序的时候,你可以在0004h的地址存一条跳转指令跳到你定义的中断服务程序里面去就可以了。如果在中断的时候想保存一些重要的寄存器的话,可以在中断程序的起始将其保存,然后在中断服务程序的末尾将其恢复即可。

要注意的是中断标志位不会自己清零,这就需要在编程的时候在软件上对其清零,否则的话,单片机不停的执行中断服务程序。如果你想要在以后的程序中还能产生中断的话,就要把总中断允许位gie重新置位。

(3)睡眠

要想让单片机睡眠的方法很简单,执行一条sleep指令就可以了,如果看门狗允许的话,wdt就会被清零,但是还保持运行,寄存器status的pd位将会置0,to位将会置1,io口还保持原来的状态,在睡眠状态下,不能驱动振荡器了。

有些事件可以将单片机从睡眠状态中唤醒:看门狗、ra口电平变化中断、外部复位引脚mclk被拉低、ra2/int引脚沿中断、timer1中断(必须工作在异步计数模式)、eccp捕获模式中断、ad转换中断(时钟源必须为内部rc的时候)、比较器输出有变化,这些事件能够将单片机唤醒,其他的事件不能。

如果某项能唤醒单片机的中断已经开了,当总中断允许位gie为1的时候,单片机被唤醒后可以进入中断程序中去,而当gie位为0的时候,单片机也可以被唤醒,但是是执行下面的语句,而不能进入中断程序中去。

为了保证在执行sleep语句后看门狗能够清零,最好在sleep语句之前加一句清看门狗的语句clrwdt。

相关型号资料:at25020n-10sc2。7 mux08fp irfi9520g ts83c51rb2-mc

单片机学结与心得 [篇2]

ofweek工控网讯:作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。此外,学习单片机还需要投入一定的学习成本,随着你学习知识的扩展成本还会增加。

单片机作为一种简单的控制器在生活中有这广泛的应用,当然在工业型单片机在生产中也扮演着很重要的角色,所以对于一个学习自动化的工控人来说,学习单片机是非常有必要的。

单片机的学习经验

1、学习电子技术基础知识,如电路、模拟电路和数字电路。这是学习电类相关专业的基础。

2、学习计算机硬件知识,如计算机的简单组成原理(只需要了解),当然要知道cpu是什么?总线是什么?一些相关概念。

3、程序编写的相关知识,主要是汇编语言和c语言。了解结构化语言的程序设计方法,也就是三种结构(顺序结构、分支结构(或称选择结构)、循环结构),会一些常用的算法。

4、以上是基础,有了这些基础,学习51单片机就只要花几周的时间就能上手。但学习单片机时,主要从单片机的存储器开始,其中特殊功能寄存器是重点,学会之后,就可以学习单片机的基础部分了,主要是四个部分:51单片机i/o口的使用、中断的使用、定时器的使用、外部器件的扩展。这些部分都可以用软件仿真(可以用proteus软件)。

5、可以买一两块廉价的单片机开发板,用廉价的方法(可以用热转印法做PCB板)仿制一些更简单的实验功能板,开始做板时千万不做得太复杂,我带过的很多学生中,有少部分人总是觉得太简单了,做个复杂的,结果做了个把星期,没有成功,最后只有放弃。还有一点很重要,就是用proteus仿真时,最好只做单一功能的仿真,否则可能与实际在硬件上做的结果不一样。

6、从网上下载一些实例进行研究学习,不断提高。

单片机学结与心得 [篇3]

学习《微机原理》过后,其实还是挺期待学习《单片机》的,因为个人感觉还是挺有意思的,但是课程安排在大四了,大四对于大多数即将毕业的学生来说是忙碌的,每个人都有自己该做的事情,找工作的、考研的,考公务员的一直忙着起来,很少有人真正的想去上学校所安排的课,虽然对于一部分人来说,它很重要,但是面临这样的选择时,好多人会选择前者,这在课堂上还是可以看的出来的。

我可能与其他人写的稍有些不同,想说出自己的一些想法,实事求是,力求把基本的情况反映出来,其实《单片机》的课程还是挺多的,我呢,也旷了几节课,可能在老师的点名表上可以显现出来,在课上偶尔也会听老师您讲的内容,不过,可能是这块不开窍,对于我来说,有点深,也或者可以这么说,自己没花一定的功夫在这上,导致跟不上老师上课的节奏。其实,多数人都是这样,学习单片机课程的意识不强,本身学习单片机也比较困难,看书上说,学习单片机,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口-技术。使我们从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。其实总结一句话,就是学习好理论知识并较好的用于实践。

学习哪一门课程都会给我们一定的影响,单片机也一样,虽然自己很清楚自己的情况,但是有时感觉,会编程的人挺牛的,这么多的软件,影响着我们生活的各个方面,生活已经离不开编程,离不开单片机,离不开我们所学的知识。举几个例子,因为它的应用范围很广,在工业自动化中应用的数据采集、测控技术。在智能仪器仪表中应用的数字示波器、数字信号源、数字万用表、感应电流表,自动取款机等。在消费类电子产品中应用的洗衣机、电冰箱、空调机、电视机、微波炉、手机、ic卡、汽车电子设备等。在通讯方面应用的调制解调器、程控交换技术、手机、小灵通等。在武器装备方面应用的飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。

写这报告自己也想了想,自己还有好多方面的不足,不仅仅体现在所学的课程上,更体现在学习专业知识的态度上,体现在个人专业能力方面,虽然可能自己在这方便没什么大的造诣,但坚信自己,朝着已定方向前进,实现个人价值不在久远。

单片机学结与心得 [篇4]

人的一生是一个不断学习、不断成长的过程。转眼间,研究生的学习生涯结束了,走上新的工作岗位。回头看看,发现自己不知不觉已经走过了五年的单片机学习之旅。

在2003年最初接触单片机的时候,在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他单片机的存在。那时候老师只教会了我们汇编语言,根本不知道用c语言也可以进行单片机开发。幸运的是,我加入了单片机兴趣小组,在老师的指导下,做了一系列实验,有“基于ds18b20的温度采集系统”、“有基于164的移位寄存器的灯光控制系统”、“有步进电机和直流电机的控制系统”。这时候我才发现,这是学习单片机的一个最好途径——在实践中领悟理论,用理论指导实践。在上课的整整一个学期中,虽然老师讲得很详细,但是大部分概念都是到了实际动手做东西的时候才弄明白的。而且在经历了迷惑之后再搞清楚,印象就特别深刻。直到现在我对那些概念和接口都非常清晰。其实我也很庆幸学习和使用了两年多的汇编语言。由于有这些锻炼,我对单片机底层结构和接口时序就弄得很清楚。在使用c语言开发的时候,优化代码和处理中断也就不会太费劲。我觉得,虽然现在绝大部分单片机开发都使用c语言,甚至有些公司还推出了图形化编程的工具,这样对于项目的开展从时间上快了很多,在管理上也规范了不少,但是从学习和想深入掌握单片机精髓的角度来说,还是需要熟练掌握汇编语言的使用。

机会总是青睐于有准备的人。也许有了前面一段时间的理论和实践的积累,我才慢慢得到了一些参加科技竞赛和参与科研项目的机会。在参加第一届浙江省机械设计竞赛的时候,我们设计的由多单片机系统协调控制的“月球车”机器人夺得了唯一的一个特等奖。这个竞赛给我最大的收获是我对单片机的认识改变了,它不再仅仅是一门学科了,它是一个可以让你的创意得到充分发挥的平台。后来参与了“基于视频分划技术的钢卷尺自动切零位机”、“电能表涡杠涡轮啮合深度检测系统”、“基于公共电话网的水表集抄数据路由器”、“高精度电感微位移测量系统”等一些实际的项目。在这些过程中,我发现只是精通单片机技术还不能很好的解决问题。体会最深的是,单片机只有融合到各种应用领域中,才能展现它的最大活力。然而单片机仅仅是一个工具而已,要做好单片机系统还需要各种应用领域的专业知识的支持。例如,在“基于视频分划技术的钢卷尺自动切零位机”中,就需要搞清楚全电视信号的时序,弄明白钢卷尺切零位机的工作原理,懂得怎么利用叠加在视频信号中的横竖线来进行刻度的瞄准等。没有这些专业知识,就算单片机技术再厉害也不可能做好这个项目。脱离应用背景的单片机开发,就像一个没有灵魂的躯体一样。

随着arm的出现,我曾经认为,8位单片机可能在32位单片机的冲击下就此走进历史,可是很快就认识到我是错误的。随着技术的革新和时间的推移,各大单片机公司纷纷将单片机朝着片上系统这个方向发展,集成了现在各种流行的技术和常用的模块。我相信,在当前国内和国外的这个市场中, 8位单片机应用的市场仍然是充满生机,活力无限。在市场的不断变化和技术的不断更新过程中,8位单片机也会顺应潮流不断革新。

从我五年走过的路来看,单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,可以分为三个阶段。

第一阶段:掌握开发单片机的必备基础知识。首先是熟练掌握单片机的基本原理,其实各家各门的单片机其基本结构和原理都差不多,特别是共有的知识需要好好理解和掌握。例如,内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要具备模拟电子、数字电子、c语言程序开发知识以及原理图和pcb设计等一些技能。在进行系统开发的时候,进行原理设计、pcb布板、程序编写、系统联调这些工作都是在所难免的。

第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机的独有技术,学不了那么多也要多了解了解。同时尽可能多地掌握单片机的一些外围器件和常用电路,以备不时之需。有时候客户要求低成本,那我们只好选用合钛、义隆、华邦等这类台湾芯片;如果客户要求工业级的性能,那么我们就得从pic、nec、飞思卡尔、nxp等这些欧美和日式单片机中选择;若要进行功耗的开发,选用msp430系列应该有一定优势;在进行测量仪器设计的时候,c8051和aduc842这类数模混合芯片就显得比较方便。所以说最好每个类型的单片机都会一两款,在实际项目选型中可以更加灵活。另外,要注意平时的技术积累。比如,在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,在其他的项目开发中,有同样或者接近的需求时马上就可以使用,又快又好。

第三阶段:在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识。例如,我完成了“高精度电感微位移测量系统”,就会对电感传感器的测量机理和信号特性、测量电路的设计、电磁兼容处理、误差修正和非线性处理等测控方面的专业技术有很深的认识。以后碰到类似的项目时,很多东西就可以直接利用了。有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优、结构最合理的单片机应用系统。这是我最大的奋斗目标,我觉得这也应该是单片机应用的最高境界吧。

在这五年的学习中,有感慨、有遗憾、有憧憬、有希望,更重要的是我对单片机应用这个领域充满热情。由于才疏学浅、涉世未深,希望能与行业里的各位老师多多交流,不断学习,不断成长。

【单片机学结与心得】相关文章:

单片机生产实结08-06

学结自我评价08-06

轮岗实习学结08-04

动漫公司实习学结08-06

中学生学结作文08-04

好老师的学结07-07

生态学综合实结08-06

财政培训学结(通用10篇)07-10

学编中国结作文【热】08-04

函授学结报告范文(通用11篇)05-26