C8051F020单片机的电路设计

发布者:科技狂人最新更新时间:2021-03-05 来源: eefocus关键字:C8051F020  单片机  电路设计 手机看文章 扫描二维码
随时随地手机看文章

设计采用高性能单片机C8051F020为控制芯片,监控示波器面板上40个按键、3个编码开关及4个电位器的状态。分别介绍了键盘、编码开关和电位器的工作原理,以及其与单片机连接的硬件电路及软件编程的实现。按键部分采用的键盘程序设计方法,给出了键码匹配子程序流程图。


监控程序负责系统中全部硬件和软件资源的分配、调度工作,它提供用户接口,使用户获得友好的工作环境,是系统设计中一个重要组成部分。


1C8051F020单片机概述

伴随着电子技术快速的发展,越来越多的人加入电子开发的大军。在学习电子技术和研发项目的过程中,避免不了要使用一些仪器,例如万用表、示波器等等,然而对于一些非专业的爱好者,拥有一台数字示波器是比较“奢侈”的。本设计C8051F020单片机,因其具有成本低、制作简单、测量精度高等优势,恰恰满足了这一部分人的需求。


C8051F020单片机是高度集成的片上系统。在芯片内集成了2个多通道ADC子系统(每个子系统包括1个可编程增益放大器和1个模拟多路选择器)、2个电压输出DAC、2个电压比较器、电压基准、SMBus/I2C总线接口、UART、SPI总线接口、5个通用的16位定时器、1个具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA)、内部振荡器、8个8位通用数字I/0端口和64KBFLASH程序存储器,以及8051兼容的高速微控制器内核。


C8051F020单片机是所有模拟和数字外设均可由用户固件使能/禁止和配置。Flash存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。片内JTAG调试电路允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。


2一键多义键盘工作原理

一台完善的智能仪表功能往往很多,设定的量程、参数也很多。如果还是用一键一个功能,势必要有一个很大的键盘,面板相应扩大,不美观,而且成本增加。因此在这类仪表中,键盘设计成一键多义,一个键有多种功能。


在一键多义的情况下,一个命令不是由一次按键组成,而是由一个按键序列组成。也就是说,对一个按键含义的解释,不仅取决于本次按键,还取决于以前按了些什么键。因此,对于一键多义的监控程序,首先要判断一个按键序列(而不是一次按键)是否已构成一个合法命令。若已构成合法命令,则执行命令,否则等待新按键输入。一键多义键盘管理程序,主要解决键盘按键序列的识别和如何根据键盘的按键序列去找相应的操作程序这两个问题。


上述问题可用“一图三表”的方法来解决。即,建立一张键图,依靠分析程序状态表,分析程序入口表和动作例行子程序表来完成。其中分析程序状态表总共分为4栏,分别为现状态PSTi、键码、下一状态、动作例行子程序编号。


3编码开关工作原理

编码开关有3个引脚和5个引脚的,其中2个引脚是按下功能,另外3个引脚控制编码开关的左旋和右旋功能,与引脚1、2相连的是两个长短不一的金属静片,与引脚3相连的是一周有12或24个齿的金属动片。当脉冲电位器旋转时可出现4种状态:引脚3与引脚1相连,引脚3与引脚2及引脚1全相连,引脚3与引脚2相连,引脚3与引脚2及引脚1全断开。


在实际使用中,一般将引脚3接地作为数据输入端。而引脚1、2作为数据输出端与单片机I/0口相连。本设计中用到3个编码开关,其中一个将引脚1与单片机的P4.0相连,引脚2与单片机的P4.1相连。当脉冲电位器左旋或右旋时,P4.0和P4.1就会周期性地产生图1所示的波形。如果是12点的脉冲电位器旋转一圈就会产生12组这样的波形,24点的脉冲电位器就会产生24组这样的波形。一组波形(或一个周期)包含了4个工作状态。因此只要检测出P4.O和P4.1的波形,就能识别脉冲电位器是否旋转,是左旋还是右旋。



4C8051F020单片机ADC0

