Design of Oscilloscope Monitoring Program Based on C8051F020

Publisher:化羽2015Latest update time:2011-09-20 Keywords:C8051F020 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

The design uses the high-performance single-chip microcomputer C8051F020 as the control chip to monitor the status of 40 buttons, 3 coding switches and 4 potentiometers on the oscilloscope panel. The working principles of the keyboard, coding switch and potentiometer, as well as the hardware circuit and software programming implementation of the connection with the single-chip microcomputer are introduced respectively. The key part adopts the keyboard program design method of one key with multiple meanings, and a key code matching subroutine flow chart is given.

The monitoring program is responsible for the allocation and scheduling of all hardware and software resources in the system. It provides a user interface and enables users to obtain a friendly working environment. It is an important part of the system design.

1 Overview of C8051F020 single-chip microcomputer

With the rapid development of electronic technology, more and more people are joining the army of electronic development. In the process of learning electronic technology and R&D projects, it is inevitable to use some instruments, such as multimeters, oscilloscopes, etc. However, for some non-professional enthusiasts, owning a digital oscilloscope is a "luxury". This design of C8051F020 single-chip microcomputer, because of its low cost, simple production, high measurement accuracy and other advantages, just meet the needs of this part of people.

The C8051F020 microcontroller is a highly integrated system-on-chip. It integrates two multi-channel ADC subsystems (each subsystem includes a programmable gain amplifier and an analog multiplexer), two voltage output DACs, two voltage comparators, voltage references, SMBus/I2C bus interfaces, UART, SPI bus interfaces, five general-purpose 16-bit timers, a programmable counter/timer array (PCA) with five capture/compare modules, an internal oscillator, eight 8-bit general-purpose digital I/0 ports and 64 KB FLASH program memory, as well as an 8051-compatible high-speed microcontroller core. The

C8051F020 microcontroller is a microcontroller in which all analog and digital peripherals can be enabled/disabled and configured by user firmware. The Flash memory also has the ability to be reprogrammed in the system, which can be used for non-volatile data storage and allows the 8051 firmware to be updated on site. The on-chip JTAG debugging circuit allows non-intrusive (without occupying on-chip resources), full-speed, in-system debugging using the product MCU installed in the final application system. The debugging system supports observing and modifying memory and registers, and supports breakpoints, watchpoints, single-step, and run and stop commands. When using JTAG debugging, all analog and digital peripherals can operate with full functionality.

A mixed-signal system-level microcontroller from Cygnal. The chip contains the CPU core of CIP-51, and its instruction system is fully compatible with MCS-51. The C8051F020 microcontroller contains 64kB on-chip Flash program memory, 4352B of RAM, 8 I/O ports with a total of 64 I/O lines, a 12-bit A/D converter and an 8-bit A/D converter, as well as a dual 12-bit D/A converter, 2 comparators, 5 16-bit general-purpose timers, a programmable counter/timer array of 5 capture/compare modules, a watchdog timer, a VDD monitor, and a temperature sensor. The C8051F020 microcontroller supports dual clocks, and its operating voltage range is 2.7 to 3.6V (the withstand voltage of the port I/O, RST and JTAG pins is 5V). Compared with the previous 51 series microcontrollers, the C8051F020 has added many functions, and its reliability and speed have also been greatly improved.

2 Working principle of one-key polyphonic keyboard

A complete intelligent instrument often has many functions, and there are many set ranges and parameters. If one key is used for one function, it is bound to have a large keyboard, and the panel will be enlarged accordingly, which is not beautiful and the cost will increase. Therefore, in this type of instrument, the keyboard is designed to have one key polyphonic, and one key has multiple functions.

In the case of one-key polyphony, a command is not composed of a single key press, but a key sequence. In other words, the interpretation of the meaning of a key depends not only on the current key press, but also on what keys were pressed before. Therefore, for the one-key polyphonic monitoring program, it is necessary to first determine whether a key sequence (not a single key press) has constituted a legal command. If it has constituted a legal command, the command is executed, otherwise wait for a new key input. The one-key polysemy keyboard management program mainly solves the two problems of keyboard key sequence recognition and how to find the corresponding operation program according to the keyboard key sequence.

The above problems can be solved by the "one map and three tables" method. That is, a key map is established, relying on the analysis program state table, the analysis program entry table and the action routine subroutine table to complete. The analysis program state table is divided into 4 columns, namely the current state PSTi, key code, next state, and action routine subroutine number.

3 Working principle of encoding switch

The encoding switch has 3 pins and 5 pins, 2 of which are press functions, and the other 3 pins control the left and right functions of the encoding switch. Connected to pins 1 and 2 are two metal static pieces of different lengths, and connected to pin 3 is a metal moving piece with 12 or 24 teeth in one circle. When the pulse potentiometer rotates, 4 states can appear: pin 3 is connected to pin 1, pin 3 is connected to pin 2 and pin 1, pin 3 is connected to pin 2, and pin 3 is disconnected from pin 2 and pin 1.

