DUAL LOW VOLTAGEPOWER AMPLIFIER

 

 

 

DESCRIPTION
The UTC TDA2822 is a monolithic integrated audio amplifier
in a 8-Pin plastic dual in line package. It is designed for
portable cassette players and radios.

 

 

Operating Supply Voltage 1.8V ~ 12V

 

저전압 동작 OP-AMP 입니다! 간단한 5V 동작 오디오 앰프로 쓰일수 있습니다.

저전압이기때문에 간단하게 USB 전원으로도 충분한 성능을 보일수 있습니다.

 

 

 

 

 

 

TDA2822_low.pdf

 

A741, uA741Y

GENERAL-PURPOSE OPERATIONAL AMPLIFIERS

 


● Short-Circuit Protection

●  Offset-Voltage Null Capability

●  Large Common-Mode and Differential

     Voltage Ranges

●  No Frequency Compensation Required

●  Low Power Consumption

●  No Latch-Up

●  Designed to Be Interchangeable With

     Fairchild mA741

 


Description


The mA741 is a general-purpose operational amplifier featuring offset-voltage null capability. The high common-mode input voltage range and the absence of latch-up make the amplifier ideal for voltage-follower applications. The device is short-circuit protected and the internal frequency compensation ensures stability without external components. A low value potentiometer may be connected between the offset null inputs to null out the offset voltage as shown in Figure 2.

The mA741C is characterized for operation from 0°C to 70°C. The mA741I is characterized for operation from –40°C to 85°C.The mA741M is characterized for operation over the full military temperature range of –55°C to 125°C.

 

 

전자회로 실험시간에 한번씩 써보셨을거라 생각되는 굴러다니는 OP_AMP IC 입니다.^^




UA741.pdf


지금부터 다룰 부분은 C언어, C++언어와 중복된 부분이 많습니다.

중간중간 적절히 생략하겠습니다.

 

1.자바 프로그램 코드의 구조

자바프로그램 *.Java 는 반드시 1개 이상의 클래스를 가지고 있습니다. class

클래스를 작성할때는 아래의 순서에 맞게 선언합니다.

 

접근제어자, class키워드, 클래스명, { 클래스 내용 , }  순으로 선언합니다.

 

예시)  public class Test

         {

            내용

   }

 

public : 접근제어자, 클래스 선언 키워드.   - public 클래스는 파일명과 클래스명이 동일하다.

class

Test : 클래스명

 

 

이클립스에서는 설정을 변경하지 않으면 기본적으로 public 클래스로 작성되며 파일명도 클래스명과 동일하게 저장된다.

 

하나의 자바 파일은 여러개의 클래스를 가질수가 있다. public클래스는 한 파일에 하나만 올수가 있다. 일반적으로 여러개의 클래스가 자바파일에 포함된다면 보통 main() 메소드를 갖는 클래스를 public으로 지정한다.

 

클래스는 경우에 따라 클래스를 패키지(클래스의 집합체)에 참가시키거나, 다른 클래스를 inport 받을 수 있다.

클래스를 패키지에 참가시킬 때는 package문을 자바 파일의 가장 첫번째 줄에 기술해야 한다.

다른 클래스를 import 받을때는 import문을 사용해야 한다. - 패키지문 다음, 클래스 선언위에 기술해야함.

 

 

예시)

 

package dodo.test;    // dodo.test 라는 패키지 선언.  dodo\test  폴더안에 생성

 

import javax.swing.JPanel; 아래에 쓸 Tests 클래스에 필요한 JPanel 클래스를 import 함

 

public class Tests extends Jpanel   Tests 클래스영역이다. extends는 상속을 허용하는 키워드이다.

{

 

}

 

 

키워드는 C언어로 따지면 내장된 시스템명령어(예약어)이다. 예를 들면 printf는 변수이름으로 쓸수 없는것 처럼 말이다.

위의 import 개념과 extends 개념이 위의 빨갛게 써놓은 2줄의 의미이다. 잘알아놓자.

 

1.2 멤버필드와 메소드

 

클래스는 멤버필드와 메소드를 가지는데 이들은 전역변수이다. (반드시 쓸 필요는 없다. 필요에 따라서)

 

멤버필드 : 멤버변수, 인스턴스변수, 프로퍼티라고 불리며 전역변수이다.

메소드 :  프로그램의 실행코드를 기술하는 공간. 클래스가 어떤 처리를 하려면 메소드를 선언한 후에 메소드 내에 그 처리를 기술한다.  (메소드라는건 지역이라는 의미이다. C언어에서의 지역변수변수 중괄호안을 의미한다!) 

 

예시)

public class Tests  //클래스 영역

{

int a;   //멤버필드

 

public String process(String ID)  //메소드 영역, process라는 메소드를 선언.

{

return ID;

}

 

}

 

