June 14, 2015
June 14, 2015
June 17, 2015
Electrical and Computer
26.1151.1 - 26.1151.14
Microcontrollers for Non-Electrical Engineering Students - Do We Need to Teach Assembly Language?Microcontrollers and microprocessors are playing an important role in a wide range ofengineering applications. Engineers from many disciplines benefit from learningmicrocontrollers and microprocessors in solving engineering problems. In most colleges orschools of engineering, microcontroller courses are taught by electrical and computerengineering programs and in some cases by mechanical or mechatronics engineering programs.Traditionally, the course focuses on teaching assembly language programming since assemblylanguage is the mnemonic form of machine code. An instructor can systematically discuss theorganization of a microcontroller (or microprocessor), i.e. ALU, CPU, data flow, registers, andmemory, while students take exercises in the assembly language to realize system architecture ofthe microcontroller (or microprocessor). However, assembly language programming is hard tounderstand, and people in industry seldom use it to solve problems in the real world. Instead,they prefer students to know at least a high-level program language, such as embedded C.Especially for non-electrical and computer engineering students, they are mainly required toapply the knowledge they learned from a microcontroller course to solve problems in theirexpertise areas, such as mechanical, mechatronic and manufacturing engineering, rather than adeep understanding of the structure inside a microcontroller or microprocessor. Under thecircumstance, do we need to eliminate teaching assembly language and directly teach a high-level programming language?In this paper, we present an original approach that we have taught the course at our colleges. Weconsider that complete elimination of assembly language may not be feasible for teachingmicrocontroller and microprocessor courses, since students do not have a basic idea on how acomputer work. We have limited the content for the exercises in an assembly language in (1)understanding how the machine code work; (2) comprehending the working principle of a real-time system, i.e. if we count the time delay in instruction cycles, we use the assembly language;(3) the needs for a microcontroller to use hardware architecture, such as stack and interfaceoperations. The course schedule is about 30% of time in assembly language programming and70% of time in embedded C programming. We have taught the course in this way for threeyears. The result is very positive and encouraging. The future improvement can be (1) making alist for the required knowledge for the course so that students can prepare them before they cometo the class; (2) developing different levels of problems so that students can take practices basedon his (or her) level.
He, S., & Zhang, Y., & Shen, F. (2015, June), Microcontrollers for Non-Electrical Engineering Students - Do We Need to Teach Assembly Language? Paper presented at 2015 ASEE Annual Conference & Exposition, Seattle, Washington. 10.18260/p.24488
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: © 2015 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