榆树范文网

单片机的总结(共7篇)

73

单片机的总结 第1篇

如果定时时间大于65536us,这时用一个定时/计数器直接处理不能实现,这时可用两个定时/计数器共同处理或一个定时/计数器配合软件计数方式处理。

【例7-3】设系统时钟频率为12MHZ,编程实现从输出周期为1s的xxx。

由于定时时间较长,一个定时/计数器不能直接实现,可用定时/计数器T0产生周 期性为10ms的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数器T1对10ms计数50次实现。

系统时钟为12MHZ,定时/计数器TO定时10ms,计数值N为10000,只能选方式1,方式控制字为00000001B(01H),初值x:

X=65536-10000 =55536 =1101 1000 1111 0000B

则TH0=1101 1000B=D8H TL0=1111 0000B=F0H

单片机的总结 第2篇

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

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

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

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

进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能,几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把它全部掌握了再去做产品开发基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。

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

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

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

单片机的总结 第3篇

这次实习我们使用控制电路的单片机是AT89S51型号的,单片机实习报告总结。通过它实现对八盏双色灯发光二极管的控制P0和P2口控制四盏灯。在AT89S51的9引脚接复位电路,对电路实现复位控制。在电路中接入74S164译码器和共阴极数码管,通过AT89S51的P3口数据的输入对共阴极数码管的控制。同时也可实现双色发光的二极管与共阴极数码管的共同作用。在AT89S51的.口接上中断控制电路,口接入蜂鸣器,使电路实现中断作用,也使电路便于检测。尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

硬件电路设计:

1)确保硬件结构和应用软件方案相结合。硬件结构与软件方案会相互影响,软件能实现的功能尽可能由软件实现,以简化硬件结构。必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间;

2)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板的合理布线、各元器相互隔离等;

3)尽量朝“MCS-51单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,所消耗功耗也增大,也不可避免地降低了系统的稳定性;

4)系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

1.1 单片机型号及特性

单片机型号是 AT89S51。特性是:⑴8031 CPU与MCS-51⑵兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) ⑶全静态工作:0Hz-24KHz ⑷三级程序存储器保密锁定 ⑸128*8位内部RAM ⑹32条可编程I/O线⑺两个16位定时器/计数器 ⑻6个中断源⑼可编程串行通道⑽低功耗的闲置和掉电模式⑾片内振荡器和时钟电路。

1.2 晶振电路

单片机晶振的两个电容的作用 这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮发,实习总结《单片机实习报告总结》。它会影响到晶振的谐振频率和输出幅度,晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+△C(PCB上电容)经验值为3至5pf。 各种逻辑芯片的晶振引脚可以等效为电容三点式振荡器。晶振引脚的内部通常是一个反相器, 或者是奇数个反相器串联。在晶振输出引脚 XO 和晶振输入引脚 XI 之间用一个电阻连接, 对于 CMOS 芯片通常是数 M 到数十M 欧之间. 很多芯片的引脚内部已经包含了这个电阻, 引脚外部就不用接了。这个电阻是为了使反相器在振荡初始时处与线性状态, 反相器就如同一个有很大增益的放大器, 以便于起振. 石英晶体也连接在晶振引脚的输入和输出之间, 等效为一个并联谐振回路, 振荡频率应该是石英晶体的并联谐振频率. 晶体旁边的两个电容接地, 实际上就是电容三点式电路的分压电容, 接地点就是分压点. 以接地点即分压点为参考点, 振荡引脚的输入和输出是反相的, 但从并联谐振回路即石英晶体两端来看, 形成一个正反馈以保证电路持续振荡. 在芯片设计时, 这两个电容就已经形成了, 一般是两个的容量相等, 容量大小依工艺和版图而不同, 但终归是比较小, 不一定适合很宽的频率范围. 外接时大约是数 PF 到数十 PF, 依频率和石英晶体的特性而定. 需要注意的是: 这两个电容串联的值是并联在谐振回路上的, 会影响振荡频率. 当两个电容量相等时, 反馈系数是 , 一般是可以满足振荡条件的, 但如果不易起振或振荡不稳定可以减小输入端对地电容量, 而增加输出端的值以提高反馈量。

