Description: The communication technique with the LCD is similar to the previous lesson. In this experiment, a counter that counts from 0000 to 9999 has been added. The counter increments with a 1-second delay. The communication with the LCD will be performed through 4 bits, with the connections as follows: D4 with RB0, D5 with RB1, D6 with RB2, D7 with RB3; RS with RB4 and EN with RB5. The test configuration includes the MCU: PIC16F628A, Test Board: WB-106 Breadboard with 2420 dots, and SW: MikroC PRO for PIC 2010 (version v4.15). The configuration word specifies that the oscillator is INTOSC with I/O on RA6 and RA7, the watchdog timer is off, the power-up timer is disabled, the master clear enable is enabled, the brown-out detect is enabled, the low voltage program is disabled, the data EEPROM read protect is disabled, and code protect is off.
The LCD module connections are defined as follows: LCD_RS is assigned to PORT RB4, LCD_EN to PORT RB5, LCD_D4 to PORT RB0, LCD_D5 to PORT RB1, LCD_D6 to PORT RB2, and LCD_D7 to PORT RB3. The direction of these connections is also specified. The program initializes the LCD and displays a message indicating "Counter Mode." The main function includes a loop that calls the display initialization function, introduces a 1-second delay, and increments the counter. If the counter exceeds 9999, it resets to 0.
The circuit employs a PIC16F628A microcontroller, which is configured to operate in digital I/O mode by disabling the analog comparator. The LCD is initialized, and the display is cleared before starting the counting process. The display shows the current count value, formatted as a four-digit number.
The connections to the LCD are done in a 4-bit mode, which reduces the number of required data lines, making it suitable for applications with limited I/O pins. The use of a 1-second delay between increments allows for easy observation of the counting process on the LCD display. The software effectively manages the display output by converting the integer count into its ASCII representation for display.
In summary, this circuit demonstrates a simple yet effective application of an LCD in conjunction with a microcontroller to create a counting display. The design emphasizes efficient use of resources and clear output for user interaction.The communication technique with the LCD is the same like the last lesson, and for the current experiment we have added a counter which counts between 0000 and 9999. Our counter increments with 1 second delay. /* ` <7465> * ` Lesson nr. 16: ` Alphanumeric LCD as counter mode. ` Done by: ` Aureliu Raducu Macovei, 2010. ` ` In this exper iment we will work with alphanumeric LCD. Communication ` with LCD will be performed through 4-bits and connections is made as ` follows: D4 with RB0, D5 with RB1, D6 with RB2, D7 with RB3; ` RS with RB4 and EN with RB5. ` To make this project more interesting, a counter is added ` (counts from 0000 to 9999) with a delay of 1 secunde.
` Test configuration: ` MCU: PIC16F628A ` Test. Board: WB-106 Breadboard 2420 dots ` SW: MikroC PRO for PIC 2010 (version v4. 15) ` Configuration Word ` Oscillator: INTOSC:I/O on RA. 6, I/O on RA. 7 ` Watchdog Timer: OFF ` Power up Timer: Disabled ` Master Clear Enable: Enabled ` Browun Out Detect: Enabled ` Low Voltage Program: Disabled ` Data EE Read Protect: Disabled ` Code Protect: OFF ` <7465> * */ // LCD module connections sbit LCD_RS at RB4_bit; // LCD_RS assigned to PORT RB4; sbit LCD_EN at RB5_bit; // LCD_EN assigned to PORT RB5; sbit LCD_D4 at RB0_bit; // LCD_D4 assigned to PORT RB0; sbit LCD_D5 at RB1_bit; // LCD_D5 assigned to PORT RB1; sbit LCD_D6 at RB2_bit; // LCD_D6 assigned to PORT RB2; sbit LCD_D7 at RB3_bit; // LCD_D7 assigned to PORT RB3; sbit LCD_RS_Direction at TRISB4_bit; // LCD_RS assigned to TRIS B4; sbit LCD_EN_Direction at TRISB5_bit; // LCD_EN assigned to TRIS B5; sbit LCD_D4_Direction at TRISB0_bit; // LCD_D4 assigned to TRIS B0; sbit LCD_D5_Direction at TRISB1_bit; // LCD_D5 assigned to TRIS B1; sbit LCD_D6_Direction at TRISB2_bit; // LCD_D6 assigned to TRIS B2; sbit LCD_D7_Direction at TRISB3_bit; // LCD_D7 assigned to TRIS B3; // End LCD module connections char Message1[]="Counter Mode"; // Message for line1; unsigned int number = 0; char *digit = "0000"; void Display_init() // define display_init; { digit[0] = number/1000 + 48; // thousands digit; digit[1] = (number/100)%10 +48; // hundreds digit; digit[2] = (number/10)%10 + 48; // tens digit; digit[3] = number%10 +48; // unit digit; Lcd_Out(2, 7, digit); // display on LCD from column 2, character 7; } void main() // main; { CMCON |= 7; // turn off analogue comparator and make PORTA to digital I/O; Lcd_init(); // LCD Initialization; Lcd_cmd(_LCD_CLEAR); // Clear LCD; Lcd_cmd(_LCD_CURSOR_OFF); // Cursor mode, off; Lcd_out(1, 3, Message1); // display message1 from column 1, character 3; do{ display_init(); // call display_init(); delay_ms(1000); // delay 1s; number +; // Increment number; if (number > 9999u) // if it`s more than 9999 go to 0; number = 0; } while(1); // infinite loop; } // end.
The timer circuit provides independent control over the output's on and off intervals, which can vary from 0.055 seconds to 30 minutes, and remains relatively unaffected by power-line transients. IC1 is a CMOS programmable timer chip that consists of 24...
A small circuit designed for various time measurement applications. It features an audible sound signal from the buzzer BZ1 and has the capability to drive an external circuit through the optocoupler IC2, once the appropriate circuit is connected to contacts...
Figure 8 illustrates a potential digital counter circuit. This circuit employs two ICM7217 integrated circuits, with each controlling four digital display tubes.
The digital counter circuit primarily utilizes the ICM7217, a highly integrated chip designed for driving seven-segment displays. Each ICM7217...
This project was designed to introduce a friend to microcontrollers and circuits using various functionalities and spare parts. A PS2 numpad was utilized as the key entry mechanism, which was found at a thrift store and included the necessary connector....
The game-scoring display screen circuit diagram is depicted in the image above. The circuit consists of an add/subtract scoring input circuit, an add/subtract scoring circuit, a counting-decoding display circuit, and a reset circuit.
The game-scoring display circuit is designed to facilitate...
The purpose of this circuit is to power a lamp or other appliance for a specified duration (30 minutes in this case) and then automatically turn it off. This functionality is particularly useful for reading in bed at night, as...
This project involves an automatic room light controller with a bidirectional visitor counter using a microcontroller. It is designed to manage room lighting and accurately count the number of individuals present. When a person enters the room, the counter increments...
The EN line is referred to as 'Enable'. This control line is utilized to indicate to the LCD that data is being sent. To transmit data to the LCD, the program must ensure that this line is low (0), then...
Application note on designing linear and switch-mode (switching DC-DC converter current source) battery charger applications that require external microcontrollers and related system-level issues for notebook computers.
The application note provides guidance on the design of both linear and switching DC-DC converter...
We use cookies to enhance your experience, analyze traffic, and (if you allow) serve personalized ads.
By clicking Accept All, you agree to our use of cookies.
Learn more