즉, 자바에서 쓰이는 변주중에서 클래스의 멤버로 사용하는 전역변수가 멤버필드이다.

또한 메소드 내에서 선언되어서 사용하는 변수가 지역변수 또는 자동변수라고 한다.

만일, 지역변수와 멤버필드의 변수명이 같을경우에는 해당지역내에서는 지역변수가 우선권을 가진다. (C언어와 동일)

 

** 주석을 다는 방법**

C언어와 동일하다.

한줄주석 : //

한줄이상 주석 : /* 해당내용 기술 */

 

 

2. 자바 식별자와 키워드

 

자바 식별자 : 클래스명, 메소드명(C언에선 지역함수명), 멤버필드명(전역변수명), 지역변수(=자동변수) 등을 말한다.

자바 식별자는 길이의 제한이 X, 첫글자는 영문자나  _ 밑줄또는 $ 로 시작해야한다. 꼭 C언의 이름을 짓는규칙과 비슷하다.

(대소문자가 구별이 되기때문에 주의하자)

 

※ 클래스명 작성 규칙

클래스명의 첫글자는 대문자로 작성하며 나머지는 소문자로 한다. 만약 단어가 구별이 되면 다음단어의 첫글자는 대문자로 한다.

예시) AppleKim, IphoneApp

 

※ 메소드명, 멤버필드명, 지역변수명 작성 규칙

클래스명과는 반대로 첫글자는 소문자로 작성하고, 다음 단어가 구별되면 첫글자는 대문자로 한다.

 

머..위와 같이 꼭 할필요는 없지만..세상은 보이지 않는 규칙이 지켜질 때 사회가 더 아름답지 않은가?..생각이 든다.ㅋㅋ

(참고로 자바는 유니코드로 이루어져 있기때문에 한글도 사용이 가능하지만..되도록 쓰지 않는 것을 추천한다.)

 

 

2.1 키워드 (예약어)

 

 자바또한 C언어처럼 프로그램에서 사용하는 예약어인 키워드가 존재한다. 따라서 이들은 자바 식별자의 이름으론 사용해선 안된다. 키워드의 예는 아래와 같다.

 

abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final,finally

float, for, goto, if, implements, import, instanceof, int, interface, long native, new, package, private, protected, public, return

short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while

 

 

 

3. 변수 및 자바의 데이터 타입

 

변수 파트는 C언어와 동일한 개념이라서 생략하고 다른개념들만 정리하겠다.

 

*이클립스에선 변수를 선언하고 사용하지 않으면 경고가 표시된다. (경고마크는 전등불에 느낌표가 있는 아이콘이다)

 

3.1 전역변수

 

"전역변수 = 멤버필드" 는 자동적으로 초기화되기때문에 사용전 초기값을 할당하지 않아도 에러가 생기지 않는다.

 

byte, short, int, long, double, char 타입은 = 0으로 초기화

boolean 타입 = false

String 타입 = null  로 초기화 된다.

 

그리고 전역변수는 접근제어자가 붙는다. 왜나하면 멤버필드는 다른 클래스에서 참조할수 있기 때문에 그 접근영역을 설정해야 한다. 자세한 내용은 후에..다시..

 

예시)

 

package test1;

 

public class Tests   //Tests 라는 클래스를 선언함

{

static boolean x;    //멤버필드로 불리언형의 x를 선언 (초기화 하지 않았지만 false로 초기화됨)

 

public static void main(String [] args) //main() 메소드 선언

{

boolean y = true;   //지역변수 y선언하고 초기화를 참으로

 

System.out.println("x = " + x);

System.out.println("x = " + y);

}

}

 

결과값은 x = false , y = true 로 나오게 된다.

 

이 예시를 통하여 멤버필드는 기본값이 자동 초기화 된다는것을 알수 있다.

도한 static main() 메소드에서 객체의 레퍼런스 없이 멤버 필드값에 접근하려면 해당 멤버가 static 변수이어야 한다는 사실도 알수있다. static 으로 선언된 메소드에서는 static으로 선언된 멤버필드나 메소드에만 접근 할수가 있다. - 후에 다시 설명.

 

 

3.2 기본 데이터 타입

 

1) 데이터의 타입은 기본데이터 타입과 레퍼런스 데이터 타입이 존재한다.

 

기본데이터 타입 : byte, short, int, long  - 정수타입

                         float, double             - 실수타입

                         char                        - 문자타입

                         boolean                   -  불  타입

 

* 캐스트 연산 (강제형변환) 은 C언어와 동일하다.   바꾸고자하는 변수앞에 (자료형) 을 붙이면 된다.

 예시 )    int value1 = 3;

             float value2 =  (float)value / 0.2;

 

만약 캐스트연산을 하지 않았을 경우에는 어떻게 되는가?