1.3 复位电路

单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。复位作用是使CPU以及其他功能部件,如串行口,中断都恢复到一个确定初始状态,并从这个状态开始工作。

复位电路有两种:上电、按钮复位,考虑到各部件影响,采用按钮复位,当电阻给电容充电,电容的电压为高电平,当按下按钮时芯片复位脚近似低电平,于是芯片复位。

单片机的总结 第4篇

逐次逼近型A/D转换器是由一个比较器、D/A转换器、寄存器及控制电路组成部分。逐次逼近型是用一系列已知的电压权值,从高位到低位依次开始逐位试探比较。

5V参考电压,输入模拟电压为,逐次比较过程为。

双重积分型A/D将输入电压先变换成与其平均值成正比的时间间隔,然后再把此时间间隔转换成数字量,它属于间接型转换器。由于在转换过程中进行了两次积分,因此称为双重积分型。双重积分型A/D转换器

转换精度高,稳定性好,测量的是输入电压在一段时间的平均值,而不是输入电压的瞬间值,因此它的抗干扰能力强,但是转换速度慢,双重积分型A/D转换器在工业上应用也比较广泛。

ADC0809逐次逼近型转换器

ADC0809是CMOS工艺单片型逐次逼近型A/D转换器,具有8路模拟量输入通道,有转换起停控制,模拟输入电压范围为0~+5V,转换时间为100 us。

ADC0809芯片有28个引脚,采用双列直插式封装(DIP28)。

其中:

下图是一个ADC0809与8051的一个接口电路图。

向地址满足A15=0的端口进行写操作时,即可产生ALE/START信号所需的上升沿,写操作结束后,即可产生下降沿。

向地址满足A15=0的端口进行读操作时,即可产生OE信号所需的上升沿。

启动AD转换时EOC为低电平,转换结束时变为高电平,其电平极性与INT0中断相反,即需要通过反相器将极性反向。

设系统为一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,把采样转换所得的数字量按序存于片内RAM中。采样完一遍后停止采集。

D/A转换器是把输入的数字量转换为与之成正比的模拟量的器件。数字量不同位置值代表不同权重,输出模拟量是不同权重值的累加和。

如输入的数字量为D, V R e f V_{Ref} VRef​为基准电压,输出的模拟量为 V o V_o Vo​,则有: V o = D × V R E F / 2 n \mathrm{V}_{\mathrm{o}}=\mathrm{D} \times \mathrm{V}_{\mathrm{REF}} / 2^{n} Vo​=D×VREF​/2n

D = d n − 1 2 n − 1 + d n − 2 2 n − 2 + … … + d 1 2 1 + d 0 2 0 \mathrm{D}=\mathrm{d}_{\mathrm{n}-1} 2^{\mathrm{n}-1}+\mathrm{d}_{\mathrm{n}-2} 2^{\mathrm{n}-2}+\ldots \ldots+\mathrm{d}_{1} 2^{1}+\mathrm{d}_{0} 2^{0} D=dn−1​2n−1+dn−2​2n−2+……+d1​21+d0​20

单片机的总结 第5篇

这学期我们选择了单片机这门课,从第一节课开始,我们就感觉到了这门课与其他的课有一些不同。单片机课程不仅是学习书本的内容,也需要从实验中掌握知识。这门课程确实让我们受到了很多的启发,并学到了很多的知识。

学习单片机,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使我们从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。

熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,不可能一蹴而就。万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。想把厚厚的一本书看完在做实验,估计是不太可能的。看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看。我们在焊接具体电路之前,最好做个仿真,这样实验的成功率会大大提高。我们都学习过C语言,相信的大家的基础都不错,在编写程序千万不要光看不写,一定要自己写一次。刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。

在学习单片机的时候,让我学会了思考生活中的点点滴滴。比如说,当我看到交通灯的时候会想到它的程序是怎样实现的?为什么它的led灯会有如此的高亮度?而我的led灯亮度很低,如果电流稍过大,就会烧毁。在家乡的公家车上看到远程led信息远程发布测试的时候,我便会想到它应有通信模块和显示模块两部分组成,也许我想的过于简单,但是让我学会了思考。

