1 / 9

4-Integrating Peripherals in Embedded Systems (cont.)

4-Integrating Peripherals in Embedded Systems (cont.). Using push buttons and switches. Push buttons SW2 to SW5 on the Dragon Board are connected to bits 3 to 0 of PortH When button is pushed, a corresponding bit of Port H is reset. What activity level? Can be enabled/disabled: SW_enable();

Download Presentation

4-Integrating Peripherals in Embedded Systems (cont.)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4-Integrating Peripherals in Embedded Systems (cont.)

  2. Using push buttons and switches • Push buttons SW2 to SW5 on the Dragon Board are connected to bits 3 to 0 of PortH • When button is pushed, a corresponding bit of Port H is reset. What activity level? • Can be enabled/disabled: • SW_enable(); • Can be checked with C function calls: • SW1_dip(); //returns 8-bit reading of SW1-SW5. Non-blocking • SW2_down(); // true if SW2 is down • SW2_up(); //true if SW2 is up. • Use • while ((PTH & 0x01)==0) //to check if the SW5 is being pressed • { • //…SW5 still pressed • } • //SW5 released

  3. Using switches • There are also 8 DIP switches (sliders) on the Dragon board. • The rightmost 4 switches share the same bits of portH with push buttons. • These switches are intended for use as level-sensitive data inputs to a circuit. • When a switch is in the ON position (away from LCD) it provides a 0 bit on corresponding PORT H bit. • What activity level? • Use: • DDRH=0x00; //Port H inputs • leds_on(~PTH);

  4. Using Keypad • The Dragon board has a 4x4 keypad, connected to Port A. • Scanning is used to minimize interface bits. See pp 29. • Use C function call key_scan(). See example 6.1 • Use C function call get_key(). See example 6.2 • To avoid bouncing: • keypad_enable() • getkey() • wait_keyup() • keyscan()

  5. Using LEDs • The Dragon board provides 8 red LEDs. • You can use C function calls to set/reset LEDs • led_on(int b); //Sets bit b of PORTB High, or on • led_off(int b); //Sets bit b of PORTB Low, or off • leds_on(int h); //Sets bits of all 8 leds according to hexadecimal value h

  6. Seven Segment Display • The Dragon Board has four 7-segment displays. These displays are arranged with the intent of displaying numbers of medium sizes. • Must be enabled/disabled since using same port B of LEDs: • seg7_enable(); • seg7_disable(); • Applying a high logic level to a segment causes it to light up, and applying a low logic level turns it off. • seg7_on(int s, int b); //turns on segment s on 7SEG digit b • What will be the hexadecimal digit coding (assume 0 segment is least significant)? [9 coded as 0x6F] • Use seg7dec(int s, int b); //display hexadecimal value of i on 7SEG digit b

  7. E communications bus R/W RS DB7–DB0 8 microcontroller LCD controller LCD controller • Dragon board has Sanyo DM1623 display of 2x16 characters. • See control signals in pg. 33 and table 7.1 in pg 34

  8. Using LCD • Use: • char * msg; • msg=“Dragon12-Plus”; • lcd_init(); //set configurations • set_lcd_addr(0x01);//for first line • type_lcd(msg); • set_lcd_addr(0x45); //for second line

  9. Next • 3/03/2010 Lab1: CodeWarrior Tutorial with examples • 3/05/2010 Lab2: Dealing with individual LEDs and Delay via PLL • 03/08/2010 - 03/12/2010Spring break, NO classes • 25 03/15/2010 Lab3: Push-buttons, Dip Switches, and Keypad • 03/17/2010 Lab 4: LCD and Serial Communication Interface (SCI)/UART • Answer questions and submit code in the lab reports. Show instructor when finished. Lab reports are due a week after each assignment (skipping spring break).

More Related