데이터 타입 큰쪽으로 자동 형 변환이 된다. 이를 = 프로모션(promotion)이라고 한다.

예를 들어 int타입 + float타입의 연산을 할 경우에는 float타입으로 통홥되어서 연산이 이루어진다.

 

문자 데이터타입 char은 16bit 유니코드로 표현이되며 C언어와는 다르게 문자 1개를 표현하기 위해서 2byte의 공간이 필요하다.

만약 문자 데이터 값에 직접 변수를 대입할때는 char value = 'A' 와 같이 작은따움표로 표현해야한다.

 

불리언 타입은 C언어와 동일하게 bit 타입으로써 1bit의 크기를 가진다.

 

 

2)레퍼런스 데이터 타입

 

객체가 있는 곳의 주소를 저장하는 데이터 타입이다. 이는  C언의 포인터와 동일한 개념이며, 자바에서는 포인터가 없기때문에 객체의 레퍼런스로 생성된 객체를 통해 접근하는 방법을 사용한다. 레퍼런스 타입은 객체타입이라고도 말한다. = 클래스타입

 

예시)

public class TestRef

{

int a= 10; // 기본타입의 변수 a를 선언후 초기화

Val aa; // Val 클래스 타입의 레퍼런스 변수 aa를 선언

 

aa = new Val(); // Val 클래스의 객체를 생성하여 객체의 주소를 aa 변수에 저장함.

}                          // 레퍼런스 타입의 변수는 new 키워드를 사용해서 객체를 생성하기 전까지는 메모리가 할당되지 않는다.

                          // 레퍼런스 변수의 기본값 = null

 

aa안의 값은 10이 아니라 ㅁ라는 객체가 저장된 장소의 메모리값이다.

 

1) String 클래스를 사용하여 문자열 변수 지정하기

 

문법 :  String 변수명; 으로 선언.


예시) int a = 10;

        String test1 = "TestT";

  String test2 = "TestT";


이때 TestT는 문자열은 문자열변수에 해당하는 만큼 2개가 생성되는것이 아니라 단 하나만 생성되며 동일한 주소의 문자열을

가리킨다. 이는 JVM내에 저장된다.


2) 연산자


C언어와 동일하므로 생소한 연산자만 정리하겠다. 


 -시프트 연산자

  <<왼쪽시프트 : 왼쪽으로 숫자를 이동한다. (곱하기2의 효과) 오른쪽의 빈곳은 0으로 채워진다.

  >>오른쪽시프트 : 오른쪽으로 숫자를 이동한다. (나누기2의 효과) 왼쪽의 빈곳은 0  (만약 부호가-이면 1로) 채워진다.

  >>> 오른쪽 시프트 : 위와 동일한 오른쪽 시프트연산자이나 빈곳은 무조건 0 으로 채워진다.


 -조건 연산자

 

 ? : 형태의 조건 연산자의 문법

   변수 = 조건식 ? 참일때값 : 거짓일때값

  

  s = (3 > 1) ? 5 : 6;   // 3이 1보다크면 참이면 5값이 변수a에 대입된다.



 -instanceof 연산자

 

  객체의 상속 관계 여부를 알아볼 때 사용하는 연산자이다. 상속 관계는 불리언 형태는 false(없다), true(있다) 값으로 리턴한다.




- '==' 연산자와 'equals()'  메소드의 비교

 

== 연산자는 두 변수의 값이 같은가를 비교함.

equals() 메소드는 두 객체의 내용이 같은가를 비교하마.








 





::: 자바 프로그램의 처리구조 :::

 

자바 프로그램은 설치된 컴퓨터의 OS (플랫폼)에 대해서 독립적이다.  - 바이트코드로 이루어져 있기 때문에.

이것은 컴퓨터상에서 직접 실행이 아닌 자바가상머신 (JVM)에 의해 실행되기 때문이다.

따라서 어느 OS (플랫폼)이든 자바 프로그램은 동일한 기반에서 똑같이 동작이 된다.

 

작성된 자바 소소코드는 (*.Java) 자바 컴파일러인 JAVAC 명령에 의해서 "바이트코드"로 이루어진 *.class 파일로 변환된다.

바이트코드는 JVM을 통해서 실행되며 자바 인터프리터인 JAVA명령어가 그 바이트 코드를 검사,판독한후에 JVM 자바가상머신에서

그 작업이 수행된다.

 

자바 가상머신(JVM)은 JIT(Just-In-Time) 컴파일러를 지원하기 때문에  C언어와 비교해도 손색이 없을 정도로 빨라졌다.

 

앞장에서 설명한 이클립스를 통해서 우리는 프로그램을 작성하기 때문에 위의 일련의 과정을 몰라도 되지만..그래도 일단은 알아두자. 요약하자면,

 

자바파일(*.Java)은 JAVAC 명령에의해 "바이트코드"(*.class)로 변환되고 JAVA명령에 의해 JVM에서 실행된다.

