KD5065 - C Programming and Digital Systems

APPLY NOW BOOK AN OPEN DAY Add to My Courses Register your interest / Course PDF

What will I learn on this module?

This module aims to further develop your capabilities in the areas of digital systems and C programming, building on the hardware and software design and development techniques covered in previous related module(s).

In the area of digital systems, you will learn how to design, specify and apply digital combinatorial and sequential building blocks in isolation, and also as part of a larger system. The module provides an introduction to an industry standard Hardware Description Language (HDL), and shows how it can be used to describe, at the gate and equation level, digital functions such as decoders, multiplexers, encoders, shift registers and counters. You are given the opportunity to explore designs by means of simulation using industry standard design tools. The underlying architecture and technology of programmable logic devices is covered along with their use as a target for digital designs described using a HDL, the latter activity being covered during the workshops. You will also cover other practical aspects of digital hardware design, such as logic hazards, propagation delays and interfacing.

You will use the C programming language to program a microcontroller to perform hardware control as an alternative to using digital hardware. CAD tools will be used to develop and simulate the C programs, as well as the programming of a microcontroller to implement given specifications. In this way you will learn how modern electronic systems can be programmed for both hardware and software based solutions to meet a range of applications.

Specifically, you will cover the following aspects in the C programming part of the module:
Computing in the C language on a microcontroller platform (such as the Arduino©)
Introduction to the microcontroller; program memory, ram memory, special function registers, I/O ports, control and status registers. Using the C language to program a microcontroller, limitations of a C program using a microcontroller.
Typical microcontroller circuits to read digital inputs and output to digital outputs using the C programming language. Use of C language bit masking to control output bits in a microcontroller system. Use of bit masking in C to read digital inputs in a microcontroller system. Controlling peripheral devices in a microcontroller; such as an Analogue to digital converter (ADC), a Hardware Timer, using serial I/O in a microcontroller. Identifying bit range in ADC devices as well as estimating signal to noise limits in particular applications. Developing microcontroller applications for particular specifications such as a Traffic Lights controller, a Home Alarm system, a system to determine object distance using an Ultrasonic transmitter and receiver. All of the above will enhance your skills and future employability.

How will I learn on this module?

The module will be delivered via a combination of lectures, directed and independent learning and practical workshops.
Lectures will be used to deliver the key concepts, knowledge and understanding required to support the development of programmable electronic solutions. Regular workshops in C programming will provide you with the vital hands-on experience required to support programming concepts and develop the skills you will need to successfully complete the assignment. In addition, you will also take part in formative workshops involving the use of programmable logic hardware and development software, exposing you to the process of creating solutions to practical design problems using up-to-date methodologies and tools.
Short formative tests and quizzes (both in-class and online) will be used to provide you with feedback on your progress during the module.

How will I be supported academically on this module?

All taught materials will be provided on the eLearning platform, including workshop exercises, seminar problems and specimen past exam questions. You will be encouraged to ask questions and fully engage during all contact sessions, including workshops.

What will I be expected to read on this module?

All modules at Northumbria include a range of reading materials that students are expected to engage with. The reading list for this module can be found at: http://readinglists.northumbria.ac.uk
(Reading List service online guide for academic staff this containing contact details for the Reading List team – http://library.northumbria.ac.uk/readinglists)

What will I be expected to achieve?

Knowledge & Understanding:
1. Understanding and apply appropriate codes of practice and industry standards relating to programming and hardware description languages, from a historical to current context. (UK-Spec, 3rd Ed. SM2m, EP6m)
2. Knowledge of the use of particular microcontroller and programmable logic development equipment and software tools.( UK-Spec, 3rd Ed. SM1m)
Intellectual / Professional skills & abilities:
3. Design and model a range of digital hardware sub-systems using a Hardware Description Language (HDL). (UK-Spec, 3rd Ed. SM1m, SM2m, EA1m, EA2m, EP2m, EP3m)
4. Design C programs on a microcontroller to a specific requirement, analyzing their fitness for purpose.
(UK-Spec, 3rd Ed. EA2m, EA3m, EA4m, EP3m, EP1, EP4m)
5. To make use of CAD tools and languages to design, simulation and implement. (UK-Spec, 3rd Ed. EA2m, EA3m, EA4m, EP3m, EP1m, EP4m)
Personal Values Attributes (Global / Cultural awareness, Ethics, Curiosity) (PVA):

How will I be assessed?

This module will be assessed by an assignment (50% - LO2, LO3, LO4, LO5) and an end of year examination (50%, LO1, LO2 and LO3). The assignment will be designed to assess the student’s ability to develop microcontroller based solutions to engineering problems using C computer programs. The examination will be designed to test the understanding of the work covered in the Digital Systems part of the module, in terms of knowledge and application to design and analysis.
Formative feedback will be provided in the workshop sessions in an interactive manner by engaging the students in the design and development process. Moreover feedback on the written examination will be provided, post examination, via the eLearning platform.

Pre-requisite(s)

KD4008, KD4009 (level 4 Computer Programming and Digital Electronics and Communications respectively or equivalent knowledge)

Co-requisite(s)

None

Module abstract

In this module you will build on the fundamental digital and C programming knowledge and design concepts you studied at level 4. You will learn about the design of a range of digital system building blocks, such as decoders, multiplexers and synchronous counters. In addition, you will be introduced to the use of a Hardware Description Language (HDL) and associated CAD tools, to enhance your understanding of how digital system design, verification and implementation tasks, are carried out by engineers in industry. The C programming language will be used to program a microcontroller to perform hardware control as an alternative to using digital hardware. CAD tools will be used to develop and simulate the C programs, as well as the programming of a microcontroller to implement given specifications. In this way the student will learn how modern electronic systems can be programmed for both hardware and software based solutions to meet a range of real-world applications.

Course info

UCAS Code H602

Credits 20

Level of Study Undergraduate

Mode of Study 4 years full-time or 5 years with a placement (sandwich)/study abroad

Department Mathematics, Physics and Electrical Engineering

Location Ellison Building, Newcastle City Campus

City Newcastle

Start September 2019 or September 2020

Current, Relevant and Inspiring

We continuously review and improve course content in consultation with our students and employers. To make sure we can inform you of any changes to your course register for updates on the course page.

Your Learning Experience find out about our distinctive approach at 
www.northumbria.ac.uk/exp

Admissions Terms and Conditions - northumbria.ac.uk/terms
Fees and Funding - northumbria.ac.uk/fees
Admissions Policy - northumbria.ac.uk/adpolicy
Admissions Complaints Policy - northumbria.ac.uk/complaints