본문 바로가기

2학년/2-2)마이크로프로세서4

마프 ~10.10 코드 #include #include #include int main(void) { DDRA=0xFF; DDRB=0x00; while(1) { if(PINB & 0x80) {PORTA=0xFF;} else {PORTA=0x00;} } } #include #include void main(void) { //A포트에 LED, B포트에 스위치 DDRA=0xFF; //DDR=1이면 해당 포트 출력으로 사용한다 DDRB=0x00; //B포트의 모든 핀은 입력으로 사용한다 //포트 DDR 0: 입력, 1: 출력 PORTB = 0x00; //1: 내부 풀업저항 사용하겠다.B에 0x00하면 내부풀업저항 사용 안하겠다. /* portb는 끊어진 상태라 값이 다음으로 넘어가지는 않는데, 안에 값은 넣어버리면 위에 and게이트로.. 2022. 10. 11.
221005 #include #include void main(void) { //A포트에 LED, B포트에 스위치 DDRA=0xFF; //DDR=1이면 해당 포트 출력으로 사용한다 DDRB=0x00; //B포트의 모든 핀은 입력으로 사용한다 //포트 DDR 0: 입력, 1: 출력 PORTB = 0x00; //1: 내부 풀업저항 사용하겠다.B에 0x00하면 내부풀업저항 사용 안하겠다. /* portb는 끊어진 상태라 값이 다음으로 넘어가지는 않는데, 안에 값은 넣어버리면 위에 and게이트로만 입력이 되어서 내부 풀업저항 사용하겠다고 됨 (in port LED switch 실험. 10페이지정도? 이 때 PUD=1이 되면 걍 바로 내부풀업저항 disable됨, default = 0; 이 PUD비트는 53개의 GPIOㅣ핀과.. 2022. 10. 5.
마프01. #include #include void main(void) { //A포트에 LED, B포트에 스위치 DDRA=0xFF; //DDR=1이면 해당 포트 출력으로 사용한다 DDRB=0x00; //B포트의 모든 핀은 입력으로 사용한다 //포트 DDR 0: 입력, 1: 출력 PORTB = 0x00; //1: 내부 풀업저항 사용하겠다.B에 0x00하면 내부풀업저항 사용 안하겠다. /* portb는 끊어진 상태라 값이 다음으로 넘어가지는 않는데, 안에 값은 넣어버리면 위에 and게이트로만 입력이 되어서 내부 풀업저항 사용하겠다고 됨 (in port LED switch 실험. 10페이지정도? 이 때 PUD=1이 되면 걍 바로 내부풀업저항 disable됨, default = 0; 이 PUD비트는 53개의 GPIOㅣ핀과.. 2022. 10. 4.
CPU의 프로그램 실행 순서 (+CPU, ALU 컴퓨터는 CPU, Memory로 이루어져 있다. CPU는 코어라고 불리며, ALU(산술연산장치), Register, Control Unit 으로 이루어져 있다. CPU 에는 기계어로 이루어진 명령어가 들어가야 한다. (기계어: 1, 0으로 이루어진 언어) 기계어는 1. 산술연산(사칙연산) 2. 논리연산(AND, OR, NOT) 3. 데이터 이동(Data transfer) 4. 점프(branch) CPU = ALU + Register+etc... Memory 메모리에서 보낸 값을 CPU로 보내서 ALU가 계산을 하고, 다시 메모리에 덮어쓰기를 한다고 생각하면 된다. 이 때 메모리의 속도는 매우 느리다. (이유: 메모리 용량이 커야하는데, 따라서 고집적을 하지 못해 속도가 떨어진다) 따라서 CPU내의 ALU.. 2022. 9. 7.