For Non-Commercial Use Only
I would appreciate to be credited within your project, if you use any of the source code below. If you have an interesting project going on, I'll be glad about feedback.
The software below comes with no guarantee or warranty
except for my good intentions. Further the use of this code
implies that the user has a fundamental understanding of
electronics and its risks. I'm not responsible for any harm or
damage, caused by inproper use of any of the code below.
Any commercial use of parts or all of this code requires the
permission of the
author.
"Design and test of electronic circuits are 1% inspiration and 99% perspiration."
(Freely derived from Thomas Alva Edison's famous phrase:
"Genius is 1% inspiration and 99% perspiration.")
PIC Projects
Precision Digital Altimeter
AT Keyboard Interface
V1.xx
AT Keyboard Interface
V2.xx
AT Keyboard Interface
V3.xx
AT Keyboard Box V2.xx
AT Keyboard Interface with
Morse Code Support V1.xx
AT Keyboard Interface with
Morse Code Support V2.xx
PIC Test Routines
RS232 Test
Programs
Simple
RS232 Interface
RS232
Communication Test Routine with LCD (1)
RS232
Communication Test Routine with LCD (2)
Dual RS232
Communication Routine with LCD
RS232 Scope
V1.02 Test Interface
LCD Test
Programs
LCDx Test
Routine
Binary to
Decimal Test Routine
Debugging Routine / Bitstream
Visualization
AT Keyboard Test
Programs
AT Keyboard
Scan Code Debug Routine
Numeric
Foil-Keypad Calibration Routine
ADC Test
Programs
NSC
ADC12130 Test Interface
DCF77 Test
Programs
DCF77 Test
Interface

| Precision Digital Altimeter [Toc] [Top] |
| MPXS4100 absolute
pressure sensor, PIC16F84 and wireless transmitter &
receiver Altimeter for my radio controlled modelplanes, but can also be used for hiking, climbing, mountaineering and other outdoor activities. Has an excellent resolution of 1 meter and a range of 4100 meters. I still work on it. |
![]() |
![]() |
| AT Keyboard Interface V1.04 [Toc] [Top] |
| AT keyboard
interface with RS232 link using PIC16F84 AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and sends them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. There is no visual interface at the terminal like a LCD display. Unidirectional data flow: keyboard to RS232 target device. |
| AT Keyboard Interface V2.04 [Toc] [Top] |
| RS232 terminal with
LCD display using PIC16F84 AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This implementation features a LCD display as visual interface, but only for transmitted characters typed on the local keyboard (unidirectional data flow). RS232 data transmission is carried out using a software routine. No reception of characters sent from RS232 target device, because no RS232 modules with preemptive data reception available yet. |
| AT Keyboard Interface V3.05 [Toc] [Top] |
| Fully operating
RS232 terminal with LCD display using PIC
16C74A AT keyboard to RS232 interface for the personal computer or RS232 compatible devices. This routine converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This microcontroller application features a dot matrix LCD display, and makes best use of the microcontroller-internal USART, i.e. completely hardware-based RS232 data transmission and reception. Reception of external serial data is done using an interrupt-based acquisition scheme. Visualization of received data on the first line, user-entered data on the second line of the dot matrix LCD display. This application is best used with a 2 line by 20 or 40 characters LCD display. |
| AT Keyboard Box V2.05 [Toc] [Top] |
| Fully operating
RS232 terminal with LCD display and numeric foil-keypad using
PIC16F77 AT keyboard to RS232 interface with completely bi-directional communication capabilities. Multiple input devices are attached, such as an AT keyboard and a small numeric foil-keypad. The application features a dot matrix LCD display to visualize the data received from the RS232 client on the first line, and the characters typed on the locally attached keyboard on the second line. There is also a piezo-beeper for acoustic feedback. This program converts AT keyboard scan patterns to ASCII characters and transmits them afterwards to the target device by using the RS232 transmission protocol. RS232 communication is carried out by the microcontroller-internal USART, i.e. completely hardware-based RS232 data transmission and reception. Dynamic configuration of RS232 baud rate setting at start-up (user-customization with 1200 baud - 115200 baud), with 12 seconds inactivity time-out. In case the time-out applies, the user-customization process terminates with the current setting. Default setting after power-up is 9600 baud. Support of english (QWERTY) and modified swiss-german (QWERTZ) 'codepages'. This application is best used with a 2 line by 20 or 40 characters LCD display. |
| AT Keyboard Interface with Morse Code Support V1.02 [Toc] [Top] |
| AT keyboard
interface with RS232 link and Morse code PWM output using
PIC16F84 Technical data as AT Keyboard Interface V1.03 above. Additional pulse-width modulated (PWM) Morse code output. Further parameterizable acoustic Morse code feedback through Piezo beeper. |
| AT Keyboard Interface with Morse Code Support V2.02 [Toc] [Top] |
| AT keyboard
interface with LCD display, RS232 link and Morse code PWM
output using PIC16F84 Technical data basically as AT Keyboard Interface V2.03 above (except direct Ctrl-Hex and Alt-Dec entry). Additional pulse-width modulated (PWM) Morse code output. Further parameterizable acoustic Morse code feedback through Piezo beeper. |
| Simple RS232 Interface [Toc] [Top] |
| Shows briefly the use of the various RS232 modules (m_rs048, m_rs096,
m_rs192). It is more or less the same as the RS232
Communication Test Routine (1), without LCD display. The
controller sends approximately every 10 seconds a stand-by
statement to the terminal screen and echoes to every
character the device gets. RS232 reception is based on PortB0
interrupt. |
| RS232 Communication Test Routine with LCD (1) [Toc] [Top] |
| Fully software
controlled reception & transmission on interrupt featured
PICs Complete RS232 communication routine for PIC16F84, which allows to display sent characters from the PC on a dot matrix LCD Display and send an acknowledge back to the PC. RS232 reception is based on PortB0 interrupt. Shows the implementation and function of the modules m_rs232.asm, m_wait.asm, m_lcd.asm and m_lcdv08.asm on the PIC16F84. |
| RS232 Communication Test Routine with LCD (2) [Toc] [Top] |
| Fully hardware
controlled reception & transmission on PIC16F77
(PIC16C74A) Complete RS232 communication routine using hardware USART of PIC16F7x, which allows to display sent characters from the PC on a dot matrix LCD Display and sends an acknowledge back to the PC. Shows the implementation and function of the modules m_wait.asm, m_lcd.asm and m_lcdv08.asm on the PIC16F77 (PIC16C74A). |
| Dual RS232 Communication Routine with LCD [Toc] [Top] |
| Dual RS232 reception
& transmission on PIC16F77 Microcontroller terminal featuring two independent RS232 interfaces: One RS232 link uses the hardware USART and interrupts, the other one is software-based using only interrupts on PortB0. Display of received ASCII characters and corresponding decimal values on LCD. ASCII values entered on one terminal window are transmitted by RS232 to the controller, displayed on the LCD, and further transmitted to the other terminal window. Shows the simultaneous use of both hardware- and software-based RS232 communication on the PIC16F77. |
| RS232 Scope V1.02 Test Interface [Toc] [Top] |
| This is the test routine for the
serial 16 bit data
capture from an Excel 97 worksheet. It shows the implementation of a 16 bit table read in both directions (top-down and bottom-up) to save space. The Excel worksheet visualizes the received data using graphs. This test program implements one building block of the digital altimeter. |

| LCDx Test Routine [Toc] [Top] |
| Demonstrates the implementation of
self-defined characters on a dot matrix LCD display with the
module m_lcdx.asm. |
| Binary to Decimal Test Routine [Toc] [Top] |
| A counter from 0 to
65'535 on a dot matrix LCD display demonstrates
the function of the m_lcdv16.asm module on the PIC16C84. |
| Debugging Routine / Bitstream Visualization [Toc] [Top] |
| Demonstrates the 16 bit binary debugging
routine with the module m_lcdb16.asm. Requires a dot matrix
LCD display. I've written it to debug the SSP (Synchronous Serial Port) interface to the NSC ADC12130 for my altimeter. |
| AT Keyboard Scan Code Debug Routine [Toc] [Top] |
| RS232 based scan
pattern debug routine for PIC16F84 AT keyboard test routine to visualize and verify scan patterns sent by the keyboard. The scan patterns are fetched by the controller and afterwards sent to the RS232 target device, in this case the PC and an Excel 97 worksheet programmed with Visual Basic to visualize the scan patterns. |
| Numeric Foil-Keypad Calibration Routine [Toc] [Top] |
| RS232 based debug
and calibration routine for PIC16F77 AT keyboard test routine to visualize and verify the analog values acquired by the PIC microcontroller to convert the numeric foil-keypad entries to decimal values. The setup is basically the same as the AT Keyboard Box V2.05 above. |
| NSC ADC12130 Test Interface [Toc] [Top] |
| Serial interface to
12 bit A/D Converter Shows the implementation of the synchronous serial connection to the A/D Converter. Auto-Calibration, Auto-Zero and Status Read are made as initial procedures, afterwards the unsigned 12 bit data will be fetched and displayed on the LCD display in binary format. |
| DCF77 Test Interface [Toc] [Top] |
| Software-based PWM
decoding on PIC16F84 of DCF77 time
information. Incorporates standard DCF77 RF to PWM decoder unit based on Temic 4224. Visualization and translation of DCF77 data is done using an Excel 97 work sheet with the ability to acquire and log RS232 data. |
Last updated: 17.04.2006