In actual use, pin 3 is generally grounded as a data input terminal. Pins 1 and 2 are connected to the I/O port of the microcontroller as data output terminals. Three encoding switches are used in this design, one of which connects pin 1 to P4.0 of the microcontroller and pin 2 to P4.1 of the microcontroller. When the pulse potentiometer rotates left or right, P4.0 and P4.1 will periodically generate the waveform shown in Figure 1. If a 12-point pulse potentiometer rotates one circle, it will generate 12 sets of such waveforms, and a 24-point pulse potentiometer will generate 24 sets of such waveforms. A set of waveforms (or one cycle) contains 4 working states. Therefore, as long as the waveforms of P4.O and P4.1 are detected, it is possible to identify whether the pulse potentiometer is rotating, and whether it is rotating left or right.


4 C8051F020 MCU ADC0

The ADC0 subsystem of C8051F020 includes: a 9-channel configurable analog multiplexer (AMUX0), a programmable gain amplifier (PGA0) and a 100 ksps 12-bit resolution successive approximation register ADC. The ADC integrates a track-and-hold circuit and a programmable window detector. AMUX0, PGA0, data conversion mode and window detector can be configured by software through special function registers. The ADC subsystem is only allowed to work when the ADOEN bit in the ADC0 control register (ADCOCN) is set to 1. When the ADOEN bit is 0, the ADC subsystem is in low-power shutdown mode. Each pair of

ADC0 ports can be programmed to be single-ended input or differential input. The port pairing for differential input is (0, 1), (2, 3), (4, 5), (6, 7), which is determined by the lower 4 bits of the channel selection register AMUXOSL and the lower 4 bits of the channel configuration register AMUXOCF. In AMXOCF, bits 3 to 0 correspond to two pin channels each. Bit value = 0 indicates an independent single-ended input (the reset value is single-ended input); bit value = 1 indicates a differential input pair. The

ADC rate in the C8051F series microcontrollers is programmable, but at least 16 system clocks are required. Generally, a tracking/holding capture time of 3 system clocks (>1.5μs) is automatically added before conversion. The method to set the ADC rate in F020 is to configure bits 7 to 3 of the ADCOCF register, and its reset value is 11111 (bits 7 to 3 = SYSCLK/CLK (SAR) - 1).

Generally, the ADC must be in tracking mode before starting. If bit 6 of the control register ADCOCN is "0", it is always in tracking mode (at this time, starting the four start modes can be 3 system clocks faster than the tracking start); if it is "1", there are 4 tracking start modes to choose from, that is, assign values ​​to bits 3 to 2 in ADCOCN: 00 is tracking when writing 1 to ADBUSY (software command), 01 is timer 3 overflow tracking, 10 is CNVSTR rising edge tracking (external signal), and 11 is timer 2 overflow tracking.

5 System hardware circuit design

The keyboard part uses a 6×6 matrix keyboard, P7.O~P7.5 are row lines, and P3.0~P3.5 are column lines. The intersection of P3.0 and P7.O is a key, and the P7 port is connected to a 10 kΩ pull-up resistor to 3.3 V. The 1 and 2 pins of the three encoding switches are directly connected to the I/0 pins of the microcontroller. Here, P4.O~P4.5 are selected, and the 3 pins are grounded, and the 4 and 5 pins are used as keys. Take the coding switch connected to P4.O and P4.1 as an example, the circuit diagram is shown in Figure 2. The analog-to-digital conversion part uses an internal voltage reference, so just connect the VREF pin to the VREF0 pin. A potentiometer is used to adjust the analog input, single-ended input, the potentiometer resistance is 10 kΩ, the reference voltage is typically 2.43 V, and the power supply voltage is 3.3 V. In order to maximize the reference voltage, a resistor with a resistance of about 3.58 kΩ is required to be connected in series with the potentiometer to the analog port. The hardware circuit is shown in Figure 3. The 4th and 5th pins of the potentiometer are also used as buttons.



[page]

6 System Software Design

6.1 One-key polysemy keyboard programming

In keyboard analysis, a working status register is used to save the current state of the keyboard. When the keyboard scans a key, the address of the analysis program state table is found from the analysis program entry table according to the value of the current state, and the analysis program state table is entered from the address to find the matching value, and the next state is sent to the current state unit, and the action number is taken out. The action subroutine entry address is calculated according to the action number, and then the corresponding subroutine is executed. Figure 4 is a flowchart of the key code matching subroutine.

6. 2 Coding switch programming

