+ All Categories
Home > Documents > BTL-VXL K56 Group 3

BTL-VXL K56 Group 3

Date post: 14-Nov-2015
Category:
Upload: truong-tuan-vu
View: 15 times
Download: 1 times
Share this document with a friend
Description:
BTL-VXL K56 Group 3
38
HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY Department of Electronics and Telecommunication ====o0o==== REPORT MICROPROCESSOR PROJECT: INDOOR DEVICE CONTROLLER CIRCUIT Group: 03 APEEE2 20132 Đường Hng Anh Đỗ Thanh Tùng Trn Hng Hi Lê KhLinh 20111105 20112133 20111021 20111779 Instructor: ASSOC PROF. DR. PHM NGC NAM Hanoi, 6/2014
Transcript
  • HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY

    Department of Electronics and Telecommunication

    ====o0o====

    REPORT

    MICROPROCESSOR

    PROJECT: INDOOR DEVICE

    CONTROLLER CIRCUIT

    Group: 03 APEEE2 20132

    ng Hng Anh

    Thanh Tng

    Trn Hng Hi

    L Kh Linh

    20111105

    20112133

    20111021

    20111779

    Instructor: ASSOC PROF. DR. PHM NGC NAM

    Hanoi, 6/2014

  • Microprocessor report 2014

    2

    HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY

    Department of Electronics and Telecommunication

    ====o0o====

    REPORT

    MICROPROCESSOR

    PROJECT: INDOOR DEVICE

    CONTROLLER CIRCUIT

    Group: 03 APEEE2 20132

    ng Hng Anh

    Thanh Tng

    Trn Hng Hi

    L Kh Linh

    20111105

    20112133

    20111021

    20111779

    Instructor: ASSOC PROF. DR. PHM NGC NAM

    Hanoi, 6/2014

  • Microprocessor report 2014

    3

    Evaluation Criteria Score

    0. Total Score 10.0

    1. Minus

    1.1. No product

    1.2. No hardware report

    1.3. Lack of function: Sign in from keypad

    1.4. Lack of function: Display password/Sign in status on LCD

    1.5. Lack of function: Warnning when sign in wrong 2 times

    1.6. Lack of function: Changing password

    1.7. Lack of function: Display date, time on LCD

    1.8. Lack of function: Alarm turn off LED

    1.9. Lack of function: Auto turn on/off LED depend on light intensity

    1.10. Lack of function: Display temperater on 7 segments

    1.11. PCB have no name of group

    1.12. A sparsely report/lack of content (name of project/group/content/ requirement of procject/plan/block diagram/code)

    2. Bonus

    2.1. Beautiful PCB and smart order of components

    2.2. Function have a good reaction (sensibility, speed of calcultion, display)

    2.3. Function: Using house model to demo system

    2.4. Function: Auto turn on LED when peole enter the room by using 2.5. infared sensor

    2.6. Having other function

    2.7. Code includes ASM code

    2.8. Easy to use (large keypad, clear note, simple operation)

    2.9. Clear presentation, answered speciality questions

    TOTAL:

  • Microprocessor report 2014

    4

    CONTENT

    CONTENT .................................................................................................................. 4

    LIST OF IMAGES ...................................................................................................... 5

    LIST OF TABLES ...................................................................................................... 5

    PREFACE ................................................................................................................... 6

    I. Project disription ................................................................................................... 7

    II. System design ...................................................................................................... 16

    III. Conclusion ........................................................................................................... 28

    REFERENCE ............................................................................................................ 28

    APPENDIX A: MEMBERS ..................................................................................... 28

    APPENDIX B: CODE .............................................................................................. 30

    APPENDIX C: USER GUIDE ................................................................................. 38

  • Microprocessor report 2014

    5

    LIST OF IMAGES

    Figure 1. Block diagram of system

    Figure 2. Plan and work distribution

    Figure 3. Keypad block

    Figure 4. Light sensor block

    Figure 5. LM35

    Figure 6. Temperature sensor block

    Figure 7. Temperature display block

    Figure 8. Display block

    Figure 9. Clock block

    Figure 10. Alarm block

    Figure 11. Microcontroller block

    Figure 12. Source block

    Figure 13. Schematic on Proteus

    Figure 14. Schematic on Altium

    Figure 15. System layout

    Figure 16. Final product

    Figure 17. Group 3

    LIST OF TABLES

    Table 1. System blocks and components

    Table 2. Components cost

  • Microprocessor report 2014

    6

    PREFACE

    We have used traditional keys and locks for centuries; they have helped

    human a lot in protecting their properties. However, the keys can easily be stolen;

    anyone with the stolen keys can open doors and access buildings. To avoid that

    disadvantage, we introduce our secure electronic lock which is based on a

    microcontroller of PIC 16f series. Our locks user interface contains a keypad, a

    LCD, a 7-segment LED and an indicating LED. This I/O interface allows the

    users to enter the password to unlock the door, change the password, check the

    temperature, check or change the date and time, and set-up the sleeping time for

    the lamp.As digital technology has evolved dramatically in recent years, devices

    like this lock have become cheaper and more reliable than ever. Thus, it can

    clearly be seen that houses equipped with digital door locks would soon lead the

    trend of the future residency.

  • Microprocessor report 2014

    7

    I. Project discription

    1.1 Functional requirements

    IDLE STATE

    o Activated when the lock is not in used

    o The LCD displays the current date and time. The first line displays the

    date with the format Month Date, Year. The second line displays the

    time in the format HH:MM:SS and in the 24-hour system.

    o Password must be entered before using any function of the lock.

    UNLOCK FUNCTION

    o The user presses the Unlock button to activate the door unlocking

    function.

    o The LCD displays Enter Password: and offers the user enough space

    to enter the password through the number keys from number 0 to

    number 9.

    o The password contains 8 characters and the characters are in numbers

    only to reduce the complexity when the user wants to get indoor.

    o After finish entering the password, the user presses the OK key to

    confirm his password. If the password is correct, the GREEN LED is

    turned on and the LCD displays Correct Password on the first line

    and Welcome home on the second line for 5 seconds before returning

    to idle state displaying date and time. If the password is not correct, the

    lock notifies the user by displaying Wrong Password on the first line

    and Try again on the second line for 3 seconds, then return to the

    enter password stage. If the user continues to enter a wrong password,

    the alarm is activated, the RED LED is turned on and all the keys are

    disabled for 15 seconds. After that, the lock returns to idle state and

    displays date and time.

    MENU KEY: The user presses the Menu key to go through the list of

    available additional functions. Each time the key is pressed, the LCD

  • Microprocessor report 2014

    8

    displays the next function. When the last function is reached, the next thing

    to be displayed is the first function. Each function are displayed on the

    LCD:

    o Change Password (1st line) 1/4 (2nd line)

    o Change DateTime (1st line) 2/4 (2nd line)

    o Setup Timer (1st line) 3/4 (2nd line)

    o Reset Timer (1st line) 4/4 (2nd line)

    The user presses the OK key when any function is displayed to activate

    that function.

    CHANGE PASSWORD FUNCTION

    o When the Change password function is activated, the lock asks for

    the old password. The LCD display Old password? (1st line) and

    leave the second line for entering the old password.

    o Finishing entering the old password, the user presses OK to confirm.

    o If that was a wrong password, the LCD displays Wrong Password

    (1st line) and Enter again (2nd line) for 3 seconds before return to the

    enter password stage.

    o If the password is incorrectly typed twice, the alarm is activated, the

    RED LED is turned on, the LCD displays Warning!! and the keypad

    is disabled for 15 seconds before getting back to the idle state

    displaying date and time.

    o If the old password is correctly entered, the lock asks for the new

    password by displaying on the LCD New password? (1st line) and the

    second line for entering the new password.

    o After the user presses OK to confirm the new password, the lock asks

    the user to confirm the new password by entering again. LCD displays

    Please reenter.

    o If the user reenters correctly, the LCD displays Success! for 3

    seconds before getting back to idle state. If the user reenters incorrectly,

    the LCD displays Mismatch! for 3 seconds and the lock gets back to

  • Microprocessor report 2014

    9

    the idle state.

    CHANGE DATE-TIME FUNCTION

    o When the Change Date function is activated, the lock asks for the

    new date. The LCD display Enter new date (1st line) and

    yyyy/mm/dd (2nd line). As the user starts to enter the date, the format

    on the second line disappears. The lock automatically adds the / after

    the user enters the year and month.

    o Finishing entering the date, the user presses OK to confirm.

    o The lock then asks for the new time by displaying on the LCD New

    time? (1st line) and hh/mm/ss (2nd line).As the user starts to enter

    the time, the format on the second line disappears. The lock

    automatically adds the / after the user enters the hour and minute.

    o Finishing entering the time, the user presses OK to confirm.

    o The lock displays on the LCD Done! (1st line) for 3 seconds then

    returns to idle state.

    SLEEP TIMER FUNCTION

    o When the Setup timer function is activated, the lock asks for the

    amount of time the user wants to set.

    o The LCD display Enter sleep time (1st line) and hh/mm/ss (2nd

    line). As the user starts to enter the date, the format on the second line

    disappears. The lock automatically adds the / after the user enters the

    year and month.

    o Finishing entering the sleep, the user presses OK to confirm. The lock

    then turns on the indoor light and returns to idle state.

    o After the time entered passes, the lock automatically turns off the

    indoor light.

    RESET TIMER FUNCTION

    o When the Reset timer function is activated, if the time is not already

    set up, the LCD displays Timer not set. If the time is already set, the

  • Microprocessor report 2014

    10

    LCD display Are you sure? (1st line) and OK to confirm (2nd line).

    o If the user presses OK, the setup timer cancels the sleep time and the

    lock returns to idle state.

    OTHER FUNCTIONS

    o At any point in using the lock, the user can press the Return button on

    the keypad to cancels whatever he is doing and return the lock to idle

    state.

    o The lock displays the temperature by using 4 7-segment LEDs. The first

    two is for the value of the temperature. The third is for the degree

    sign and the fourth is for displaying C.

    o Depending on the natural light around. If the surrounding environment

    is bright enough, the outdoor light is turned off. If the surrounding

    environment is dark, the outdoor light is turned on.

    1.2 Nonfunctional requirements

    Use the PIC 16F series.

    Use the sticky keypad.

    Use light sensor to determine the light intensity of the room.

    Use temperature sensor to determine the temperature of the room.

    Code includes both ASM code and C code.

    PCB has group name and members.

    Circuit is compact, components are arranged logically.

    User interface has to be nice and friendly.

    The device costs no more than 150.000VND

    The measurements of the device is no bigger than: 210 297 (mm)

    Use LEDs to represent the indoor light and outdoor light.

  • Microprocessor report 2014

    11

    1.3 Block diagram of system

    Microcontroller

    Keypad Light SensorTemperature

    Sensor

    LCD7-

    segment LEDs

    Indoor LED

    Outdoor LED

    AlarmRed/

    Green LEDs

    Source

    Figure 1. Block diagram of system

  • Microprocessor report 2014

    12

    Blocks Components

    Keypad Sticky 4x4 keypad

    LCD 16x2 LCD

    Temperature Sensor LM35

    Light Sensor Photo-resistor CDS

    12MM

    Microcontroller PIC 16f877a

    Alarm Buzzer 3V

    9.5MMx12MM

    LEDs 7-segment LED 0.8

    Anode, 5 mm LEDs

    Clock DS1307

    Source 9V battery

    Table 1. System blocks and components

  • Microprocessor report 2014

    13

    Table 2. Components cost

    Components Cost (VND)

    Sticky 4x4 keypad 10.000

    16x2 LCD 60.000

    Photo-resistor CDS 12MM 2.000

    74HC595 4.000

    Microcontroller PIC 16f877a 65.000

    Buzzer 3V 9.5MMx12MM 5.000

    7-segment LED 0.8 Anode, 5 mm LEDs 4x2.500

    DS1307 3.000

    Resistors 4.000

    9V battery 12.000

  • Microprocessor report 2014

    14

    1.4 Plan and work distribution

  • Microprocessor report 2014

    15

    Figure 2. Plan and work distribution

  • Microprocessor report 2014

    16

    II. System Design

    2.1 Keypad block

    Figure 3. Keypad block

    Keypad consists of 4 columns and 4 rows, and whenever the user taps one button,

    the column and the row corresponding to that button are shorted. For example, if

    button 7 is pressed, its corresponding column and row (col1 and rowA) are

    shorted, if a button 0" is picked, col2 and rowD are shorted, and so on. To detect

    whether which input is pressed, a microcontroller uses a method called Scanning.

    The columns here are set as outputs and row as inputs (or vice versa).

  • Microprocessor report 2014

    17

    2.2 Light sensor block

    Figure 4. Light sensor block

  • Microprocessor report 2014

    18

    2.3 Temperature sensor and temperature display block

    For the purpose of measuring the temperature of the environment, LM35 is used

    as temperature sensor. The construction of LM35:

    Figure 5. LM35

    LM35 has 3 legs: 1 for U, 1 for Ground and 1 for output. This sensor interfaces

    with PIC follow the path LM35 - > ADC - > Microcontroller. We have the equation

    that performs the relationship between the temperature of the environment and the

    output voltage of ADC

    U =

    Where,

    U is the output voltage

    T is the temperature of the environment

    K is the coefficient of LM35, often 10mV/1C

  • Microprocessor report 2014

    19

    Figure 6. Temperature sensor block

    In our circuit Vcc=5V

    Display temperature by using 7-segment LEDS:

    For the porpose transform information from Pic to 7 led segments we use 74595

    LED-7 Segment will be used to display the temperature with the help of IC

    74HC595. 74HC595 is a shift register chip which connected in serial for input and

    parallel for output. The main benefit is saving pins of the microcontroller

    (maximum is 3 pins). To do that, pin Q7 of the previous IC will connect with pin

    DATA (pin 14) of the following IC. By that method, we can expand the number of

    pins of microcontroller as much as we would like to.

  • Microprocessor report 2014

    20

    Figure 7. Temperature display block

  • Microprocessor report 2014

    21

    2.4 Display block

    Figure 8. Display block

    The LCD would be used in 4-bit mode thus pin D0, D1, D2, D3 are not needed and

    connected to the ground.

    The variable resistor sets the contrast for the display.

    The 1k resistor sets the intensity of the backlight of the display.

    2.5 Clock block

    Figure 9. Clock block

    The two 4.7k resistors are pull-up resistors for the I2C pins

  • Microprocessor report 2014

    22

    2.6 Alarm block

    Figure 10. Alarm block

  • Microprocessor report 2014

    23

    2.7 Microcontroller block

    Figure 11. Microcontroller block

    Switch S1 is used as the reset button.

    Switch S2 is used to implement the external interrupt which enables the keypad

  • Microprocessor report 2014

    24

    2.8 Source block

    Figure 12. Source block

    We ues IC LM7805 to convert 12V to 5V.

  • Microprocessor report 2014

    25

    2.9 Schematic

    Figure 13. Shematic on Proteus

    Figure 14. Schematic on Altium

  • Microprocessor report 2014

    26

    2.10 System Layout

    Figure 15. System layout

  • Microprocessor report 2014

    27

    2.11 Final product

    Figure 16. Final product

  • Microprocessor report 2014

    28

    III. CONCLUSION

    Reference

    K54 Teaching Assistants weekly instructions

    Datasheets of : PIC 16F877a, 74HC595, DS1307, Anot common 7 segments,

    LCD 16x2 (HD44780U Controller/Driver)

    APPENDIX A: THE CONTRIBUTION OF EACH

    MEMBER

    A.1. ng Hng Anh

    Coding LCD library; designing display block; coding the date time, password

    functions; assembling code and schematic; participating in PCB designing and

    soldering process; editing the report.

    A.2. Thanh Tng

    Coding keypad library; designing keypad block; assembling code and schematic;

    main PCB designer; participating in soldering process; editing the report.

    A.3.Trn Hng Hi

    Coding DS1307 library; designing clock block and light sensor block; assembling

    code and schematic; participating in PCB designing; main solderer; editing the

    report.

    A.4.L Kh Linh

    Coding temperature sensor library; designing temperature sensor and temperature

    display block; assembling code and schematic; participating in PCB designing and

    soldering process; main report editer.

  • Microprocessor report 2014

    29

    Figure 17. Group 3

  • Microprocessor report 2014

    30

    APPENDIX B: SOFTWARE CODE

    //Main

    #include

    #device *=16 adc=10

    #fuses HS,NOWDT,NOLVP,NODEBUG,PUT,NOBROWNOUT

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #use i2c(Master,fast,sda=PIN_A1,scl=PIN_A0)

    #use delay(clock=20000000)

    #use fast_io(d)

    #use fast_io(c)

    #use fast_io(b)

    #use fast_io(a)

    int1 enable_keypad=0;

    #int_ext

    void enableKeypad()

    {

    enable_keypad=1;

    }

    //Time is initalized here

    full_time initTime()

    {

    full_time time;

    time.year = 12;

    time.month = 2;

    time.day = 6;

    time.date = 28;

    time.hour = 23;

    time.minute = 59;

    time.second = 57;

    return time;

    }

    void main()

    {

    set_tris_D(0xF0);

    set_tris_C(0x00);

    set_tris_B(0x01);

    set_tris_A(0x01);

    setup_adc_ports(AN0);

    setup_adc(ADC_CLOCK_INTERNAL);

    set_adc_channel(0);

    output_low(PIN_B1);

    LCDinit();

    LCDclear();

    LCDformatSetup();

    delay_ms(2);

    time = initTime();

  • Microprocessor report 2014

    31

    DS1307init(time);

    sleep_time.hour=-1;

    int16 TEMPERATURE;

    ext_int_edge(H_TO_L);

    enable_interrupts(int_ext);

    enable_interrupts(GLOBAL);

    while(TRUE)

    {

    resetState();

    if (enable_keypad)

    {

    LCDclear();

    LCDgotoXY(1,1);

    str="Keypad";

    LCDwriteStr(str);

    LCDgotoXY(2,1);

    str="Activated!";

    LCDwriteStr(str);

    while (true){

    scanButton(state);delay_ms(50);

    if (state[0] == 0){

    if ((state[1]==3) && (state[2]==7))

    {

    delay_ms(200);

    succ=1;

    unLock(succ);

    if (!succ) menu();

    break;

    }

    else if ((state[1]==3) && (state[2]==4))

    {

    toggleLed();

    break;

    }

    else if ((state[1]==1) && (state[2]==7))

    {

    delay_ms(200);

    unLock(succ);

    break;

    }

    }

    }

    enable_keypad=0;

    LCDclear();

    LCDgotoXY(1,1);

    str="Keypad";

    LCDwriteStr(str);

    LCDgotoXY(2,1);

    str="Deactivated!";

    LCDwriteStr(str);

    delay_ms(500);

    LCDclear();

    }

    time = DS1307read();

    turnOffLed(sleep_time.hour,sleep_time.minute,sleep_time.second);

    LCDformatSetup();

    sendTimeToLCD(time);

    TEMPERATURE=UPDATE_TEMPERATURE();

    PUSH_TO_LED(TEMPERATURE);

    }

  • Microprocessor report 2014

    32

    }

    =================================================================================

    //Function for unlocking by entering password

    void unLock(int1 *succ)

    {

    int count=0;

    int8 wrong_try=0;

    int i;

    int1 pass_match=1, complete=0;

    char entered_pass[8];

    int star_code[8]={0,0,1,0,1,0,1,0};

    succ=1;

    while (!complete)

    {

    pass_match=1;

    count=0;

    unLockSetup();

    while (count

  • Microprocessor report 2014

    33

    }

    LCDclear();

    }

    }

    =================================================================================

    //Function for changing password

    void changePassword()

    {

    int count=0;

    int i;

    int1 pass_match=1, complete=0;

    char entered_pass[8];

    char reentered_pass[8];

    while (!complete)

    {

    pass_match=1;

    count=0;

    changePassSetup();

    while (count

  • Microprocessor report 2014

    34

    else if ((state[1]==1) && (state[2]==6)) {reentered_pass[count]='6';}

    else if ((state[1]==0) && (state[2]==4)) {reentered_pass[count]='1';}

    else if ((state[1]==0) && (state[2]==5)) {reentered_pass[count]='2';}

    else if ((state[1]==0) && (state[2]==6)) {reentered_pass[count]='3';}

    else if ((state[1]==0) && (state[2]==7)) { LCDclear();

    LCDcursor(0,0);return;}

    count+=1;

    LCDwrite(star_code);

    }

    resetState();

    delay_ms(600);

    }

    for (i=0;i

  • Microprocessor report 2014

    35

    =================================================================================

    //Function for setting sleeptime

    void setUpSleepTime()

    {

    int count=0;

    int entered;

    sleepTimeSetup();

    while (count

  • Microprocessor report 2014

    36

    =================================================================================

    //Function for scanning the keypad

    void scanButton(int* state)

    {

    int i,j;

    for (i=0;i

  • Microprocessor report 2014

    37

    =================================================================================

    //Function for initializing the LCD

    void LCDinit()

    {

    int i;

    int init_array[3][10]={

    {0,0,0,0,1,0,1,0,0,0},

    {0,0,0,0,0,0,1,1,0,0},

    {0,0,0,0,0,0,0,1,1,0}

    };

    output_high(E);

    output_bit(RS,0);

    output_bit(RW,0);

    output_bit(D7,0);

    output_bit(D6,0);

    output_bit(D5,1);

    output_bit(D4,0);

    output_low(E);

    delay_ms(100);

    for (i=0;i

  • Microprocessor report 2014

    38

    incorrectly 3 times

    =================================================================================

    //Change password library

    void changePassSetup() // Function for setting the changing password screen

    void confirm() // Function for confirming the password

    =================================================================================

    //DS1307 library

    full_time DS1307read() //Function for reading the date and time from DS1307

    int toBCD (int num) //Function for converting a interger num into a BCD

    int toBIN (int num) //Function for converting a integer num into binary

    =================================================================================

    //LCD library

    void LCDformatSetup() //Function for setting up the format of LCD

    void LCDgotoXY(int x,y) //Function for jumping to a position (x,y) on the LCD

    void LCDwriteStr(char* str) //Function for writing a str onto the LCD

    void LCDclear() //Function for clearing the LCD

    void LCDcursor(int on,int blink) //Function for controlling the cursor: enable

    and blink

    =================================================================================

    //Keypad library

    void voltageLow(int8 index) //Function for setting low voltage to a row

    int1 isLow(int8 index) //Function for checking if a row is pulled low

    APPENDIX C: USER GUIDE

    To use the keypad, push the active keypad button.

    When keypad is activated:

    o Press B to active the unlock function. Then enter password (8 numbers)

    to unlock.

    o Press * to toggle the indoor LED.

    o Press D to enter the functions menu by entering the password. Scroll

    through the menu by pressing D. Choose the desired function by pressing

    #.

    o When a function is activated, only use the number keys to enter required

    information (time, password) or press A to cancel.


Recommended