C8051F020的ADC0子系统包括:一个9通道的可配置模拟多路开关(AMUX0)、一个可编程增益放大器(PGA0)和一个100ksps的12位分辨率的逐次逼近寄存器型ADC。ADC中集成了跟踪保持电路和可编程窗口检测器。AMUX0、PGA0、数据转换方式及窗口检测器都可用软件通过特殊功能寄存器来配置。只有当ADC0控制寄存器(ADCOCN)中的ADOEN位被置1时,ADC子系统才被允许工作。当ADOEN位为0时,ADC子系统处于低功耗关断方式。


ADC0端口的每一对均可用编程设置成为单端输入或差分输入。差分输入时的端口配对为(0,1)、(2,3)、(4,5)、(6,7),此设置由通道选择寄存器AMUXOSL的低4位和通道配置寄存器AMUXOCF的低4位确定。在AMXOCF中,位3~O各对应2个引脚通道。位值=0,表示是独立的单端输入(复位值均为单端输入);位值=1,表示是差分输入对。


C8051F系列单片机中ADC的速率都是可编程设置的,但最少要用16个系统时钟。一般在转换之前还自动加上3个系统时钟的跟踪/保持捕获时间(>1.5μs)。设置F020内ADC速率的方法是通过配置寄存器ADCOCF的位7~3来进行的,其复位值为11111(位7~3=SYSCLK/CLK(SAR)-1)。


一般在启动ADC之前都要处于跟踪方式,控制寄存器ADCOCN的位6如果为“O”,则一直处于跟踪方式(此时启动4种启动方式都可比跟踪启动快3个系统时钟);如为“1”,则有4种跟踪启动方式可选择,即对ADCOCN中的位3~2赋值:00为向ADBUSY写1时跟踪(软件命令),01为定时器3溢出跟踪,1O为CNVSTR上升沿跟踪(外部信号),11为定时器2溢出跟踪。


5系统硬件电路设计

键盘部分采用6×6矩阵键盘,P7.O~P7.5为行线,P3.0~P3.5为列线。P3.0与P7.O交叉处为一键,P7口接10kΩ的上拉电阻至3.3V。3个编码开关的1、2脚直接与单片机的I/0引脚相连,这里选择P4.O~P4.5,3脚接地,4、5脚用作按键使用。仅以接P4.O和P4.1引脚的编码开关为例,电路图如图2所示。模数转换部分使用内部电压基准,故将VREF引脚与VREF0引脚相连即可。采用电位器调节模拟量的输入,单端输入,电位器阻值为10kΩ,基准电压典型值为2.43V,电源电压采用3.3V供电。为使基准电压达到最大,需要一个阻值约为3.58kΩ的电阻与电位器串联接到模拟端口,硬件电路如图3所示,电位器的4、5脚也用作按键使用。


6系统软件设计

6.1一键多义键盘程序设计

在键盘分析中,运用一个工作状态寄存器保存键盘的现状态,当键盘扫描到一个按键时,根据现状态的值从分析程序入口表中找到分析程序状态表地址,从该地址处进入分析程序状态表,找到相匹配的值,把下一状态送到现状态单元里,取出动作号,根据动作号计算出动作子程序入口地址,再执行相应子程序。图4为键码匹配子程序的流程图。


6.2编码开关程序设计

由图1可以看出,引脚1和引脚2有同时为高电平的情况,之后如果引脚2比引脚1先到达高电平则表示左旋,如果引脚1比引脚2先到达高电平则表示右旋。编程的时候依据这个特点来判断引脚1、引脚2的状态即可。以1引脚接P4.0,2引脚接P4.1为例:


6.3模数转换软件设计

通过设置ADCO控制寄存器ADCOCN位3~2(ADOCM1~O)A/D转换启动方式选择位,来启动A/D转换:位3~2为00时,向ADOBUSY(ADCOCN位4)写1启动A/D转换;位3~2为01时,定时器3溢出启动A/D转换;位3~2为10时,CNVSTR上升沿启动A/D转换;位3~2为11时,定时器2溢出启动A/D转换。本设计采用第一种启动方式。


