学习总结

单片机学结

时间:2021-11-24 14:37:48 学习总结 我要投稿

单片机学结

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

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

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

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

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

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

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

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

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

单片机学结 [篇2]

为了给前一段时间学习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

单片机学结 [篇3]

1、什么是单片机

在一片集成电路芯片上集成微处理器、存储器、i/o接口电路,从而构成了单芯片微型计算机,即单片机。 intel公司推出了mcs-51系列单片机:集成 8位cpu、4k字节rom、128字节ram、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64k,并有控制功能较强的布尔处理器。

2、单片机的作用

用到单片机的项目经验介绍

手持粮库温度寻检设备

毕设答辩打分器

电话台灯

自动感应水龙头

凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80c51,arm等

工业自动化:数据采集、测控技术。

智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。

消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、ic卡、汽车电子设备等。

通讯方面:调制解调器、程控交换技术、手机、小灵通等。

武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。

等等…..

3、学习单片机之前预备知识

(1)数字电路中只有两种电平:高和低

定义单片机为ttl电平:

高 +5v 低 0v

(2)rs232电平:计算机的串口

高 -12v 低+12v

所以计算机与单片机之间通讯时需要加电平转换芯片

(3)进制转换与逻辑、算术运算

(4)c语言基础

(5)80c51了解

80c51是mcs-51系列中的一个典型品种;其它厂商以8051为基核开发出的 cmos工艺单片机产品统称为80c51系列。

(6)

总线(bus)是计算机各部件之间传送信息的公共通道。微机中有内部总线和 外部总线两类。内部总线是cpu内部之间的连线。外部总线是指cpu与其它部件之间 的连线。 外部总线有三种: 数据总线db(data bus), 地址总线 ab(address bus) 和控制总线 cbcontrol bus)。

(7)

cpu:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

ram:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

rom:用以存放程序、一些原始数据和表格;

i/o口:四个8位并行i/o口,既可用作输入,也可用作输出;

t/c:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

五个中断源的中断控制系统;

一个全双工uart(通用异步接收发送器)的串行i/o口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。

(8)

c51数据存储类型

例:

数据类型 变量名

char var1;

bit flags;

unsigned char vextor[10];

int wwww;

注意:变量名不能用c语言中的关键字表示。

(9)

包含的头文件(可以在安装目录下inc目录下查看)

通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h

常用有:reg51.h reg52.h

(定义特殊功能寄存器和位寄存器);

math.h (定义常用数学运算);

(10)中断服务程序的格式

函数名()interrupt n using m

{

函数内部实现 ….

}

(11)i/o口定义

sbit beep=p2^3;

(12)单片机的基本时序

机器周期和指令周期

(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的 周期,tx实验板上为11.0592mhz。

(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后 得到的。

(3) 机器周期: 一个机器周期包含 6 个状态周期s1~s6, 也就是 12 个时 钟周期。 在一个机器周期内, cpu可以完成一个独立的操作。

(4) 指令周期: 它是指cpu完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。mcs - 51 系统中, 有单周期指令、双周期指令和四周期指令。

4、学习单片机目标

最小系统能够运行起来的必要条件。

1.电源 2.晶振3.复位电路

对单片机任意io口的随意操作

1.输出控制电平高低2.输入检测电平高低。

定时器:重点掌握最常用的方式2

中断:外部中断、定时器中断、串口中断

串口通信:单片机之间、单片机与计算机间

单片机学结 [篇4]

基于本人学习单片机的痛苦经历,特编写本教程,以此献给广大的单片机初学者,希望您能从中受益。

作者提示:本教程乃最通俗易懂之单片机教材也,如果您还是看不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程*_*

拿到这本教程您首先就会想,什么是iap教学法?是不是一种什么全新的教学方法?当然不是,我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是in applications program(在应用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。

至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的学习了一些电子基础知识。

接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随

,很少涉及单片机的基础知识,如果按照此种学习方法,想便说一点:很多书中的实例都是有错误的)

进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能,几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把

。 它全部掌握了再去做产品开发(当然天才就例外了*_*)

基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。

如果您学完了就能成为单片机的入门者,完全可以进行一般产品的开发;下册部分是单片机应用的提高部分,主要学习单片机的系统扩展(比如:rom和ram存储器的扩展,并行口的扩展,串行口的扩展,a/d和d/a与单片机的接口)以及相关开发工具和软件的使用(包括kell c51的应用与调试技巧,硬件仿真器的使用)等等,如果您学完了下册部分,那就得恭喜您成为了单片机开发的高手了,不过单片机的技术是在不断的发展和提高的,您也不要太骄傲哦!

为了尽量把最新的单片机知识和应用成果收录进我们的教程,希望您能不吝赐教,共同来努力把我们的教程不断的改进和完善。还是那句题外话,技术是靠不断的积累和交流才会进步的,固封自守只会更加落后。

由于时间和精力的限制,我还是希望在您学习本教程之前,自己先熟悉一点相关的电子技术知识,特别是数字电路基础,这对您学习中碰到的相关概念会有很大的帮助。

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

单片机学结与心得06-02

单片机学结报告06-02

单片机的课程学结06-02

单片机系统学结06-02

单片机生产实结12-02

对学结06-03

日语学结11-25

对标学结06-03

对excel的学结06-03