(이 두가지 명령 JAVA, JAVAC는 설치한 java폴더내의 jdk버전 폴더의 bin 폴더내에 존재한다.)

 

 

::: API Document의 사용 :::

 

자바는 라이브러리로 사용할수 있는 수많은 클래스를 가지고 있으며, 이들은 연관 클래스들을 그룹으로 묶어서 패키지 단위로 관리된다. 이런 그룹들을 모아서 자바 API로 제공한다. JAVA API = JAVA Application Programming Interface

 

 자바 API는 자바 프로그램의 모든 영역에 대해서 라이브러리 클래스를 제공하는데 예를 들면, 어떤 라이브러리는 프로그램의 작동에 필수요소이고 어떤것은 프로그램의 작성을 도와주는 등 이들의 내용과 스펙은 해당 라이브러리의 rt.jar 파일로 설명이 제공된다.

rt.jar 파일의 위치는 자바가 설치된 디렉토리의 \java\jdk1.7.0_04\jre\lib 폴더 내에 있다.

또한 Jar파일은 패쓰(환경변수)를 지정하지 않아도 JVM실행시 자동으로 불러와 진다.

 

자바에서 기본적으로 제공하는 패키지와 클래스, 인터페이스에 대한 내용과 설명은

                                                          C:\Program Files\Java\jdk1.7.0_04\docs\api\index.html 파일 열어서 참조하자.

(열어서 참조하게 되는 내용들은 어떤 메소드의 사용법을 알기 위해서 그 메소드가 가진 클래스를 참조해서 어떻게 사용해야 할지에 대한 설명들이다.)

 

* 자바 API에 있는 클래스 또는 인터페이스들은 우리가 작성하는 파일과는 다른폴더에 저장되어있다. 따라서 그것을 사용하기 위해서는 반드시 import문을 사용해야 한다

예시) import java.awt.*;  

        import javax.swing;  <--해당 패키지 모두나

        mport javax.swing.JOptionPane; <-- 해당 패키지의 특정 클래스명을 기술하면 된다.

        참고로 java.lang 패키지는 자동으로 import 되어진다.

 

패키지명은 패키지가 속해 있는 클래스들이 저장되어 있는 폴더구조와 동일하다. 참고하자.

 

* 패키지는 클래스들의 집합이라고 생각해도 무방하다.

 

 

 

 

 

 

1. JDK설치와 환경설정

2. 이클립스 설치

 

 

1.1 JDK란?

자바 언어를 개발한 "SUN Microsystem" 사는 자바 프로그램 개발을 위한 자발 개발환경인 JDK (Java Development Kit)를 무료료 제공한다. JDK는 1995년 최초로 공개한 시점에서 1.0버전이었으나 JDK1.2버전부터 SDK라고 불리우며 이는 JAVA 2 SDK라고 통상 J2SDK라고 지칭된다. 즉, JDK = SDK 이다.

 

그리고 자바 개발 환경은 사용자가 사용하려는 분야에 맞춰서 세가지 에디션중 하나를 선택하면 된다. 1)번글 참조.

세가지 에디션은 JAVA SE, EE, ME 이며 지금부터 다룰것은 데스크탑 PC에서 사용될 SE에디션을 사용할 것이다.

 

1.2-1 JDK 다운로드

http://www.oracle.com/technetwork/java/index.html

-해당 사이트로 들어가 "Java SE" 클릭 - Java SE 7u4 을 Download 클릭.

-Accept License Agreement    동의 후 - 해당 OS환경에 맞는 버전을 다운로드한다.

필자는 아직도 ㅜㅜ 윈도우XP를 쓰기때문에 "jdk-7u4-windows-i586"를 다운로드 하였다.

 

1.2-2 API Documnet 다운로드

http://www.oracle.com/technetwork/java/javase/downloads/index.html

-위의 JDK를 다운받고 아래의 주소로 다시 가서 "Additional Resources"의 Java SE 7 Documentation 를 Download 한다.

 

1.3 JDK 설치

익스플로러가 열려있다면 닫고  "jdk-7u4-windows-i586.exe" 를 실행한다. 이후에는 기다리고 NEXT-NEXT-NEXT-Finish..가 다다... -_-;..

 설치가 끝나면 아래와 같은창이 뜨고 

 

Close 를 누르면 익스플로러창이 하나 뜬다..머 해석해보면 계정을 만들어서 등록할래? 라고 묻는건데..그냥 닫기 누르면 JDK설치가 끝이난다 ^.^  (설치된 폴더는 디폴트에서 변경하지 않았다면 "C:\Program Files\Java"에 설치되었을것이다.)

 

그리고 이번에는 API Document를 설치하자.

