Project 1

This is my circuit for the finite machine that realizes a keyless entry controller’s logic equations. These equations are physically derived using ICs (NAND gates). The objective of this circuit is to create a car fob to control: Driver’s Door (DD), All Doors (AD), and Side Door (SD). The fob has four buttons L for Lock, U for Unlocking, S for Side door, and R is the Resiting button. We also used LEDs to indicate the functionality of the circuit. For the D flip-flop’s clock signal we used the programmable timer IC, 4541BD. This allowed us more portability since we do not need the MyDAQ’s function generator. This IC generated a square-wave with a frequency of 0.2 Hz if pin 13 was set to be in logic 0 (ground). It can also create a 1.6 Hz frequency if on 13 was set to logic high (VDD = 5 V) For our input, we used 5 V coming from the MyDAQ and its ground to all the ICs in the circuit.
-
- For the circuit to be working properly we needed to test the following:
- When the L switch is pressed all doors are locked. Therefore the three LEDs that correspond to the door do not light.
- When the U switch is pressed: first it unlocks the driver’s door and when it is pressed for more time all doors are unlocked.
- When the S switch is pressed and all doors are unlocked the side door will toggle from open to close and vice vers.
- When the R switch is pressed all doors will lock or all states go back to state zero which is locked.
Project 2


This is my LabVIEW code and breadboard implementation for the finite state machine that realizes a keyless entry fob for a car using MyDAQ DIO ports. This program uses LabVIEW code to translate the logic of the finite state machine we have into a physical component. This was done by using a case structure for decoding the state variables we have defined externally in a separate control, another case structure to decode the inputs, a while loop for clocking, another while loop for the reset button, and lastly a case structure for passing the output of the reset button. In this project, we were able to utilize the local variables to keep updating the states after being through the shift registers. The outer while loop allows us to control when do want to execute the next command which is at the positive edge of each clock period. The most important aspect of this code/circuit is the MyDAQ functionality. In this project, we used the NI MyDAQ data acquisition tools in a separate VI to simplify our code. The tools used created a channel, read, wrote, and cleared the data being passed into each.
Project 3




In this project, we realized the state machine of a keyless car fob using the microcontroller and the dsPIC33EP64MC502 as shown in the first image. Using MPLAB we were able to program the microcontroller such that it utilizes two nested switch statements within a while-loop in the main function to read the inputs coming from the buttons on the circuit, indicates the outputs on the LEDs, and finally print out the current state and the clock counter on the LCD screen. The logic of the FSM was implemented using a bitwise manipulation of three inputs. In the main source file, an asynchronous reset using interrupt INT1 was implemented to set the current state back to state 0. Also to keep the code clean the LCD module functions were written in a different file and it is called in the main source file. The LCD module allowed us to exactly choose the orientation on how are we going to display the current state and the clock counter.
Project 4



In this project, we implemented the FSM using WinSIM by programming the CUPL HDL. The logic of the code is the same as the previous projects. This time, however, we did not build a physical circuit but rather designed one that used a CD4541 timer to generate a clock signal then utilizing the ATF750CL chip to output the states on the LEDs. Designing the circuit helped us with realizing the code in a way we assign the pins for each input and output. After compiling the code, we used WinSIM for testing the logic of our code. The test vectors were tested with multiple combinations of the inputs and outputted the desired logic