4-LEVEL LIFTING SYSTEM1. 목적.4-LEVEL LIFTING SYSTEM 제작을 통해 KS88 마이콤 제어와 어셈블리언어 및 하드웨어 제작을 실습하고, 실제 엘리베이터 제어를 대략적으로 이해한다.2. 구조와 동작법본 프로젝트는 4층의 빌딩을 상정하여 엘리베이터의 동작을 간단히 구현한 것이다. 동작은 지정층수의 버튼을 누르면, 현재상태에서의 위치를 확인한 후 상승 혹은 하강하여 지정된 층으로 이동한다. 실제 엘리베이터와 다른 동작은 층수버튼을 한번에 2개를 눌러도 받지 않는다는 점이다. 원하는 위치에 다다르면 모터구동을 멈추고 7-Segment LED에 현재의 위치를 표시한 후, Beep 음을 낸다.가. 외형빌딩 외형은 하드보드지로 제작되었으며, 엘리베이터의 본체는 아크릴로 제작하였다. 본체는 DC모터에 연결되어 있으며. 한층당 높이는 10Cm이며 모두 4개의 층으로 구성되었다. DC모터는 상단에 위치하여 엘리베이터 본체를 이동시키게 된다.그림 엘리베이터 외형나. 제어부DC감속모터를 이용하여 속도는 모터자체에서 해결하였으며, 마이콤제어에 의한 모터의 방향 제어가 첫 번째 문제였다. KS88의 출력전원이 아닌 외부전원을 이용한 모터구동이 필요하여 구동회로를 따로 제작하였다. 역전류방지를 위한 IC-ULN2803-를 이용한 회로로서 신호 두 개로 양방향 모터구동을 가능하게 한다.그림 모터구동회로또한 KS88 입출력포트에서 나오는 신호가 미약하여 선을 길게 끌어 설치할 경우 오동작을 할 가능성이 있어 전류증폭용 BJT Digital Switch 기능을 가지는 회로를 KS88과 모터구동회로 사이에 설치하여 신중을 꾀했다.그림 BJT digital switch다. 기타요구인식용 키나 위치표시용 7-Segment, 비프음 발생기와 승하강 동작표시용 LED는 제공된 TEST BOARD의 것들을 이용하였다.3. 제어 프로그램KS88용 시뮬레이터인 SMDS2를 사용하여 어셈블리 언어로 구현하였다.Port 0와 Port 4를 이용하여 Key Scan하여 버튼 입록 하였다. Port 5는 7-Segment Display를 위한 것이다.위치 확인을 위해 센서를 사용한 것이 아니기 때문에 R7 register에 현재 위치를 확인하기 위한 값을 저장하고 비교한 후 임의의 층에서 나올 수 있는 경우의 수를 확인하고, 지정된 위치로 이동하도록 하였다. 따라서 프로그램이 다소 길어지게 되었다.4. 마치고 난 후짧은 시간안에 프로젝트를 완성하기 위해서 다소 미흡한 점이 있었다. 센서을 이용하여 인터럽트를 구현하였다면, 제어 프로그램을 구현할 때 아쉬웠던 점을 보완할 수 있었을 것이다. 또한 엘리베이터의 문도 같이 만들어 좀 더 실제적인 엘리베이터의 모습을 보일 수 있었으면 했다. 하지만, 새롭게 접해 본 마이컴 제어는 이론적으로 배워왔던 지금까지의 학습을 확인 할 수 있었던 자리였다. 이번 기회를 발판으로 삼아 졸업작품에서 좀 더 새롭고, 발전된 프로젝트를 완성하고자 한다.참고서적 :MICOM 응용시스템 설계 II - 삼성첨단기술센터KS88C0116 User's Manual - 삼성전자System Software - Leland L. Beck붙임 :Assembly Program Source프로젝트 제안서붙임 #1 . Program Source;--------------------------------------------------------;; 2001. 5 ELECTRIC EXPERIMENT PROJECT; TITLE : 4-LEVEL LIFT SYSTEM;;--------------------------------------------------------CHIP C:SMDS2DATA88C0016.DEFORG 20HJP INITIALIZEORG 100HINITIALIZE:LD P0CON,#00010001B ; PORT0 OUTPUT MODELD P1CON,#00010001B ; PORT1 PUSH-PULL OUTPUT MODELD P5CON,#00010001B ; PORT5 PUSH-PULL OUTPUT MODELD P11BLD P5,#00000001B ; 7 SEGMENT DISPLAY FND 0LD P1,#06HLD R7,#00000001B ; INITIALIZE POSITIONLOOP:LD P0,#00010000B ; K1~K4 KEY SCANCALL KEY_SCANLD P6,#00000000B ; LED STOP DISPLAYJP LOOPKEY_SCAN:NOP ; DELAY FOR A WHILELD R0,P4 ; READ PORT 4BTJRF L1,R0.4 ; CHECK WHAT KEY IS PUSHEDBTJRF L2,R0.5BTJRF L3,R0.6BTJRT L4,R0.7JP KEY_SCANL1:CP R7,#00000001BJP Z,ERRORBEEPCALL MCONTROL1LD P5,#00000001B ; 7 SEGMENT DISPLAY FND 0LD P1,#06HJP KEY_SCANL2:CP R7,#00000010BJP Z,ERRORBEEPCALL MCONTROL2LD P5,#00000010B ; 7 SEGMENT DISPLAY FND 1LD P1,#5BHJP KEY_SCANL3:CP R7,#00000100BJP Z,ERRORBEEPCALL MCONTROL3LD P5,#00000100B ; 7 SEGMENT DISPLAY FND 2LD P1,#4FHJP KEY_SCANL4:CP R7,#00001000BJP Z,ERRORBEEPCALL MCONTROL4LD P5,#00001000B ; 7 SEGMENT DISPLAY FND 3LD P1,#66HJP KEY_SCANMCONTROL1:CP R7,#00000010B ; AFTER CHECK THE POSITIONJP Z, S_TO_F ; CONTROL MOTORCP R7,#00000100BJP Z, T_TO_FCP R7,#00001000BJP Z, F_TO_FS_TO_F: ; SECOND FLOOR TO FIRST FLOORCALL DOWNLD R7,#00000001BLD P3,#00000010B ; BEEP TO SHOW00000001BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETF4_TO_F: ; FORTH FLOOR TO FIRST FLOORCALL DOWNCALL DOWNCALL DOWNLD R7,#00000001BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETMCONTROL2:CP R7,#00000001BJP Z, F_TO_SCP R7,#00000100BJP Z, T_TO_SCP R7,#00001000BJP Z, F4_TO_SF_TO_S:CALL UPLD R7,#00000010BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETT_TO_S:CALL DOWNLD R7,#00000010BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETF4_TO_S:CALL DOWNCALL DOWNLD R7,#00000010BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETMCONTROL3:CP R7,#00000001BJP Z, F_TO_TCP R7,#00000010BJP Z, S_TO_TCP R7,#00001000BJP Z, F4_TO_TF_TO_T:CALL UPCALL UPLD R7,#00000100BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETS_TO_T:CALL UPLD R7,#00000100BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETF4_TO_T:CALL DOWNLD R7,#00000100BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETMCONTROL4:CP R7,#00000001BJP Z, F_TO_F4CP R7,#00000010BJP Z, S_TO_F4CP R7,#00000100BJP Z, T_TO_F4F_TO_F4:CALL UPCALL UPCALL UPLD R7,#00001000BLD P3,#L DELAY1LD P3,#00000000BRETT_TO_F4:CALL UPLD R7,#00001000BLD P3,#00000010BCALL DELAY1LD P3,#00000000BRETUP:LD P3,#00000100B ; SEND SIGNAL TO MOTORLD P6,#11110000B ; LED UP DISPLAYCALL DELAY3LD P3,#00000000B ; STOP SENDING SIGNAL TO MOTORLD P6,#00000000B ; LED STOP DISPLAYRETDOWN:LD P3,#00001000B ; SEND SIGNAL TO MOTORLD P6,#00001111B ; LED DOWN DISPLAYCALL DELAY3LD P3,#00000000BLD P6,#00000000BRETERRORBEEP:LD P3,#00000010B ; BEEP TO SHOW ERRORCALL DELAY2LD P3,#00000000BJP LOOPDELAY3:LD R4, #90LP: CALL DELAY2DJNZ R4, LPRETDELAY2:LD R5, #50LP2 CALL DELAY1DJNZ R5, LP2RETDELAY1:LD R6,#0FFHLP3 DJNZ R6, LP3RETEND붙임 #2 . 프로젝트 제안서실험 프로젝트 제안서- 상하자동운반시스템 -1. 목 적우리가 만들려는 4층 상하자동운반시스템은 엘리베이터의 간단한 형태이며 각 층으로 물체를 이동시키는 기능을 가지며 상호작용을 통해 버튼을 누르는 요구에 대하여 움직인다. 비록 단순한 기능이지만 현대생활에 필수적인 엘리베이터의 동작원리에 대해 이해하며, 지금까지 배워온 KS88C0116을 이용하여 구현함으로써 강의시간을 통해 이론으로만 배워왔던 것들을 실제 응용할 수 있다. 또한 더 나아가 실제 엘리베이터의 기능으로 발전시켜 나갈 수 있을 것이다.2. 구 성상하자동운반시스템은 다음과 같은 요소들로 이루어진다.어셈블리 프로그램 → KS88C0116 → 버튼 입력 및 제어 → DC 감속모터 구동1) 버튼 - 킨다.