由于单片机的工作量并不大,所以软件设计时采用查询的方式。单片机不断地查询键盘、编码开关以及电位器的状态,如果有变化时,单片机将动作信息传递给ARM主MCU,等待主MCU的处理。由于单片机模数转换的速度非常快,因此在程序中加延时,以便观察到模数转换的变化量。另外,硬件设计时没有考虑滤波,故用软件实现滤波。一般的滤波的方法有限幅滤波法、中位置滤波法、算术平均滤波法等,现在提出一种新的滤波方法。由于使用12位A/D,但只要8位就可以达到所要的精度


由于单片机的工作量并不大,所以软件设计时采用查询的方式。单片机不断地查询键盘、编码开关以及电位器的状态,如果有变化时,单片机将动作信息传递给ARM主MCU,等待主MCU的处理。由于单片机模数转换的速度非常快,因此在程序中加延时,以便观察到模数转换的变化量。另外,硬件设计时没有考虑滤波,故用软件实现滤波。一般的滤波的方法有限幅滤波法、中位置滤波法、算术平均滤波法等,现在提出一种新的滤波方法。由于使用12位A/D,但只要8位就可以达到所要的精度,所以可以采用去掉低4位的方法来实现滤波的目的。由于篇幅有限,下面只给出程序的一部分,以AIN0为例:


结语

本文介绍的一键多义的,对多按键的智能仪表可以通用。编码开关的编程方法简单易懂。在A/D转换部分,提出的去掉低4位的软件滤波方法可靠可行,对精度要求不高的场合非常适用。这3部分构成了一个完整的监控程序,当单片机监控到某一部分有变化时,就将其动作信息传递给ARM主CPU,主CPU进行相应的处理


关键字:C8051F020  单片机  电路设计 引用地址:C8051F020单片机的电路设计

上一篇:电容传感器测量系统模块电路设计之数码管显示电路
下一篇:51单片机中断源的扩展方法

推荐阅读最新更新时间:2024-11-08 11:10

