In the BIN4C source code, the header file with the standard register labels for the 16F877 is included in the same way as in the assembler version. The output port is declared as an 8-bit variable (PortB), and its address assigned (6).
The main program block starts with the statement ‘void main()’ and is en- closed in braces (curly brackets). The output port is then initialised using a li- brary function provided with the compiler ‘set_tris_b(0)’, where 0 is the data direction code in decimal form. An initial value of 0 is output to switch off the LEDs.
The control loop starts with the loop condition statement ‘while(1)’, which means repeat the statements between the braces endlessly. The buttons are tested using ‘if (condition)’ statements, and the actions following carried out if the condition is true. The condition is that the input is low ( ! = not ), and pin labels as defined in the header file are used.
BIN4C Assembler Code
The C source code is compiled into assembler code, and then into machine code. The list file in Figure 2.6 shows the assembler version of BI4C.
It can be seen that some statements are converted into a single instruction, for example,