Asee peer logo

Non Portable C Language For Microcontroller Applications

Download Paper |


2002 Annual Conference


Montreal, Canada

Publication Date

June 16, 2002

Start Date

June 16, 2002

End Date

June 19, 2002



Conference Session

Curriculum Development in Computer ET

Page Count


Page Numbers

7.887.1 - 7.887.11



Permanent URL

Download Count


Request a correction

Paper Authors

author page

Stephanie Goldberg

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Main Menu Session 3547

Non-Portable C-Language for Microcontroller Applications

Stephanie Goldberg Department of Technology Buffalo State College


A previous goal of the microprocessor/microcontroller class in the Buffalo State College Engineering Technology Program was to develop proficiency with an assembly language in order that students could write assembly language code for various microprocessors and microcontrollers. The goal has been modified such that students become familiar with assembly language programming as well as understanding the role of a high-level language such as C in microcontroller applications.

Concepts of portability, variable storage space, and hardware registers are presented to help students understand the strengths and weaknesses of programming a microcontroller with high- level language such as C. A high-level language brings features like loops, arrays, and decision- making capability to the very rudimentary assembly language. Standard C languages such as ANSI C are portable, meaning they are independent of the microcontroller that will ultimately be used to execute the code. However, to best utilize the microcontroller for digital I/O and timing delays as well as many other tasks, read and write access to the specific hardware registers of that microcontroller are needed and therefore portability must be sacrificed. In this case, a "special compiler" is required that recognizes the specific hardware of the microcontroller. An example of such a compiler is the Rigel Corporation 8051 C compiler, which provides two methods for communicating with specific hardware in the 8051

Note: Microcontroller will refer to both microcontrollers and microprocessors in this paper.

1. Introduction

The direction of the Microcontroller course in the Bachelor of Electrical Engineering Technology program at Buffalo State College has been transitioning from an intensive assembly language focus to one that incorporates the important role of high-level languages in the microcontroller environment. In past semesters, we prepared students for proficiency in any assembly language. Students were provided with a detailed account of assembly language, focusing on the complete instruction set of a particular microcontroller. Students developed code for "simple" hardware-oriented tasks such as output of digital data from a register as well as more intensive type of programming (tasks that could be done more efficiently with a high-level language), like looping, counting, and decision-based jumps.

Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition Copyright ã 2002, American Society for Engineering Education

Main Menu

Goldberg, S. (2002, June), Non Portable C Language For Microcontroller Applications Paper presented at 2002 Annual Conference, Montreal, Canada. 10.18260/1-2--10454

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2002 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015