//Testing Push Button (PB1 and PB2) Switches on Student Project Board. //This program gets status of Push Button SW of PB1-PB2 and sends it to LEDs on PORTA //Using HCS12 MCU Module with Freescale Student Project Board //HCS12 MCU Modules come with USB-BDM and ready to be used with CodeWarrior IDE //The lower 4 bits of PA3-PA0 (pins of HCS12 CPU) are connected to LEDs(LED1-LED4 on J10) permanently //and must be enabled by clearing bit P4 of PORTP. Also set the LED jumper on UFEA jumpers next to Buzzer //We also need to connect 4 wires from LED5-LED8 (J10) to pins PA7-PA4 via J6 connector //The lower 2 bits of PP1-PP0 (pins of HCS12 CPU) are connected to push buttons of PB1 and PB2 permanently //and must be enabled by clearing bit P5 of PORTP. Also set the PB jumper on UFEA jumpers next to Buzzer //On HCS12 MCU Module itself //a)MAKE SURE BOTH jumpers for PP0 and PP1 are removed (SW1 and SW2). //b)Also Make sure 8 Jumpers (SW3-1 to SW3-4 and LED1-LED4) on HCS12 MCU module are also removed //Written and tested by M. Mazidi using Examples in chap. 7 of HCS12 textbook by Mazidi & Causey. //In CodeWarrior,MAKE sure you are in TBDML Mode before downloading //Press F7 (to Make), then F5(Debug) to downLOAD,and F5 once more to start the program execution #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void MSDelay(unsigned int); void main(void) { /* put your own code here */ unsigned char x; DDRA = 0xFF; //PORTA as output since LEDs are connected to it DDRP = DDRP | 0b00110000; //Make PP4 and PP5 as output. On the Project Board, a)the lower 4 pins of PA3-PA0 are connected to LEDs(LED1-LED4) PTP = PTP & 0b11001111; //and b)the PP0 and PP1 pins are connected to PB1 and PB2 push buttons. c) They mut be enabled by clearing pins P4 and P5 of PORTP //on Project Board,we need to connect 4 wires from LED5-LED8 (J10) to pins PA4-PA7 via J6 connector (pins 25,27,29,31) for(;;) { x=PTP; //Get data from push button of push button of PB1 and PB2 x=x&0b00000011; //mask the unwanted bits PORTA = x; //send it to PORTA MSDelay(1); //optional } } //The HCS12 MCU Module works with XTAL=4MHz //Freq. for Instruction Clock Cycle (Bus Freq.) is 2MHz (1/2 of 4MHz). void MSDelay(unsigned int itime) { unsigned int i; unsigned int j; for(i=0;i