Here are some of the programming assignments for the project. Since each assignment can be only used by a single team, you need to make sure your choice hasn't been assigned yet. Assignments are not of equal difficulty and easier ones will earn you less credit. 1. A calculator that performs the basic operations: addition, subtractions, multiplication, division. Use binary for operations. 2. A calculator that performs the basic operations: addition, subtractions, multiplication, division. Use BCD for operations. 3. Read pairs of 8-bit numbers from the input port, multiply them and output the result (16 bit) to the output port. 4. Read streams of bits from the input port, calculate the parity bit and output the bit stream plus the parity bit using the output port. 5. Implement a finite State Machine that recognizes the language described by the regular expression a(a+b*). Use ASCII codes for a and b. 6. Read a 12 bit integer from the input port #1, execute a delay() subrutine that many times, then activate the output port. The delay() subroutine would run for some predefined aamount of time (say 10 microsecond, 1 millisecond, etc) and do nothing otherwise. 7. Implement the control for a microwave. The input information is * door open/closed * magnetron temperature normal/abnormal * start button activated * stop button activated * seconds to run (12 bit integer) * a one second tick from an external timer. The output would be: * start magnetron * stop magnetron * beep 8. Implement a simple controller for a car. Input would be * door(s) open * keys in contact * parking brake active * seat belt(s) not used * engine running * light(s) on The output would be: * a low pitch output to a speaker to indicate a non-emergency condition * a pulsed high-pitch output to a speaker to indicate an emergency condition 9. A simple controller for house security. The controller continuously reads the a keyboard pad (an array of 4x4 keys) and the status of sensors. If the alarm is enabled then the controller will activate the output port (which in turn will sound a horn) when any of the sensors is on (indicating a breach). The user can store a 4 digit password. The alarm will sound after 3 unsuccessful attempts to enter the password. The alarm can be disabled if the user enters the proper password. 10. A simple controller for a 12 key keypad (like the ones touch tone phones use). Every time a key is pressed a 4 bit binary code is output to the output port. This is tru no matter how long the key stays pressed. The controller should do the key debouncing. Practically speaking this means the controller does not respond to glitches that appear due to mechanical contacts. When the controller senses a key has been pressed, it waits for 10ms and checks that key again. If it finds it still presses then it outputs the proper code. 11. Read from the input a stream of 16bit integers (2's complement representation). Output the absolute value of each number. 12. Read from the input a stream of 16bit integers (2's complement representation). Output the value of each number in (2^15-1) biased representation.