总之,学习单片机这门课程,不仅学会了这门专业课的知识,还提高了我的自主学习能力,更让我的世界观、方法论有了深层的提高,谢谢老师对我的教诲,让我受益匪浅。

单片机的总结 第6篇

函数是c语言的基本模块,C51与标准C语言类似,支撑关于C语言的基本语法。同时也针对单片机特有的属性,增加了一些与函数相关的关键字和语法,并对一些库函数的处理做了调整。

中断函数是单片机的一个重要特性,要使用C51语言开发单片机程序,必须支持中断函数的定义。

interrupt m修饰符 interrupt m 是C51中定义某个函数为中断响应西数的修饰符,当函数定义时定义后面用了interrupt m,系统编译时把该西数转化为某个中断员的响应函数,并函数地址存放在程序存储器中的中断对应的位置。interrupt m修饰xxx,m的取值为0~5,对应的中断情况如下:

McS-51单片机的内部资源主要有并行1/0口、定时器/计数器、串行接口以及中断系统,MCS-51单片机的大部分功能就是通过对这些资源的利用来实现的。

MCS-51单片机有4个8位的并行输入/输出接口:P0、P1、P2和P3口。这4个口既可以并行输入或输出8位数据,又可以按位方式使用,即每一位均能独立作为输入或输出接口用。

用C51语言编程时,对端口输出时,端口号在等号左端,读入时,端口号在等号右端。

利用单片机的P0口接8个发光二极管,P1口接8个开关,编程实现,当开关动作时,对应的发光二极管亮或灭。

由于它是加法计数器,每来一个计数脉冲,加法器内容加1,当由全1加到全0时溢出,如果要计N个单位,则首先应向计数器置初值为X:

初值X = 最大计数值(满值)M - 计数值N

在不同的计数方式下,最大计数值(满值)不一样,一般来说,当定时器/计数器工作于R位计数方式时,它的最大计数值(满值)为2的R次幂。

当定时/计数器工作于计数方式时,对芯片引脚(或)上的输入脉冲计数。

计数过程:在每一个机器周期的S5P2时刻对T0或T1上电平采样一次,当上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的S3P2时刻加1计数一次。

其中:M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下

C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。

GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号 (INTO,INT1)的影响,INTx为高电平时才运行。

TF1(TF0):定时/计数器T1(T0)的溢出你忑位,当定时/计数器T1计满时,由硬件使它置位。 TR1(TR0):定时/计数器T1(T0)的启动位,当TR1=1时启动;TR1=0时停止。

方式0是13位的定时/计数方式,因而最大计数值(满值)为2的13次幂,等于8192。如计数值为N,则置入的初值X为: X=8192-N

如定时/计数器T0的计数值为1000,则初值为7192,转换成二进制数为 1110000011000B(1C18H),则TH0=11100000B(E0H ),TL0=00011000B(18H)。

方式1的结构与方式o结构相同,只是把13位变成16位,16位的加法计数器被全部用上。

由于是16位的定时/计数方式,因而最大计数值(满值)为2的16次幂,等于65536。如计数值为N,则置入的初值X为: X=65536-N

如定时/计数器TO的计数值为1000,则初值为65536-1000=64536,转换成二进制数为1111110000011000B(FC18H),则TH0=11111100B(FCH),TL0=00011000B(18H)。

