Asee peer logo

Microcontrollers for Non-Electrical Engineering Students - Do We Need to Teach Assembly Language?

Download Paper |


2015 ASEE Annual Conference & Exposition


Seattle, Washington

Publication Date

June 14, 2015

Start Date

June 14, 2015

End Date

June 17, 2015





Conference Session

Microprocessor, Microcontrollers, and Embedded Systems Education

Tagged Division

Electrical and Computer

Page Count


Page Numbers

26.1151.1 - 26.1151.14



Permanent URL

Download Count


Request a correction

Paper Authors


Shouling He Vaughn College of Aeronautics & Technology

visit author page

Dr. Shouling He is an associate professor of Engineering and Technology at Vaughn College of Aeronautics and Technology, where she is teaching the courses in Mechatronics Engineering and Electrical Engineering Technology. Her research interests include modeling and simulation, microprocessors and PLCs, control system designs and Robotics. She has published more than 45 journal and conference papers in these research areas.

visit author page

author page

Yuhong Zhang Texas Southern University


Fangyang Shen New York City College of Technology (CUNY)

visit author page

Fangyang Shen received his Ph.D. from Auburn University. He had fifteen years’ research and teaching experience in wireless networks, computer education and high performance computing. He had four years' experience as a computer engineer. He is currently a faculty at New York City College of Technology (CUNY) and published over thirty journal and conference papers. He also served as guest editor and associate editor for Journals, such as Parallel Computing and Computer and Electrical Engineering and chair for multiple international conferences. Dr. Shen is an engineering technology and computer education expert with global view.

visit author page

Download Paper |


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