您的位置 首页 电源

C8051F020单片机对监控示波器面板的一键多义按键办理规划

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为操控芯片,监控示波器面板上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的波形,就能辨认脉冲电位器是否旋转,是左旋仍是右旋。

C8051F020单片机对监控示波器面板的一键多义按键办理规划

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脚也用作按键运用。

C8051F020单片机对监控示波器面板的一键多义按键办理规划

C8051F020单片机对监控示波器面板的一键多义按键办理规划

6体系软件规划

6.1一键多义键盘程序规划

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

6.2编码开关程序规划

由图1能够看出,引脚1和引脚2有一起为高电平的状况,之后假如引脚2比引脚1先抵达高电平则表明左旋,假如引脚1比引脚2先抵达高电平则表明右旋。编程的时分根据这个特点来判别引脚1、引脚2的状况即可。以1引脚接P4.0,2引脚接P4.1为例:

C8051F020单片机对监控示波器面板的一键多义按键办理规划

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位就能够抵达所要的精度,所以能够选用去掉低4位的办法来完结滤波的意图。因为篇幅有限,下面只给出程序的一部分,以AIN0为例:

C8051F020单片机对监控示波器面板的一键多义按键办理规划

结语

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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/344959.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部