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 되어진다.

 

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

 

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

 

 

 

 

 

 

+ Recent posts