系统管理微控制器MAX31782特性与应用
MAX31782基于高性能MAXQ20 16位微控制器核,具有超大容量的程序/数据闪存存储器和RAM数据存储器,为复杂系统的测量和控制提供完整的解决方案。   I/O资源包括温度和电压的高精度测量单元、PWM输出、时钟输入和GPIO,支持系统关键参数(例如:温度、电压、风扇速度和机箱介入等)的检测和控制。器件能够直接检测连接成二极管的晶体管远端温度传感器,通过片上I?C主机接口扩展外部数字温度传感器IC的数量。独立的I?C从机接口除了提供片上闪存的在系统编程加密保护外,还可以方便地与主处理器通信。   高度通用的C编译器和开发软件能够对闪存编程和通过JTAG口及相应的硬件进行在电路调试,简化了开发过程。   所有这些功
[单片机]
用keil C使单片机获得随机数
一、前言 1、本文主要讨论系统时钟以至外设时钟之间的源流关系。介绍stm32的片上时钟系统,描述系统时钟初始化函数SystemInit()对时钟的控制(从HSE到SYSCLK,第二节)与配置(SYSCLK到外设,第三节)。 2、103与107所用时钟系统略有不同,但系统时钟(SYSCLK)都是72MHz。 3、f107应当使用25MHz晶振。若采用8MHz的晶振,搭配3.0.0版固件库,则将f107当做f103使用,不能驱动通信线产品所有功能(以太网)。 4、以太网的时钟可以参考f107数据手册,附录A2. 5、RTC时钟源来自32.768kHZ晶振。 二、系统时钟SYSCLK 本节关注SYSCLK的来源。 f107
[单片机]
用keil C使<font color='red'>单片机</font>获得随机数
单片机内外部资源操作篇之数码管静态显示
首先,来了解下数码管显示原理: (本图片来源:百度) 数码管是靠点亮内部的发光二极管来显示。一位数码管有10个引脚,显示一个8字需要7个小段,再加上一个小数点,所以内部总共有8个小的发光二极管, 第3个引脚与第8个引脚连接在一起为公共端。如果这个公共端接地,则为共阴极数码管;如果接+5V电压,则为共阳极数码管。如下图所示: 我所用的实验板上的数码管是共阴极数码管。下图为数码管与单片机I/O口连接图: 我们来看原理图: ①.图中U1、U2为两个74HC573锁存器,U1用来向数码管送段选信号,U2用来向数码管送位选信号。U2的输出端Q0~Q5分别接到六个数码管的
[单片机]
<font color='red'>单片机</font>内外部资源操作篇之数码管静态显示
基于单片机和CPLD的高精度数据采集系统设计
1 引言 数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的数字信号,送入计算机,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。数据采集系统性能的好坏,主要取决于它的精度和速度。在保证精度的条件下,应有尽可能高的采样速度,以满足实时采集、实时处理和实时控制对速度的要求。 当前科学技术的发展对数据采集系统的采样速率、分辨率、精度、接口及抗干扰能力等提出越来越高的要求,许多领域越来越多地要求具有高精度A/D转换和实时处理功能。同时,市场对支持更复杂的显示和通信接口的要求也在提高,如环境监测、电表、医疗设备、便携式数据采集以及工业传感
[单片机]
基于<font color='red'>单片机</font>和CPLD的高精度数据采集系统设计
51单片机AD转换的程序
void Read_init (unsigned char CHA){ unsigned char AD_FIN=0; //存储A/D转换标志 CHA = 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位) ADC_CONTR = 0x40; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置) _nop_(); ADC_CONTR |= CHA; //选择A/D当前通道 _nop_(); ADC_CONTR |= 0x80; //启动A/D电源 DELAY_MS(1)
[单片机]
51<font color='red'>单片机</font>AD转换的程序
基于HR6P62单片机控制的汽车HID 灯控制系统
单片机控制技术已经在汽车电子中得到广泛应用,它显著提高了汽车的智能控制水平和安全性能。本文将系统地介绍一款高性价比的海尔HR6P62单片机以及该单片机在HID灯控制器上的应用。 一、汽车前照灯的发展历程 据说第一个汽车前大灯是家用手提灯。汽车刚发明时是没有前照灯的,一个驾驶员在黑暗的旷野上迷路时,一位农民用手提灯把他引回家。1898年,哥伦比亚号电动汽车把电用于前灯和尾灯,这样车灯就产生了。最初的前大灯不能调光,所以在会车时有些晃眼。 第一代汽车前照灯是乙炔气前照灯 乙炔气火焰的亮度比当时的电光源所能达到的亮度高出一倍,因而,在1925年以前使用的汽车前照灯几乎全是乙炔前照灯。 第二代汽车前照灯是电光源前照灯
[单片机]
基于HR6P62<font color='red'>单片机</font>控制的汽车HID 灯控制系统
一种基于MSP43O单片机的日程管理系统
0 引言 日程管理系统是指在指定的时间自动实现提示、放音、录音等功能,例如清晨吹起床号和自动定时上下课响铃等。该系统广泛应用在学校、部队、工厂等部门。早期的司号仪系统存在诸多的缺点。如抗干扰能力差、播放音质不好、录音时间不长。给日常教学、工作到来极大不便。随着生活水平和需求的不断提高,人们对产品的智能化要求越来越高.老式的司号仪智能化不够高必将被淘汰,采用单片机控制的日程管理系统以其系统稳定、智能控制、操作简便、价格便宜等优点得到广泛应用。 1 系统结构及功能 系统的组成和程序流程如图l所示,整个系统共有七个部分组成,分别是:主控部件、电源部件、时钟部件、录放音部件、输入部件、显示部件、和扩展部件。主控部件选用的是MSP
[单片机]
一种基于MSP43O<font color='red'>单片机</font>的日程管理系统
电力载波通信控制终端设计
  电力线载波(PLC)通信是指利用现有电力线,通过载波方式将模拟或数字信号进行传输的技术。然而,以下缺点导致PLC的主要应用——“电力上网”未能大规模应用。 配电变压器对电力载波信号有阻隔作用; 三相电力线间有很大信号损失(10~30dB); 不同信号耦合方式对电力载波信号损失不同; 电力线存在固有的脉冲干扰; 电力线对载波信号造成高削减。   技术问题未来有可能被克服,但是从目前国内宽带网建设的情况来看,留给PLC的时间和空间并不宽裕。家庭智能系统的研究给PLC带来了新的机遇。该系统以PC为核心实现家电的智能控制。因为数据仅在家庭范围传输,束缚PLC应用的五大困扰将不复存在,远程对家电的控制我们也能通过传统网络先
[应用]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved