100KHz Square Wave generator using PIC16C84

Following on from the LED flasher circuit, we can reduce the delay in the loop to 10uS (10 microseconds) and produce a 100Khz square wave.

100KHz Square Wave

Given a 4 Mhz PIC 16C84, the program below will generate a 100Khz square wave on PORTA bit 0 (i.e. pin 17). This little program is useful for testing oscilloscopes (though it is not very accurate).

This program is available as:

; Mark Crosbie  9/12/98
; Scope test program. Generate a 100Khz square wave.
;  The Program simply sets up Bit 0 of Port "A" to Output and then
;  loops, setting the value alternatively low and high
;  Hardware Notes:
;   Reset is tied through a 4.7K Resistor to Vcc and PWRT is Enabled
;   A 220 Ohm Resistor and LED is attached to PORTA.0 and Vcc
;	device	pic16c84

	include "p16c84.h"

;  Mainline of FlashFast

  org 0

  clrf   PORTA                  ;  Clear all the Bits in Port "a"
  clrf   STATUS
  bsf    STATUS, RP0            ;  Goto Bank 1 to set Port Direction
  bcf    TRISA, 0               ;  Set RA0 to Output
  bcf    STATUS, RP0            ;  Go back to Bank 0

  movlw 1                       ;  Turn on the LED on Port A
  movwf PORTA                   ;

  movlw 5
  call mdelay			; 5 uS delay

  movlw 0                       ;  Turn off the LED on Port A
  movwf PORTA                   ;

  movlw 5
  call mdelay			; 5uS delay 

  goto Loop

; counter variables

For more detail: 100KHz Square Wave generator using PIC16C84

Current Project / Post can also be found using:

  • square wave generation using pic 16f877
  • square wave generator using pic microcontroller
  • assembly codes for PIC16F877 to generate ta square wave
  • write an alp to generate square wave in PIC

Leave a Comment

= 4 + 8

Read previous post:
Electronic door codelock with PIC

description This is my electronic codelock to use with an outdoor gate. The lock itself is implemented in software. It...

Scroll to top