方式2下,16位的计数器只用了8位来计数,用TL0(或TL1)来进行计数,而TH10(或TH1)用于保存初值。当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面溢出信号又会触发开关,将TH0(或TH1的值就自动装入TL0(或TL1)。

由于是8位的定时/计数方式,因而最大计数值(满值)为2的8次幂,等于256。如计数值为N,则置入的初值X为: X=256-N 如定时/计数器T0的计数值为100,则初值为256-100=156,转换成二进制数为10011100B(9CH),则THO=TLO=10011100B。

方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3,方式3的结构如下图。

方式3下,定时/计数器T0被分为两个部分TL0和TH0,其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。

如用中断方式处理,编写中断服务程序。

利用定时器产生周期性的动作的基本思想:产生周期性的定时,定时时间到做相 应的处理,例如产生周期性的xxx,只须定时对输出端取反一次即可。

设系统时钟频率为12MHZ,用定时/计数器T0编程实现从输出周期为500us的xxx。

分析: 从输出周期为500us的xxx,只需每250ps取反一次则可。当系统时钟为12MHZ,定时器T0工作于方式2时,最大的定时时间为256us,满足250ps的定时要求。

方式控制字应设定为00000010B(02H)。 系统时钟为12MHZ,定时250us,计数值N为250, 初值X=256-250=6, 则TH0=TL0=06H。

单片机的总结 第7篇

两个月的暑期认知实习很快结束了,总体上来说感觉很充实,没有白白浪费暑假时光,也充实了自己的知识储备,获益匪浅。

当然很xxx夏老师和xxx老师,他们放弃自己的假期,在酷暑中坚持没两天一到,为我们解答学习过程中的疑问。还有就是xxx的支持,为我们提供凉爽的学习环境,会议室配有空调,在学习的同时不用经受酷暑的考验。虽然我们的学习场所很简陋:桌椅是我们从5栋教学楼搬的,电源插座是刚刚搭建的,和在普通教室上自习的同学来比我们是幸福的。

实习前虽说已经大二结束,但是对我们的专业嵌入式方向始终不甚明白,纵然专业导论课已经谈过,但是总感觉迷茫与空洞。书本上的知识也学了不少,像电路,数字逻辑,组成原理等一些课,但是这些课始终是书本知识,得不到实际的应用。通过这次的亲自动手设计到编写驱动设计程序,终于切身体会到在开发产品中要用到哪些知识。依然记得实训刚开始时,大家都很兴奋,因为我们要自己动手焊接自己开发板的每一模块,从电源模块开始着手。“书到用时方恨少,事要做时方知难”,一点也不假,感觉焊接应该不难,不就把锡点到电器元件引脚上不就行了,可是真正拿着烙铁去焊时,手是抖动的,烙铁也不打听话……淡然这只是刚开始时,经过多次的练习慢慢的得心应手。怪不得社会上的公司招聘都提到:有工作经验者优先。是啊,干过的总比纸上谈兵的强的多,公司不需要对你培训,可以直接工作给公司带来效益。

接下来的日子就是每天对着电脑编写程序,然后下载到单片机中进行检测,查看能否运行。有时花费了一天的时间编写的一个程序下载单片机中竟然运行不了或者显示错误,心里真的特别失望;有时为了一个驱动程序想了一天还是一无所获,会特别烦躁……但是看到其他同学都在专心的研究,自己也就安慰自己别灰心,要坚持。就想《士兵突击》中说的一样不抛弃不放弃,所以自己也不能放弃自己。然后又重新打起精神,投入到学习当中,就是在这样的一次次的自我暗示中,在和同学们一起拼搏一起学习。

还记得在进行多机通信时,由于要把所有的单片机连接在一起,大家不得不默契配合,一起想办法,编写协议“众人拾柴火焰高”,很快一个主机程序,从机程序就出炉了。

经过一个暑假的认知实习我学到的不仅是知识,还有责任心、信心、恒心以及团队合作能力。我想无论是在学校还是以后踏入社会这些都必不可少。我认识到了我所学知识的重要性。知识犹如人的血液。人缺少了血液,身体就会衰弱,人缺少了知识,头脑就要枯竭。这次的单片机培训应用到的不仅是单片机知识,还有以前的课程,所以知识的积累也是非常重要的。这次亲身体验让我有了深刻感触,这不仅是一次实践,还是一次人生经历,是一生宝贵的财富。在磨练自己的同时让自己认识了很多,使自己未踏入企业就已经对企业有了一定的了解。

通过这次的实习,我对自己的专业更清楚的认知,以前一直不清楚嵌入式的具体应用,不知道以后毕业了该干什么。但通过这次的实习,我对嵌入式有了更清楚地认识,对单片机有了更清晰的理解。我认识到做什么都要有责任心,只有抱着认真负责的态度才能把任务完成。而程序员更是对耐心和细心有很高的要求。

实习的过程不仅仅是一个认知的过程,更是一个反思的过程。学习到新知识固然可喜,但能否用新知识对旧只是加以反思,这是关键的关键。