먼저 다운받아놓은 "jdk-7u4-apidocs.zip" 파일의 압축을 풀자. 그럼 Docs 폴더만 하나 덩그러니 보인다.

그럼 이 폴더를 JDK가 설치된 폴더인 "C:\Program Files\Java\jdk1.7.0_04" 안에다 이동해 놓자.

 

C:\Program Files\Java 폴더 안에는

jdk1.7.0_04 폴더  <--여기에 Docs 폴더를 이동.

jre7 폴더

이렇게 구성될 것이다. 이것으로 설치가 모두 끝난다.

 

1.4 환경변수 설정

환경변수 설정은 컴퓨터가 자바 컴파일 명령인 Javac.exe 와 실행명령인 java.exe 를 항상 사용할수 있도록 인식시키는 것이다.

또한 자바 기반의 다른 프로그램들도 제대로 실행되기 위해서 이 과정이 꼭 필요하다.

 

환경변수명 

변수 값 

 PATH

;C:\Program Files\Java\jdk1.7.0_04\bin; 

 CLASSPATH

 .;C:\Program Files\Java\jdk1.7.0_04\lib\tools.jar

 JAVA_HOME

 C:\Program Files\Java\jdk1.7.0_04

 

이제 위의 변수값들을 제어판-시스템- 환경변수에 입력시켜보자.

 

[시작]-[제어판]-[시스템]클릭 - 시스템등록정보의 '고급'탭의 환경변수 클릭.

 

 

 

 

                              * 헛..배경화면에..아이유님이 짤려서 나오셨네요..ㅠㅠ  *

 

 

 

 

상위 메뉴에서 사용자변수(U)중 변수명이 PATH를 "편집"누르고 ;C:\Program Files\Java\jdk1.7.0_04\bin; 를 입력합니다. 세미콜론(;)은 이미 패쓰가 걸려있다면 앞에 넣어주고 마지막에도 넣어줍니다.

동일하게  "CLASSPATH" , "JAVA_HOME" 도 편집을 누르고 위의 표의 해당 변수값을 입력해줍니다.

만약  "CLASSPATH" , "JAVA_HOME" 이 목록에 없다면 "새로만들기"를 눌러서 추가해서 넣어주면 됩니다 ^^

 

그럼 이제 JDK가 올바르게 설치되었는지 확인해 보겠습니다.

[시작]-[실행]에 들어가셔서 "cmd"라고 입력하시고 엔터.

아래와 같이 c:\ 에서 javac 와 java 명령을 실행하시면 옵션에 대한 설명이 쭉~ 나와주면 정상적으로 환경변수 설정이 된것입니다.

 

 

 

 

2. 이클립스 설치

 

이제 프로그램을 코딩하기 위한 개발툴인 "이클립스"를 설치할 차례이다!  Eclipse는 범용 개발툴로 자바,JSP,안드로이드프로그래밍,C/C++,PHP등 프로그래밍 코드를 작성할수가 있다. 또한 무료이다 ^.^!!! 그러므로 한번 깔아보자!! 어짜피 무료니깐!

(하지만 돈을 지불해야하는 플러그인도 존재한다.)

현재 이클립스는 CPL (Common Public License)이라는 라이센스로 배포되고 있다. CPL은 아래와 같은 특징을 지닌다

 

[이클립스 플러그인을 만들거나, 어떤 소프트웨어를 개발하기 위해 이클립스를 사용한 개발자는 CPL에 따라 자신이 사용하거나 수정한 모든 이클립스 코드를 공개해야 한다. 그러나 자신이 직접 개발하여 추가한 부분에 대해서는 소스를 공개하지 않을 수도 있고 유료화 할 수도 있다. ]

 

2.1 이클립스 다운로드

 

먼저 이클립스를 다운받겠습니다. (아..갑자기오는 멘붕..존댓말과 반말을 섞어서 포스팅 중이었군요..ㅠㅠ;;..)

http://www.eclipse.org/downloads/

이클립스도 무엇을 개발하는가에 따라서 해당 항목이 나뉘어 지는데 우리는 JAVA SE를 통해서 PC환경에서 자바개발이기 때문에

Eclipse Classic항목을 클릭하여 "Eclipse downloads - mirror selection" 를 다운로드 합니다.

 

 

캡쳐 화면화질이 저질이군요..ㅠㅠ

암튼 이클립스 클래식을 클릭하여 본인의 OS에 맞는 제품을 다운 받으시면 되겠습니다.

 

 

 

 

2.2 이클립스 설치 및 실행하기

 

이클립스는 압축을 해제하는 것으로도 프로그램이 설치되는 구조이다. 따라서 여러개의 버전의 이클립스를 갖고있다면 서로 독립적으로 운영되는 구조이다. 필요하다면 여러개를 설치해서 사용해도 무방하다.

 

