COMP9032 Lab 2
	Oct. 2025
	
		1. Objectives
	
	
		In this lab, you will learn AVR programming on
	
	
		•     function
	
	
		•     parallel I/O
	
	
		2. Preparation
	
	
		For Task 3 of this lab, you will use the lab board. It is required that this week (Week 3) you:
	
	
		•     read Introduction to AVR Microprocessor Development Board on how to use the board, and
	
	
		•    download and install the following Arduino software that is available on the course website.
	
	
		o  arduino-1.0.6-windows.exe
	
	
		3. Tasks
	
	
		There are three tasks in this lab. Task 1 and Task3 are group-based tasks. Task 2 is an individual task.
	
	
		Task 1: (15 marks, due in your lab session in Week 4)
	
	
		Work together as a group to test the lab boards distributed to your group. It is required that
	
	
		•     Before the test, every group member read all documents about the lab board, which are available on the Labs page of the course website
	
	
		•    All group members work together in the lab to test the board by following the test procedure provided in the Lab Board Information.zip file
	
	
		o  There may already be some wire connections on the board. But you still need to identify the ports and check each connection as specified in the test sheet.
	
	
		o  After the test, pull off all wires and make the board ready for the coming lab exercises.
	
	
		•     Upload the test report to your group channel in MS Teams before the due time. Notify your tutor if there are any problems with your lab board.
	
	
		Your test report must not be modified after your lab session in Week 4. Any changes made afterward will be considered late submission and no marks will be awarded.
	
	
		Task 2 (45 marks, due in your lab session in Week 5)
	
	
		For this task, you need to work solo, and your work will be assessed by peers and tutors.
	
	
		1)   Write an assembly function that reads a sentence from the program memory, counts the number of words in the sentence, and saves the word count in the data memory. Here we assume:
	
	
		•     The sentence is null terminated.
	
	
		•     Words are separated by single spaces only.
	
	
		•     Punctuation marks are considered part of words.
	
	
		•     A word is less than 10 characters.
	
	
		•     The maximum word count does not exceed 255.
	
	
		For example, “Hello, everyone!” contains two words.
	
	
		2)   Design three test cases to verify your code function. Create a demo video that shows how you run the test.
	
	
		Task 3: (40 marks, due your lab session in Week 5)
	
	
		Implement an LED display control system that can display two different patterns in the following way:
	
	
		a)   When the user presses one button on the lab board for the first time, the first pattern is displayed.
	
	
		b)   When the user presses the button again, the second pattern is displayed.
	
	
		c)   When the user presses the button the third time, the display switches between the two patterns automatically. To ensure visibility, insert some delay (for example, 0.5 second) between the patterns. The clock frequency used on the lab board is 16MHz.
	
	
		d)   To stop the pattern display, press the second button, which will reset the display to a default pattern.
	
	
		Here we assume the default pattern and other two patterns are static and hardcoded in your code – any changes to these patterns require the code to be recompiled. All patterns are 6 bits in size.
	
	
		Assemble your program using Microchip Studio and run your code on the lab board. Demonstrate your work to your lab tutors.
	
	
		Note:
	
	
		•     Tasks 1 and 3 will be assessed in groups by your tutors. All group members are required to work together to ensure the task is completed on time.
	
	
		•     The assessment for Task 1 is based on your participation in the lab board test. Make sure you sign the test report after you complete Task 1. Each member who has fully participated in the test will receive 15 marks.
	
	
		•     The assessment for Task 3 is divided into two components:
	
	
		o  Group performance (20 marks)
	
	
		All group members will receive the same marks based on the following criteria:
	
	
		     Code compilation in Microchips Studio – 5 marks
	
	
		Successful building of the project code without errors
	
	
		     Code deployment to lab board – 5 marks
	
	
		Successful loading of the compiled code onto the hardware.
	
	
		     Code execution and design verification – 10 marks
	
	
		Demonstration that the code runs correctly and validates the intended design.
	
	o  Individual performance (20 marks)
	Each student will be individually assessed based on:
	     Understanding of the group work - 20 marks
	Clear and accurate explanation of a specific part of the group work, as assigned by the tutor.
	•    Task 2 will be assessed by your peers and tutors. The assessment is based on
	o  The overall of your design (7 marks)
	o  The key features/techniques you used in your program 5 marks)
	o  The effectiveness of video demo that shows how you run your code and check the simulation result (7 marks)
	o  Results of three different test cases. (15 marks)
	o  Effectiveness of your testing approach (6 marks)
	An assessment form. will be available for Task 2.
	•    We have a limited stock of lab kits. Please treat them with caution to avoid damage and unnecessary replacement.