June 16, 2002
June 16, 2002
June 19, 2002
7.887.1 - 7.887.11
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.
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
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