압축을 풀게되면 eclipse 폴더만 하나 보일텐데 해당 폴더를 원하는 디렉토리에 가져다 놓고 단축아이콘을 만들놓고 앞으로 쓰면 된다.

이클립스를 실행하면 아래와 같은 이쁜 보라돌이 창이 나타난다 ^^

 

 

 

잠시후 작업공간을 설정하라는 말이 나오는데 do not ask again은 체크하진 말자~ 다음에 작업공간을 바꿔야 할 날이 분명히 올것이기 때문이다~ 원하는 폴더명을 입력했다면 OK~! 실행이 완료 되면 아래의 창이 나타날것이다.

 

 

프로그램을 작성하려면 오른쪽 상단의 Workbench 를 클릭하면 된다.

나머지 메뉴들은 왼쪽부터 개요설명, 사용법, 샘플코드예제, 추가된 기능소개 등이 있는데.. 우린 바쁜 사람들이니 바로 "Workbench"를 클릭하자! ~~

 

 

이제 다음 순서는 뻔하다~ 프로그랭코딩을 해보신 분들이라면 자연스레 File로 손이 갈것이다. Java project 를 생성하자.

 

 

 

Project Name 을 입력하고  아래의 Layout창의 미리 선택된 설정은 

원본소스 파일인 *.Java 와 컴파일하면 생성되는 파일인 *.class파일을 따로 관리하겠다고 설정하는 것이다.

↓↓↓ NEXT 클릭 ↓↓↓

 

빨간색 사각형의 설명은 차례대로..

1  본 소스파일 *.Java 파일은 하위항목 [src]에서 관리함.

2  Allow output 머시기 설정체크 : 생성되는 모든 파일은 소스폴더안에 집어 넣어라.

3  컴파일후 생성되는 실행파일인 *.class파일은 [bin]항목에서 관리하겠다.  를 의미함.

Finish.

 

프로젝트가 생성되었다면 이번에는 만들어놓은 프로젝트 내에 자바 클래스를 생성해보자.

[src] 폴터를 선택한후 MRB 를 클릭.

(MRB는 마우스 우측 버튼 -_-;이라고 필자가 만든 말이다..;;)

 

 

클래스를 클릭하면 ↓ 아래의 창이 생성된다.

 

패키지 명을 입력하고, 클래스명을 입력하자.

주의할점은 클래스명은 반드시 첫글자를 "대문자"로 입력해야한다!

Which method stubs would you like to create? 항목에서는

첫번째 : main() method가 존재하는 클래스의 경우 반드시 이 항목을 체크해야한다.

세번째 : 상속관계가 있을 경우 사용된다.

항목을 선택하고 Finish를 누르자.

 

 그럼 이제 아래와 같은 작업환경창이 나타난다. 이제 우리는 tt1 이라는 생성된 패키지안에

public형 Testclass라는 클래스에 대해서 코딩할수 있게 되었다. 후에 저장할때 파일명은 클래스명과 동일하게 저장해야한다.

물론 이클립스가 알아서 해주겠지만 반드시 대소문자도 동일하게 파일명 = 클래스명 이라는것을 명심하자.

 

이로써 간단하게 프로젝트생성 까지 알아봤다 ^^

 

■ 자바의 특징은?

 

1.자바는 단순하다.

2.자바는 객체지향적이다.

  : 자바의 모든 프로그램의 요스들은 객체로 표현이 된다. 이는 캡슐화, 상속, 다형성의 특징을 가진다.

3.분산환경에 적합하다.

  : 인터넷 또는 네트워크를 통하여 효율적으로 수행되기에 적합하다. (RMI기능의 라이브러리 제공)

4. 인터프리터에 의해 실행된다.

  : 자바는 자바가상 기계에서 실행될수 있는 바이트코드로 번역되며 바이트코드 해석기가 있는 어떠한 컴퓨터에서든 실행이 가능.

    즉, 자바프로그램의 소스코드는 컴파일러를 통해서 "바이트코드"라 불리는 중간형태의 코드로 컴파일되며 이것은 자바런타임환

    경 이라 불리는 인터프리터를 통해서 실행됩니다.

  

  사용자가 작성한 자바 프로그램 -> 자바컴파일러 (자바 바이트코드로 변환) -> 자바 가상머신으로 실행 (기계코드로 불러들임)

 

[인터프리트 언어]

프로그램을 실행할때 한 줄씩 번역하면서 실행하는 언어를 의미합니다.

이 언어는 배우기가 쉽고 쓰기가 쉽다. 하지만 한줄씩 쓸때마다 번역하기때문에 수행시간이 많이 걸린다는 단점을 가진다.

인터프리트 언어의 반대언어는 컴파일 언어이다.

 

5. 자바는 높은 신뢰성을 가진다.

 : 포인터가 없다. 가비지 콜렉션수행. 사전 오류방지.

 

