自学单片机(提高篇) 在入门篇里,我们利用网络资源建立了自己的学习环境,在提高篇里,我们将带领爱好者充分利用网络资源,登堂入室,尽快从学习者变为一个开发者。当爱好者学到一定程度后,必然会结合自身的情况,向各个不同的方向发展,这里无法对每一个方向作详细论述,仅讨论一些能从网络上获得的、典型的资源,难免挂一漏万,但希望能够给读者一些引导。 、分门别类用单片机目前,国内单片机应用呈现百花齐放之势,很多不同类型的单片机逐渐进入中国,这给我们增加了选择余地,不必不管什么应用千篇一律都用51单片机。因此在入门以后,爱好者可以根据实际情况,选择进一步学习另一种或多种单片机。通常每一种单片机都会在国内找一些代理公司,要使用这些单片机,最好是找到这些代理,可以得到较好的技术支持。目前,爱好者有可能接触和使用的单片机主要是这要的一些种类:图4 21ic资料搜索1.51系列基于51内核的单片机依然是最多的,目前国内较常见的有以下几种。1)PHILPS公司的的LPC系列,基于80C51内核的微控制器,每机器周期只需6个时钟,比标准51快一倍;嵌入了诸如掉电检测、模拟功能以及片内RC振荡器等功能,可减少外部元件的使用;低功耗。该系列芯片适用于大批量、低成本、低功耗的应用,如电子门禁系统、倒车雷达、里程表等。该系列单片机由周立功公司代理,网址:http://www.zlgmcu.com。
标签: 单片机
上传时间: 2013-11-13
上传用户:674635689
Cortex-M3 技术参考手册 Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。谭军举例说,在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。 单片机的另外一个特点是调试工具非常便宜,不象ARM的仿真器动辄几千上万。针对这个特点,Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。 ARM Cortex-M3处理器结合了多种突破性技术,令芯片供应商提供超低费用的芯片,仅33000门的内核性能可达1.2DMIPS/MHz。该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。ARM公司希望Cortex-M3核的推出,能帮助单片机厂商实. Cortex的优势应该在于低功耗、低成本、高性能3者(或2者)的结合。 Cortex如果能做到 合理的低功耗(肯定要比Arm7 & Arm9要低,但不大可能比430、PIC、AVR低) + 合理的高性能(10~50MIPS是比较可能出现的范围) + 适当的低成本(1~5$应该不会奇怪)。 简单的低成本不大可能比典型的8位MCU低。对于已经有8位MCU的厂商来说,比如Philips、Atmel、Freescale、Microchip还有ST和Silocon Lab,不大可能用Cortex来打自己的8位MCU。对于没有8位MCU的厂商来说,当然是另外一回事,但他们在国内进行推广的实力在短期内还不够。 对于已经有32位ARM的厂商来说,比如Philips、Atmel、ST,又不大可能用Cortex来打自己的Arm7/9,对他们来说,比较合理的定位把Cortex与Arm7/9错开,即<40MIPS的性能+低于Arm7的价格,当然功耗也会更低些;当然这样做的结果很可能是,断了16位MCU的后路。 对于仍然在推广16位MCU的厂商来说,比如Freescal、Microchip,处境比较尴尬,因为Cortex基本上可以完全替代16位MCU。 所以,未来的1~2年,来自新厂商的Cortex比较值得期待-包括国内的供应商;对于已有32位ARM的厂商,情况比较有趣;对于16位MCU的厂商,反应比较有意思。 关于编程模式 Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构,Cortex-M3处理器不能执行ARM指令集。 Thumb-2在Thumb指令集架构(ISA)上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。 关于工作模式 Cortex-M3处理器支持2种工作模式:线程模式和处理模式。在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。 出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。 关于工作状态 Coretx-M3处理器有2种工作状态。 Thumb状态:这是16位和32位“半字对齐”的Thumb和Thumb-2指令的执行状态。 调试状态:处理器停止并进行调试,进入该状态。
上传时间: 2013-12-04
上传用户:坏坏的华仔
NE1619可以监控温度或MCU的工作电压,可设置温度及工作电压的门限值。器件支持5种模式输入方式:如远程温度传感器输入,板载温度传感器输入。器件可以监控自己的工作电压,并支持Pentium/PRO电源ID输入。
上传时间: 2014-03-08
上传用户:lizx30340
本文以f1禁系统的可靠性和低成本为立足点,提出了一种基于AT89C2051单片机的RF卡门禁系统设 系计方法。首先简单介绍了组成这个系统的非接触式IC卡,然后详细描述了其软硬件设计的过程。在实际的应用 统设过程中已经验证了该设计方法的合理性。
上传时间: 2013-10-15
上传用户:takako_yang
PCA9547 是一款通过I2C 总线控制的八进制双向转换开关。它的每对SCL/ SDA 上行通道可以扩展为八对下行通道。但在某一时刻,由可编程控制寄存器中的内容来决定只有一路SCx/SDx 被选择。由多路复用器的通门,VDD 管脚可以用来限制PCA9547 通过的最高电压,这使得每一对SCL/SDA 可以使用不同的总线电压,因此1.8V、2.5V 或3.3V 的器件都可以在无其它保护的情况下与5V 的器件进行通信。它的外部上拉电阻将总线拉高至每个通道所要求的电压电平,所有I/O 管脚都可以承受5V 的电压。设备上电时由通道0 连接,并且允许主机和下行设备进行直接的通信
上传时间: 2014-12-28
上传用户:sunshine1402
PCA9548A 是一款通过I2C 总线控制的八进制双向转换开关。它的每对SCL/ SDA 上行通道可以扩展为八对下行通道,可以通过可编程控制寄存器的内容来选择任意单一的SCx/SDx 通道或者组合通道。由多路复用器的通门,VDD 管脚可以用来限制PCA9547 通过的最高电压,这使得每一对SCL/SDA 都可以使用不同的总线电压,因此1.8V、2.5V 或3.3V的器件可以在无其它保护的情况下与5V 的器件进行通信。它的外部上拉电阻将总线拉高至每个通道所要求的电压电平,所有I/O 管脚都可以承受5V 电压。
上传时间: 2013-10-13
上传用户:hanli8870
S51下载线的制作-单片机实用技术探讨:在微电脑技术发展的今天,人们整天都在和单片机打交道,但作为一个电子爱好者,尽管我对微电脑非常感兴趣,但我却怎末也入不了门。在此,我将自己的学习体会写出来,与大家共赏,希望大家能更好的了解单片机,了解单片机或微电脑的工作方式,了解单片机周围元件的作用和接口电路,为以后的维修之路打好基础,如果有兴趣,还可以编写一些符合自己要求的程序,要它根据要求做一些事情。因为它无处不在,手机,电视,VC D ,D VD ,M P3,空调,冰箱,全自动洗衣机,电扇等,我们都可以在其电路板上看到C PU ,当然,我不会在此讲述所有的C PU ,只介绍S52的简单电路,希望大家对C PU 有一个初步的解。为了便于初学者学习,我尽量讲的详细些。便于理解,依实用为目的,让大家更好的理解单片机,应用单片机。
上传时间: 2013-12-26
上传用户:3到15
基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断0作为入口,实现加1操作,中断1作为出口,实现减1操作。另外,我们通过P0口控制室内灯的亮暗,当寄存器计数值为0时,熄灯,不为0时,灯亮。显示部分,采用两位数码管动态显示,如有必要,可以很方便的扩展为四位计数。精益求精!在实验过程中,我们走了非常多的弯路,做出来的东西根本不是自己想要的,我们本想做成室内只有一个门的进出计数,原理已清楚,即在门的两边放置两对红外对管,进出时,挡住两对对管的顺序不同,因此,可判断是进入还是出去,从而实现加减计数,编程时,可分别在两个中断服务程序的入口置标志位,根据标志位判断进出,详细内容在程序部分。理论如此,但在实际过程中,还是发现实现不了上述功能,我们初步判定认为是程序掌握得不够好,相信随着自己对单片机了解的深入,应该会做出更好的 (因为我们是临时学的单片机),程序的具体内容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化缓存区 MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;调用数制转换子程序 ACALL DISPLAY ;调用显示子程序 LJMP NEXT1 ORG 0100H ;中断0服务程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中断1服务程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六进制转化为十进制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;将十六进制中最高位移入进位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位数加上本身相当于将这个数乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十进制调整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段码表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延时子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 该系统实际应用广泛。可用在生产线上产品数量统计、公交车智能计数问候(需添加语音芯片)、超市内人数统计等公共场合。另外,添加串口通信部分便可实现与PC数据交换的功能。 由于,实验简化了,剩下不少零件和资金,所以我们又做了两项其他的实验。
上传时间: 2013-12-22
上传用户:tangsiyun
锂离子电池Li+ 是适合电子产品轻薄小需求的高能量密度高性能电池,被广泛应用于手机,PDA ,笔记本电脑等高端产品中.图一所示电路提供了一种结构简单紧凑的单节Li+电池充电方案图中墙上适配器为9VDC 800mA 限流型电压源Anam Friwo 等公司均有相应产品MAX1679内置充电终止检测电路和充电过程控制.器插入电池或充电器上电都将启动一次充电过程一次完整的充电过程包括初始化充电以较小的充电电流为电池充电使电池电压大于2.5V温度范围如果超出2.5 到47.5 则处于等待状态.快充过程快充开始后MAX1679打开外接的P 沟道场效应管快充电流由外部限流型充电电源决定.一旦检测到电池电压达到Li+电池充电终止门限电压时快充结束.充电终止门限电压由电阻RADJ确定,可参考以下公式:
上传时间: 2013-11-14
上传用户:yuanwenjiao
微型计算机课程设计论文—通用微机发声程序的汇编设计 本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节。关键字:微机 8253 通用发声程序 动画技术 直接写屏 1. 可编程时间间隔定时器8253在通用个人计算机中,有一个可编程时间间隔定时器8253,它能够根据程序提供的计数值和工作方式,产生各种形状和各种频率的计数/定时脉冲,提供给系统各个部件使用。本设计是利用计算机控制发声的原理,编写演奏乐曲的程序。 在8253/54定时器内部有3个独立工作的计数器:计数器0,计数器1和计数器2,每个计数器都分配有一个断口地址,分别为40H,41H和42H.8253/54内部还有一个公用的控制寄存器,端地址为43H.端口地址输入到8253/54的CS,AL,A0端,分别对3个计数器和控制器寻址. 对8353/54编程时,先要设定控制字,以选择计数器,确定工作方式和计数值的格式.每计数器由三个引脚与外部联系,见教材第320页图9-1.CLK为时钟输入端,GATE为门控信号输入端,OUT为计数/定时信号输入端.每个计数器中包含一个16位计数寄存器,这个计数器时以倒计数的方式计数的,也就是说,从计数初值逐次减1,直到减为0为止. 8253/54的三个计数器是分别编程的,在对任一个计数器编程时,必须首先讲控制字节写入控制寄存器.控制字的作用是告诉8253/54选择哪个计数器工作,要求输出什么样的脉冲波形.另外,对8253/54的初始化工作还包括,向选定的计数器输入一个计数初值,因为这个计数值可以是8为的,也可以是16为的,而8253/5的数据总线是8位的,所以要用两条输出指令来写入初值.下面给出8253/54初始化程序段的一个例子,将计数器2设定为方式3,(关于计数器的工作方式参阅教材第325—330页)计数初值为65536. MOV AL,10110110B ;选择计数器2,按方式3工作,计数值是二进制格式 OUT 43H,AL ; j将控制字送入控制寄存器 MOV AL,0 ;计数初值为0 OUT 42H,AL ;将计数初值的低字节送入计数器2 OUT 42H,AL ;将计数初值的高字节送入计数器2 在IBM PC中8253/54的三个时钟端CLK0,CLK1和CLK2的输入频率都是1.1931817MHZ. PC机上的大多数I/O都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的.关于8255A的结构和工作原理及应用举例参阅教材第340—373页.教材第364页的”PC/XT机中的扬声器接口电路”一节介绍了扬声器的驱动原理,并给出了通用发声程序.本设计正是基于这个原理,通过编程,控制加到扬声器上的信号的频率,奏出乐曲的.2.发声程序的设计下面是能产生频率为f的通用发声程序:MOV AL, 10110110B ;8253控制字:通道2,先写低字节,后写高字节 ;方式3,二进制计数OUT 43H, AL ;写入控制字MOV DX, 0012H ;被除数高位MOV AX, 35DEH ;被除数低位 DIV ID ;求计数初值n,结果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;读入8255A端口B的内容MOV AH, AL ;保护B口的原状态OR AL, 03H ;使B口后两位置1,其余位保留OUT 61H,AL ;接通扬声器,使它发声
上传时间: 2013-10-17
上传用户:sunjet