Answer :
To measure the frequency of an input signal and display it on an 8-bit format using LEDs, the following program can be written using PIC18F45K50:```
#include
#include
#pragma config FOSC=INTOSC,FCMEN=OFF,IESO=OFF
#pragma config PWRT=OFF,BORV=3,BORPWR=HIGH,WDTEN=OFF
#pragma config PBADEN=OFF,MCLRE=ON,LPT1OSC=OFF
#pragma config STVREN=ON,LVP=OFF,XINST=OFF,DEBUG=OFF
void main() {
TRISA=0x00;
ADCON1=0x0f;
TRISCbits.TRISC0=1;
unsigned char leds=0x00;
unsigned char value=0x00;
while(1) {
if (RC0==0) {
value++;
if(value==0xFF) {
value=0x00;
leds=0x00;
}
}
else {
leds=value;
}
PORTA=leds;
}
}```
Explanation: In this program, we have used the following functions: TRISA=0x00: It sets all pins of PORTA as output pins.ADCON1=0x0f: It sets all ADC ports as digital ports.TRISCbits.TRISC0=1: It sets the RC0 pin as the input pin. Unsigned char leds=0x00: It is used to store the value of the LED display. unsigned char value=0x00: It is used to store the value of the frequency.
In the while loop, the program checks whether the RC0 pin is low or high. If it is low, the value of the frequency is incremented by 1. If the value of the frequency is 0xFF, it is reset to 0x00. If the RC0 pin is high, the value of the frequency is displayed on the LED display. The program then sets the PORTA value as the value of the LED display.
To know more about loop refer for :
https://brainly.com/question/26568485
#SPJ11