6. 구조 중립적, 높은 이식성

 : 자바 가상기계에서 실행되는 바이트코드를 사용함으로써 특정 컴퓨터에 종속되지 않는다.

   즉, 운영체제를 구분하지 않고 독립적인 플랫폼을 가진다.

 

7. 높은 성능 제공

 : 인터프리터에 의해 효율적으로 수행될 수 있도록 설계되었다.

  JIT (Just-in-Time)컴파일러를 통하여 기계어 코드로 변환하여 실행도 가능함.

  자바 바이트코드 생성시 레지스터할당과 최적화를 수행하기 때문에 효율적인 바이트코드를 생성한다.

 

8. 멀리스레드 지원

 : (스레드 : 독립적으로 수행될 수 있는 작은 프로그램 단위)

 

9. 동적인 수행이 가능

 : 라이브러리의 변화를 곧바로 적용할수 있다.

 

 

■ 자바 플랫폼의 구성요소

 

 *플랫폼 : 프로그램이 실행 될 수있는 환경을 말하며, 일반적인 의미에선 하드웨어와 하드웨어를 제어하는 운영체제를 말한다.

 

 <넓은 의미의 자바플랫폼의 구조>

 - 자바프로그램 

 - 자바 플랫폼(제공되는 소프웨어를 의미) : 자바 API + 자바 가상기계 (JVM)

 - 운영체제 (OS)

 - 하드웨어 플랫폼

 

이제 알아봐야되는 내용은 자바플랫폼 구조에서의 소프웨어적인 부분의 플랫폼 이다.

 

1)자바 가상기계

 

JVM은 물리적인 실제 기계 장치가 아니라 추상적인 장치로 가상의 기계처럼 구현된 소프웨어을 말한다.

(각종 자바 명령어와 레지스터 집합, 스택,힙,메소드 영역등으로 구성됩니다.)

이 JVM은 자바소스 컴파일 후에 생성되는 자바 바이트코드를 기계어로 사용하여 실행하는 역할을 한다.

 

2) 자바 API

 

자바 API는 자바 개발환경과 실행환경에서 거대한 클래스 라이브러리를 뜻함.

서로 관련된 기능을 클래스 단위로 묶어 놓고 유사한 성격을 가진 클래스들을 패키지 단위로 제공한다.

앞으로 패키지 단위로 표현을 하게 될것이고 J2SDK 8 버전의 경우 몇백여개가 된다.

주요 API 패키지를 소개하면 아래와 같다.

 

참조사이트 : http://docs.oracle.com/javase/6/docs/api/

 

java.applet : 애플릿 작성에 필요한 기능을 모아놓은 패키지. 웹브라우저에서 실햄함.

java.awt : GUI작성 관련 패키지. Swing패키지와 함께 자바 GUI애플리케이션 작성시 사용함. 버튼, 텍스트필드, 메뉴, 이벤트제공

java.io : 자바 입출력 기능 관련 패키지. 표준 입출력이나, 파일,버퍼의 입출력기능을 제공.

java.lang : 자바 언어의 기초적인 사항을 정의한 클래스 관련 패키지. 클래스,문자열,시스템관련 등 빈번히 사용하는 기능을 구현한

               클래스

java.net : 자바의 네트워크 관련 패키지. TCP, UDP 관련 소켓 네트워크를 제공.

javax.swing : Awt패키지와 더불어 자바 GUI 애플리케이션 기능을 구현한 패키지. awt보다 융통성있는 컴포넌트를 제공함.

java.util : 유틸리티성 패키지. 날짜표현이나 콜렉션 프레임워크등 여러 자료형을 하나로 취급하는 콜렉션 관련기능을 제공함.

 

자 그럼. 이러한 자바 플랫폼(소프트웨어적인부분)은 사용분야에 따라서 그 기능이 달라져야 한다. 그러면  JVM이나 API도 다를것이다. 아래의 3가지 영역은 알아 놓자.

 

▶JAVA SE

자바의 핵심적이며 표준이 되는 플랫폼.

적용분야 - 일반적인 데스크톱 컴퓨터.

 

▶JAVA ME

다양한 소형기기와 임베디드 기기에서 사용되는 플랫폼.

적용분야 - 핸드폰,PDA, 셋톱박스

 

▶JAVA EE

자바 서버측에서 사용되는 플랫폼.

적용분야 - 웹 서버상에서 실행되는 응용프로그램 구현 등 서버용 컴퓨터 구현에 적용됨

 

 

 

■ 자바의 이용분야와 프로그램

 

 

1.웹분야

 -애플릿(Applet) : 프로그램을 전송하여 접속한 사람의 컴퓨터에서 프로그램이 실행되도록 하는 기술.

  ex) 웹상에서 채팅이나 주식관련 프로그램

