大家好!请问多位的单片机控制器能不能把摄像头中的信息进行处理,处理成设定时间控制器的程序求大神解答

基于单片机的微控制器在系统编程
基于单片机的微控制器在系统编程
发布: | 作者:-- | 来源: -- | 查看:173次 | 用户关注:
&&&&&& 介绍
&&&&&& Dallas Semiconductor基于8051的微控制器类产品中,许多型号都支持通过通用RS-232串口实现在系统编程。在系统编程意味着程序和/或数据存储器能够在不用拆解嵌入式系统来替换存储器的情况下进行修改。这种特性强调易使用性和多
&&&&&& 介绍
&&&&&& Dallas Semiconductor基于8051的微控制器类产品中,许多型号都支持通过通用RS-232串口实现在系统编程。在系统编程意味着程序和/或数据存储器能够在不用拆解嵌入式系统来替换存储器的情况下进行修改。这种特性强调易使用性和多功能性,在所有嵌入式设计中增加了许多非常重要的特性: 允许硬件在工厂组装和存放,而在出厂前才进行软件定制, 需要进行软件升级时,消除了在现场拆解器件的高昂代价, 允许对位置不可达的应用进行软件升级, 访问专用配置与状态寄存器,以及 使用存储器加密的方式把软件加载到安全微控制器。
&&&&&& 具有这种特性的器件包括:
&&&&&& DS2250, DS2250T, DS2251T, DS2252T, DS5000, DS5000T 安全微控制器 DS5000FP, DS5001FP
, DS5002FP, DS5002FPM 安全微处理器 DS5240, DS5250 高速安全微处理器DS80C400 网络微处理器DS89C420, DS89C430, DS89C440, DS89C450 超高速闪存微控制器
&&&&&& 通过将器件的一个或多个外部引脚设置为某特定状态来激活引导加载程序。器件启动后,开始执行位于器件内部专用ROM的加载程序。一旦收到一个回车符号,串口就执行自动波特率功能并与主机的波特率同步。主机(通常为PC)和目标板之间的通讯是通过大多数PC上常见的通用RS-232接口完成的,而不需要昂贵的专用硬件。引导加载程序使用的协议简单,由一个或多个带有相关状态消息和文件传送程序的ASCII字符命令组成。可以使用Dallas Semiconductor免费提供的微控制器工具包通讯软件或任何串口通讯工具软件来完成通讯。
&&&&&& 大部分此类器件也支持在应用编程,允许器件在应用软件的控制下修改程序存储器。这种方式下,系统能够在仍然履行其主要功能的情况下完成在线软件升级。详细情况在相关器件的数据手册或用户指南中给出。
&&&&&& 此文档是对相关器件的数据手册以及使用指南中所提供信息的补充。阅读此应用笔记时,请根据需要参考这些文档。
&&&&&& 物理连接
&&&&&& 引导加载程序是通过将器件的一个或多个外部引脚置为如表1所示的特定状态来激活的。此时终止执行应用软件,并且将程序控制权交给内部引导ROM。一定要查阅正确的勘误表,以确定是否有与激活引导加载程序相关的任何勘误信息。
&&&&&& 对不同的产品系列,调用引导加载程序的物理连接和方法略有不同,但是都包含相同的基本元件。如果连接到一台PC上,需要一个如图所示的RS-232到CMOS电平转换器,来连接主机和目标微控制器间的通讯和控制信号。图中所示的器件可以替换为任何兼容的RS-232转换器。下列图中使用微控制器的DTR信号作为加载/运行模式选择信号。
&&&&&& 一些设计使用了具有三态输出的总线缓冲器。当DTR有效时(低电平),它使能打开缓冲器,并驱动用来激活引导加载程序的多个信号。这个总线缓冲器在原理图中一般标成&HC/AC125&,这是因为可以使用任何逻辑系列的相似器件,如74HC125, 54HC125, 74AC125, 74LS125等。这些器件很常见,应该能够从任何一家通用逻辑器件供应商买到,如Motorola, Fairchild Semiconductor, Toshiba, ST Microelectronics 和许多其它供应商等。
&&&&&& 其它器件用单个信号激活引导加载程序,因此不需要这个缓冲器。这种情况下,DTR信号可以直接连接到目标微控制器的激活引脚。
&&&&&& 引导加载程序使用连接到XTAL1/XTAL2引脚上的时钟源作为它的时间基准。如果使用晶振,它必须满足器件数据手册中列出的推荐指标(基频模式下的谐振,并行AT型切片,负载电容量等)。由于引导加载程序进行自动波特率测量依赖于内部定时器,因此对与引导加载程序兼容的频率范围有一些限制。对于您用到的具体器件,其与引导加载程序兼容的时钟频率范围请参考相关用户指南。 &
&&&&&& 软件
&&&&&& 引导加载程序激活后,微控制器将会查询串行端口,寻找一个8数据位,无奇偶校验,一个停止位(8-N-1)格式的回车(0Dh)字符。引导加载程序软件测量这个字符中高低电平的时间长度来确定主机系统的波特率。这种自动波特率特性允许引导加载程序和许多主机系统进行通讯,而不用限制固定的波特率。
&&&&&& 一旦调用了引导加载程序并计算好波特率,器件将会发送一个提示信息来识别器件。然后器件将会显示一个提示符并且等待命令。同样,不同的产品系列其命令集不尽相同,但它们通常是单ASCII字符并且总是包括加载,校验和擦除存储器命令等。欲知命令列表请查询具体器件的用户指南。
&&&&&& 简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制器间的通讯。最简单的方法是使用Dallas Semiconductor的微控制器工具包(MTK)软件。MTK是一种能用来与大部分Dallas Semiconductor微控制器的ROM/引导加载程序进行通讯的PC应用程序。它具有高度前端特征,简化了目标配置,上传、下载代码以及特殊功能配置等任务操作。
&&&&&& 主窗口允许用户直接向目标微控制器输入命令。目标加载程序支持的许多命令都可以由MTK的主窗口直接输入。对于需要特殊通讯协议的文件相关命令,也提供了特殊支持。
&&&&&&& 如果是基于DS5000FP, DS5001FP, DS5002FP, 或DS80C400等目标微控制器,也可以使用简单的终端仿真器,如Procomm Plus 或超级终端来进行通讯。Dallas Semiconductor其它基于8051的微控制器使用一种交互式加载协议,这种协议需要协议识别类应用。
&&&&&& 调试通讯问题
&&&&&& 以下是通过引导加载程序和微控制器通讯时所遇到的常见问题列表。
&&&&&&(1) 错误时钟频率
&&&&&& 如果器件工作在错误的时钟频率下,引导加载程序可能不会完成自动波特率功能。核对用户指南选择所支持的频率。如果怀疑问题是由时钟频率引起的,强烈推荐使用11.0592MHz的晶振调试任何引导加载程序问题。这是一个非常标准的微控制器工作频率,能够生成大部分标准波特率。
&&&&&& (2)其它应用干扰COM端口
&&&&&& 后台应用程序可能有意或无意地干扰所选择的PC机COM端口。检查任务管理器以查找可能的冲突源。
&&&&&& (3)PC的波特率相对于所选择的工作频率过快
&&&&&& 在较低的工作频率下(约低于5MHz)器件可能不能和高波特率进行自动波特率匹配,也可能在处理大文件时导致缓冲器溢出。降低波特率并重试。
&&&&&& (4)微控制器不工作
&&&&&& 很可能观察到的故障不是和引导加载程序有关,而是和微控制器自身有关。以下是排除系统级故障的简短诊断列表。
&&&&&& 器件的所有电源引脚是否都提供了正确的电压? 为了读数精确,要确保探测微控制器的实际引脚而不是与之相连的电路板上的引线。
&&&&&& EA\引脚保持低电平时,地址引脚是否跳变?许多器件在EA\置低时,会将器件置于外部访问模式,强迫器件从外部总线上获取指令。虽然不会立刻证明器件是否产生正确的地址,但是地址总线的变化表明微控制器正处于工作状态。
&&&&&& 某些器件的ALE引脚在缺省条件下是来回切换的。是切换的吗?它和预期的频率相匹配吗?对于大多数器件,ALE信号会以振荡器频率的某个分频进行振荡。
&&&&&& 器件是否有足够的去耦电容?大部分Dallas Semiconductor的微控制器工作在比传统对应器件更高的内部时钟速率上。直接替换设计或升级可能会要求额外的电容,以实现性能提高。
&&&&&& (5)微控制器工具包版本过期
&&&&&& 您是否在使用最新版本的微控制器工具包软件?
&&&&&& (6)勘误表条件
&&&&&& 您是否已经核对了对应的勘误表,以查阅任何相关的勘误信息?虽然这种情况很少出现,但有可能引
导加载程序和某个器件版本的发布规范有偏差。
&&&&&& (7)电缆线过长
&&&&&& 主控计算机和目标计算机间的电缆过长会降低信号的质量。对于电缆长度应该是多少没有明确的规定,但是遵守标准的操作原则如使用屏蔽电缆,远离电动机和磁性线圈等噪声源,应该是有帮助的。使用中降低波特率能够减小长电缆效应。
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
应用与方案分类
&&& 目前,处理器性能的主要衡量指标是时钟2016第三届物联网大会
智能后视镜产品方案对接会
中国LED智能照明高峰论坛
第三届·无线通信技术研讨会
第二届·中国IoT大会
ETFo智能安防技术论坛
移入鼠标可放大二维码
8位单片机中的经典之作,51单片机使用心得分享
来源: 作者:日 19:08
[导读] 虽然现在16位32位的单片机越来越多,但51单片机依然是8位单片机中的经典之作。这是对所有兼容Intel 8031指令系统的单片机的统称,该系列的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一。
虽然现在16位32位的单片机越来越多,但51单片机依然是8位单片机中的经典之作。这是对所有兼容Intel 8031指令系统的单片机的统称,该系列的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一。
在这里给大家分享一下学习51单片机心得体会:
1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。
2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
3、汇编语言在工作中很少用到,了解就好。
4、51单片机的P0口很特别。
5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。
当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,还会画电路图和PCB图,当然也会仿真。
6、51单片机是这个:
7、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料非常多,你遇到的问题别人肯定也遇到过。作为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。
8、有些单片机初学者觉得看例程不好,觉得就等于看答案一样有罪恶感。其实对初学者来说,看例程理解例程再看例程的注解是最好的学习途径。做实验做课程设计做参赛作品的时候也是可以移植程序的,不需要自己重新实现。(当然老师布置的作业还是独立完成好)
但是,要清楚,移植程序不等于学习单片机,最重要的是知道例程是怎样的框架及实现方法。初始化了哪些寄存器,做了哪些引脚配置,调用了哪些函数,那些函数又是怎么实现的,设置了哪些中断,用到了哪些片上资源(UART、ADC等),查询了哪些状态,如果状态变化(触发事件)又会做些什么等等。由此整理出一个流程图并知道其实现方式,基本上这个例程就学习得差不多了。
总结51单片机之上拉电阻
(1) 用于为OC和OD门电路,提供驱动能力。
以OC(集电极开路)电路为例:
例如,达林顿管(其实就是复合三级管)集成块ULN2003. 内部一路的电路如图,就是一个集电极开路电路。
如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机P0口加上拉电阻的原理一样。
(2)提高高电平电位:
单片机P1口外接4&4矩阵键盘。另外复用P1.0~P1.3外接ULN2003控制驱动步进电机。
实验中遇到的问题:当接入ULN2003时键盘无法工作,去掉ULN2003后键盘工作正常。ULN2003工作正常。(注,两个部分不同时工作)
问题分析:由于键盘的结构,无非就是两个金属片的接通或断开。但是接入ULN2003 后无法正常工作,说明是接入ULN2003影响到了P1口电平的变化。用万用表测的电压,当单片机输出高电平时,P1.0~P1.3电压1V左右,P1.4~P1.7电压4.3V左右,于是测AT89s52高低电平的判决电位,在1.3V左右。这样P1.0~P1.3始终是低电平,键盘根本无法实现扫描功能。
解决方法,只要抬高P1口高电平时的电位,就可以正常工作,
1. 在P1口到ULN2003上串接电阻,起到分压的作用,就可以抬高电平。
2.给P1口接上拉电阻,跟P1口内部电阻并联,减小上拉电阻阻值,减小分得的电压,从而抬高P0口高电平电位。
采用第二种方案可以抬高电平到2.5V左右。键盘工作正常。
另外:我在做液晶显示实验的时候,数据线用的P0口,无法正常工作,不显示字符。但是乱动一下数据线就可以完成显示,但是显示现象并不正常,字符不是一次写入,而是乱动几次才能写完全部内容,正常应该一次全部显示 。原因是由于,我的P0口中有六个端口都外接并联三个发光二极管。,因为从资料上查到,P0口每一个端口最大可以吸收10MA电流,总电流不能超过26MA电流。这样算我的总电流已经到了40MA,呵呵。见笑了。所以怀疑是驱动的问题。于是去掉了几个二极管。显示一切正常。似乎问题已经解决,但总觉得还是有点问题,于是又经过几次试验,发现只有当P0.7端口的并联二极管去掉一个,再在其他端口接上一个发光二极管。此时也可以正常显示。但是这样P0口吸收电流在38MA,也超过了26MA不少。所以不是吸收电流太大的问题。仔细分析当端口并联外接三个二极管的时候等效于加了一个700欧左右的电阻,于是把二极管去掉换成一个1k电阻,液晶也无法显示。
经过仔细分析,我认为,由于P0.7是液晶忙信号的返回线路当这个端口返回高电平时说明,液晶正在处理数据,无法接收新的数据,返回0时说明空闲,可以接收新数据。
这样当上拉电阻太小了,液晶返回低电平时就有可能高过1.3V(AT89s52高低电平的判决电位),单片机接收到后,不会当作低电平,当然也就无法显示了。(程序设计的时检测到忙信号,继续检测)
总结:上拉电阻选择也有要求,既不是越高越好也不是越低越好。根据需要选择。
51单片机相关文章
51单片机相关下载
单片机相关文章
单片机相关下载
英特尔公司高级副总裁兼无人驾驶事业部总经理戴佟森坚信英特尔会在无人驾驶领域取得成功。原因有三个:英特尔技术已经应用于正在进行路测的数百辆...
狗尾草科技有限公司COO严汉明认为,智能家居之前火不起来,有几个原因:智能家居成本太高,消费者对其的认知度还不够,交互感不够好。今年具备AI的...
创新实用技术专题
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-单片机在太阳能路灯控制器中的设计方案
单片机在太阳能路灯控制器中的设计方案
发布: | 作者: | 来源:
| 查看:267次 | 用户关注:
  本文介绍了以单片机为核心的太阳能路灯控制器的设计方案,对系统的硬件和软件设计做了说明。系统以较少的按键实现了参数设置,采用PWM技术对蓄电池进行充电管理,采取了负载过流、短路保护措施。系统具有可靠性高、操作简单等特点。  1 引言  随着人们环保意识的加强以及资源的日渐紧张,新能源的利用已快速进入人们的生活。太阳能路灯以太阳光为能源, 白天充电、晚上使用, 无需铺设复杂、昂贵的管线, 可任意调
  本文介绍了以为核心的太阳能路灯控制器的设计方案,对系统的硬件和软件设计做了说明。系统以较少的按键实现了参数设置,采用PWM技术对蓄电池进行充电管理,采取了负载过流、短路保护措施。系统具有可靠性高、操作简单等特点。  1 引言  随着人们环保意识的加强以及资源的日渐紧张,的利用已快速进入人们的生活。太阳能路灯以太阳光为能源, 白天充电、晚上使用, 无需铺设复杂、昂贵的管线, 可任意调整灯具的布局, 安全节能无污染, 充电及开/关过程采用光控自动开关, 无需人工操作, 工作稳定可靠, 节省电费, 免维护, 太阳能路灯的实用性已经得到人们的认可。  本文介绍基于单片机的太阳能路灯控制器的方案设计, 对12 V 和24 V 蓄电池可自动识别, 可实现对蓄电池的科学管理, 指示蓄电池过压、欠压等行状态, 具有两路负载输出, 每路负载额定电流可达5 A, 两路负载可以随意设置为同时点亮、分时点亮以及单独定时等工作模式, 同时具有负载过流、短路保护功能; 具有较高的和水平。  2 硬件电路组成及工作原理  2.1 系统硬件结构  太阳能路灯智能控制器系统硬件结构如图1所示, 该系统以STC12C5410AD 单片机为核心, 外围电路主要由电压采集电路、负载输出控制与检测电路、LED 显示电路及键盘电路等部分组成。电压采集电路包括太阳能电池板和蓄电池电压采集, 用于太阳光线强弱的识别以及蓄电池电压的获取。单片机的P3 口的两位作为键盘输入口, 用于工作模式等参数的设置。图1 系统硬件结构框图  2.2 STC12C5410AD 单片机  STC12C5410AD 是STC12 系列单片机, 采用RISC型CPU 内核, 兼容普通8051 指令集, 片内含有10 KB Flash 程序存储器, 2 KB Flash 数据存储器,512 B RAM 数据存储器, 同时内部还有看门狗(WDT) ; 片内集成MAX810 专用复位电路、8 通道10 位ADC 以及4 通道PWM; 具有可编程的8 级中断源4 种优先级, 具有在系统编程( ISP) 和在应用编程( IAP) , 片内资源丰富、集成度高、使用方便。  STC12C5410AD 对系统的工作进行实施调度, 实现外部输入参数的设置、蓄电池及负载的管理、工作状态的指示等。为充分使用片内资源, 本文所设置的参数写入Flash 数据存储器内。  2.3 键盘电路  P3.4(T0)接F1 键, 用于设置状态的识别及参数设置; P3.5(T1)接F2 键, 用于自检及&加1&功能, 根据程序流程, 分别实现不同功能。  2.4 电压采集与电池管理  太阳能电池板电压采集用于太阳光线强弱的判断, 因而可以作为白天、黄昏的识别信号。同时本系统支持太阳能板反接、反充保护。  蓄电池电压采集用于蓄电池工作电压的识别。  利用微控制器的PWM 功能对蓄电池进行充电管理。若太阳能电池正常充电时蓄电池开路, 控制器将关断负载, 以保证负载不被损伤, 若在夜间或太阳能电池不充电时蓄电池开路, 控制器由于自身得不到, 不会有任何动作。当充电电压高于保护电压( 15 V) 时, 自动关断对蓄电池的充电; 此后当电压掉至维护电压( 13.2V) 时, 蓄电池进入浮充状态, 当低于维护电压( 13.2 V) 后浮充关闭, 进入均充状态。当蓄电池电压低于保护电压(11 V)时, 控制器自动关闭负载开关以保护蓄电池不受损坏。通过PWM充电电路( 智能三阶段充电) , 可使太阳能电池板发挥最大功效, 提高系统充电效率。本系统支持蓄电池的反接、过充、过放。  2.5 负载输出控制与检测电路  本系统设计了两路负载输出, 每路输出均有独立的控制和检测, 具有完善的过流、短路保护措施,电路原理如图2 所示。设计了两级保护: 第一级采用了由R7(0.01 &O康铜丝)以及运放LM358、比较器LM393 等器件组成的过流、短路检测电路, 配合单片机的A/D 转换及外部中断响应来实现负载过流及短路保护, 是一种硬件+软件的方式, LM358 的输出送P1.7(A/D 转换)口, 用作过流信号识别, 当电流超过额定电流20%并维持30 s 以上时, 确认为过流; 短路电流整定为10 A, 响应时间为毫秒数量级。图2 负载输出控制与检测电路  第二级采用了保险丝保护, 当流经电子保险丝的电流骤然增加时, 温度随之上升, 其电阻大大增加, 工作电流大大降低, 达到保护电路目的, 响应时间为秒数量级, 过流撤消或短路恢复后电子保险丝恢复成低阻抗导体, 无须任何人为更换或维修。系统采用了两级保护措施后, 在长达数小时的负载短路实验后, 控制器仍没出现电路烧毁现象。解决了用传统保险丝只能对电路进行一次性保护以及一旦器件烧毁必须人为更换的问题, 同短路后需手动复位或断电后重新开启的系统相比, 也具有明显的优点。简化了太阳能路灯控制器维护, 提高了系统的安全性能。  2.6 硬件设计过程中的注意事项  ( 1) 感应雷保护电路应设计在太阳能电池板引线入口处, 保护电路周围4 mm 内不能布置其他器件。  ( 2) 防止太阳能电池板反接的必须采用快恢复二极管, 这种二极管导通内阻小, 充电时发热量小, 不用散热器也可以连续充电, 充电效果好。  ( 3) 充电、负载放电电路的印刷线路宽度至少为4 mm~5 mm, 线路上用搪锡处理以增加过电流能力, 大电流导线从一层过渡到另一层时, 要放置3~5个过孔。  ( 4) 过流、短路保护电路选用的电流取样电阻要综合考虑电流、功率及热稳定性三个因素。电阻增大则电路效率下降, 本系统选用电阻为0.01 &O, 过电流能力在10 A 以上的康铜丝作为电流取样电阻, 来产生取样电压, 取样电压最多不超过0.2 V, 故采用运放LM358 对其进行放大。  ( 5) 器件的布局和PCB 的布线采用模块化方式, 大电流信号与小电流信号要分离,对放大电路的线路尤其要精心布置。数字地和模拟地分开, 注意线和地线的布局。  3 系统软件设计  与本设计方案的硬件电路对应的软件程序包括: 主程序、定时中断程序、A/D 转换子程序、外部中断子程序及键盘处理子程序、充电管理子程序、负载管理子程序。单片机的软件编程以Keil C 编译器的Windows 集成开发环境&vision2 作为开发平台, 采用C51 高级语言编写。  3.1 软件编程要点  ( 1) 本系统采用较少的按键实现了诸多功能, 如负载工作模式的设置、双灯同时工作还是分时工作、负载工作时间的设定、自检功能等, 为防止误操作采取了一些措施。这种方法实际上是一键多用的一种尝试, 还可以推广到更复杂的人机对话的设计, 其思路可参见按键处理流程图。  ( 2) 键盘在定时中断服务程序中读取, 用中断间隔时间实现键盘的去抖, 不必编写另外的延时程序, 提高了CPU 的利用效率。键盘值存入数据缓冲区, 在主程序中读数据缓冲区的内容, 执行键盘功能散转子程序。  ( 3) 环境光线( 闪电、礼花燃放) 对太阳能电池板的采样电压有明显影响, 故在白天、黄昏的识别时, 要进行软件延时, 一般控制在2~3 min.  ( 4)外部中断为高优先级中断, 编制子程序实现负载过流、短路保护时, 要充分考虑到负载启动瞬间会产生数倍于额定电流的冲击电流, 冲击电流维持时间在3 ms~5 ms, 应在软件上采取措施,避免短路与负载开启的误判。确定负载过流、短路后, 切断负载输出。负载切断后, 每隔一段时间, 如20 s, 应试接通负载开关, 当发现过流、短路信号已消除, 则恢复负载的输出, 否则负载开关仍然保持断开。  ( 5) 为保护负载( 灯具) , 蓄电池过放保护恢复时应用软件设置一个回差电压, 这样负载开关不会出现颤抖现象, 有利于延长灯具的使用寿命。  ( 6) 根据STC12C5410AD 的Data Flash 的特点,数据写入时必须启动ISP/IAP 命令, CPU 等待IAP动作定时后, 才继续执行程序, 要先关断中断( EA) .  还应注意数据写入Data Flash 存储器, 不能跨越扇区。  3.2 单片机软件编程  系统单片机软件流程如图3、4 所示。图3 按键程序流程。图4 电压检测子程序流程  (1)ADC 子程序  INT8U ADC(INT8U number)using 2  {number=number&0x07;//通道号不超过7  ADC_CONTR = ADC_CONTR&0xe0; //清ADC_  FLAG、AD 不启动  ADC_CONTR = ADC_CONTR| //选择通道  ADC_CONTR = ADC_CONTR|0x08;//启动A/D 转换  while((ADC_CONTR&0x10)! =0x10); //等待A/D转换结束  return (ADC_DATA);//结果返回  }  (2) 外部0 中断响应子程序  void Service_INT0() interrupt 0 using 1  { if(P3_2) //高电平,认为是干扰信号触发中断    delay1(5000);//10ms 延时  if(P3_2==0)  {load_switch_1=LSTOP;//负载开关1 关  LOOP1_DL=1;//置负载短路标志  }  }  4 结束语  本文所设计的太阳能路灯控制器可适用12 V或24 V 工作的光伏系统, 可以直接驱动直流节能灯或通过逆变器驱动无极灯等作为照明光源, 也可以驱动一些直流低压负载用于城市亮化。控制器的两路负载输出可以用于机动车道和人行道的照明, 照明时间和工作模式可以灵活设置。着重解决了如何对蓄电池及负载进行有效管理的问题,提高了太阳能电池板的使用效率, 延长了蓄电池的使用寿命, 防止因线路问题而造成意外事件的发生。
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
应用与方案分类
&&& 目前,处理器性能的主要衡量指标是时钟

我要回帖

更多关于 微控制器 单片机 的文章

 

随机推荐