As can be seen from Figure 1, pins 1 and 2 are both high at the same time. If pin 2 reaches a high level before pin 1, it means left rotation, and if pin 1 reaches a high level before pin 2, it means right rotation. When programming, you can judge the status of pins 1 and 2 based on this feature. Take pin 1 connected to P4.0 and pin 2 connected to P4.1 as an example:



6.3 Analog-to-digital conversion software design

The A/D conversion is started by setting the A/D conversion start mode selection bits of ADCOCN bits 3-2 (ADOCM1-O) of the ADCO control register: when bits 3-2 are 00, write 1 to ADOBUSY (ADCOCN bit 4) to start the A/D conversion; when bits 3-2 are 01, timer 3 overflows to start the A/D conversion; when bits 3-2 are 10, the rising edge of CNVSTR starts the A/D conversion; when bits 3-2 are 11, timer 2 overflows to start the A/D conversion. This design uses the first start mode.

Since the workload of the microcontroller is not large, the query method is used in software design. The microcontroller constantly queries the status of the keyboard, encoding switch and potentiometer. If there is a change, the microcontroller transmits the action information to the ARM main MCU and waits for the main MCU to process. Since the speed of the microcontroller analog-to-digital conversion is very fast, a delay is added in the program to observe the change in the analog-to-digital conversion. In addition, filtering was not considered in the hardware design, so filtering was implemented by software. The common filtering methods include limited amplitude filtering, mid-position filtering, arithmetic mean filtering, etc. Now a new filtering method is proposed. Since a 12-bit A/D is used, but only 8 bits are needed to achieve the required accuracy, the method of removing the lower 4 bits can be used to achieve the purpose of filtering. Due to limited space, only part of the program is given below, taking AIN0 as an example:



Conclusion

The one-button multi-meaning key management program introduced in this article can be used for multi-button smart meters. The programming method of the coding switch is simple and easy to understand. In the A/D conversion part, the proposed software filtering method of removing the lower 4 bits is reliable and feasible, and is very suitable for occasions where the accuracy requirement is not high. These three parts constitute a complete monitoring program. When the microcontroller monitors a change in a certain part, it transmits its action information to the ARM main CPU, and the main CPU performs corresponding processing.

Keywords:C8051F020 Reference address:Design of Oscilloscope Monitoring Program Based on C8051F020

Previous article:Application of AT89C51 in greenhouse intelligent measurement and control system
Next article:Design of Oscilloscope Monitoring Program Based on C8051F020

Recommended ReadingLatest update time:2024-11-16 22:27

Design of prosthetic control system based on C8051F020
A prosthesis is a substitute for a missing limb in the human body, which is used to make up for the shape and function of the missing limb. In this paper, a control system for a humanoid arm-shaped prosthesis is designed for the situation of losing the entire arm. The user can compensate for the partial loss of func
[Industrial Control]
Design of prosthetic control system based on C8051F020
Design of RS485 Serial Communication Based on C8051F020 Single Chip Microcomputer
  1 Introduction   With the continuous development of computer technology and measurement and control technology, in the data acquisition system with single-chip microcomputer as the core, it is necessary to realize data exchange between single-chip microcomputer and computer, so as to give full play to the respective
[Power Management]
Design of RS485 Serial Communication Based on C8051F020 Single Chip Microcomputer
Application of C8051F020 in the Design of SD Card Main Controller
1 Introduction Aircraft flight status monitoring and data acquisition instrument. It is used to collect various flight data during aircraft test flights and requires a large amount of storage capacity. It has the characteristics of powerful functions, high cost performance, and easy installation and use. The ac
[Microcontroller]
Application of C8051F020 in the Design of SD Card Main Controller
Design of RS485 serial communication circuit using C8051F020
  With the continuous development of computer technology and measurement and control technology, in the data acquisition system with single-chip microcomputer as the core, it is necessary to realize data exchange between single-chip microcomputer and computer, so as to give full play to the advantages of single-chip mi
[Microcontroller]
Design of RS485 serial communication circuit using C8051F020
Design of RS485 Serial Communication Based on C8051F020 Single Chip Microcomputer
  1 Introduction   With the continuous development of computer technology and measurement and control technology, in the data acquisition system with single-chip microcomputer as the core, it is necessary to realize data exchange between single-chip microcomputer and computer, so as to give full play to the respective
[Power Management]
Design of RS485 Serial Communication Based on C8051F020 Single Chip Microcomputer
Design of Hydraulic Integrated Acquisition System Based on C8051F020
Abstract: In order to conduct online detection of parameters such as speed, pressure, flow, etc. in hydraulic equipment, we designed a comprehensive acquisition system for hydraulic engineering. This system uses the new single-chip microcomputer C8051F020 for multi-channel data acquisition and A/D convers
[Microcontroller]
Design of Hydraulic Integrated Acquisition System Based on C8051F020
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号