-서블릿(Servlet) : 웹 서버 환경에서 실행되는 기술로 서블릿과 JSP (페이지 아래 주석참고)

  ex) 웹상의 게시판이나 자료실, 쇼핑몰

 

2.모바일 분야

 -미들릿(Midlet) : 무선 환경하의 모바일 기기상에서 실행한 자바 프로그램

 

3.일반응용분야

 -자바 애플리케이션 : 자바로 구현한 독립적인 프로그램을 의미한다.

 

 

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓더 알아두기〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

 

JSP(Java Server Page) 란 무엇인가?

    자바를 서버환경에서 사용하는 스크립트 방식의 언어로 단일 스레드로 클라이언트의 요청에 서비스한다. 요청이 있을 때마다 프로세스를 생성하는 기존의 CGI와는 달리 하나의 메모리를 공유하면서 서비스되는 원리는 서버 측에 부하를 줄여주며, JSP 내부에는 보여주는 코드만 작성하고, 직접 작업하는 부분은 자바 빈으로 구성하여 분리 할 수 있다. 이것은 서로 영향을 주지 않고 수정할 수 있는 장점을 가지고 있으며, JAVA의 장점인 재사용성을 높일 수 있다.

 

JSP 동작 원리

*  URL

→ DNS서버

→ 웹 서버(JSP 페이지요청)

→ 웹 서버는 *.jsp 로 들어온 요청에 대해서 JSP 컨테이너로 전송

→ JSP 파일 파싱

→ 서블릿 생성

→ 생성된 서블릿 컴파일

→ 컴파일 된 클래스 파일을 메모리에 적재

→ HTML 형태인 응답을 사용자에게 전송

→사용자의 브라우저에서 HTML 실행

 

 

 

 

 

 

 

 

 

소자의 이름에는 그 소자의 특성과 기능(?) 등이 숨어있답니다.

 

NTC-10KD-5J

 

NTC : Negative를 의미합니다. 온도가 올라갈수록 저항값이 낮아진다는걸 의미하죠

10KD : 기준온도(25도)에서 저항값이 10K옴이라는 뜻입니다.

5J : 저항값의 오차율이 +,-5%를 의미한다는 말입니다.

 

개념 : MCU에서 (현재기준은 ATmega128로 설명) 값을 읽을때는 0,1밖에 인식을 하지 못합니다.

         그래서 ADC를 사용합니다.아래의 회로에서는 " 입력전압값 = [ RT1 / (R4+RT1) ]*VCC " 을 읽습니다.

         자세한 내용은 "아무도 가르쳐주지 않는" 파트를 참고해주세요.

 

온도센서의 경우 아래의 회로도를 참고해주세요.

 

 

 

 

 

10KD-5J RT.pdfNTC-10KD-5J R값.txtNTC-10KD-5J.pdf


The LM386 is a power amplifier designed for use in low voltage
consumer applications. The gain is internally set to 20 to
keep external part count low, but the addition of an external
resistor and capacitor between pins 1 and 8 will increase the
gain to any value up to 200.
The inputs are ground referenced while the output is automatically
biased to one half the supply voltage. The quiescent
power drain is only 24 milliwatts when operating from a

 


6 volt supply, making the LM386 ideal for battery operation.

저전압 스피커설계시 주로 사용하는 Amp입니다 ^^

나중에 USB전원으로 동작하는 관련회로도도 포스팅해보겠습니다~




LM386.pdf

 

8-bit Microcontroller  with 128K Bytes In-System Programmable Flash
ATmega128 , ATmega128L


첨부파일 참조.



atmega128l-datasheet.pdf


출처 :  나.


ATmega128을 사용하기위한 기본회로도 구성입니다~ 물론 LED는 제외하셔도 됩니다!

주의 하실부분은 ISP를 무엇을 사용하는가에 따라서 커넥터의 모양이 바뀔거 같네요~
저는 아래의 몰에서 구입했습니다!


 http://www.avrmall.com/ishop/goods_detail.php?goodsIdx=2739           
 USBISP V3.0 38,500원

ISP의 6개핀은 각각 ATmega128과 연결이 됩니다. ATmega시리즈중에서 유일하게 128만 MOSI,MISO가 2,3번 RX,TX핀에 연결이 되기때문에 기본 하드웨어 설계시 주의하셔야 합니다.

크리스탈(Y1)은 8Mhz를 사용하였으며 (최대 16Mhz까지 가능합니다) ATmega128A는 ATmega128과 L의 통합형이라 생각하세요
22PF의 세라믹커패시터를 연결해줬습니다.

RESET은 간단히 스위치와 저항으로만 구성하였습니다.
회로에는 표기되어있지 않는데 63번 GND핀도 GND에 연결해주세요.



 

                                        (제작한 회로입니다.) 커넥터 몇개는 다른 테스트때문에 연결한겁니다^^;
                      


+ Recent posts