8051 마이크로컨트롤러 타이머(timer)와 인터럽트(interrupt) 코딩 및 시뮬레이션
- 최초 등록일
- 2011.05.28
- 최종 저작일
- 2011.05
- 10페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
1. Timer를 이용하여 1초마다(혹은 edsim에서 대기 시간이 너무 길면 적당한 값으로 수정) Keypad를 scan 하는 routine을 작성하고Keypad가 눌러진 경우, 이를 UART를 통해서 serial port 창에 display 하라.
2. UART에서 숫자를 입력받아서 해당 LED를 on/off 시키는 routine을 작성하라.예를 들어 3번이 눌러지면 3번째 LED를 on, 다시 입력되면 그 LED를 off 하는식으로 8개의 LED 중 임의의 LED가 on/off 되게 routine을 작성하라.
----------------------------[C-code]--------------------------------
#include
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
sbit led6=P1^6;
sbit led7=P1^7;
void main(void)
{
unsigned char Num;
Num=0; // Data input mode
TMOD=0x20; // timer 1, mode 2, auto-reload
TH1=-6; // 4800 baud
SCON=0x50; // 8bit, 1 stop, REN enabled
TR1=1; // timer1 start
while(1)
{
while(RI==0); //wait to recieve
TR1=0; //timer1 stop
RI=0; //clear
Num=SBUF; //save value
if(Num==0x30)
led0=~led0;
else if(Num==0x31)
led1=~led1;
else if(Num==0x32)
led2=~led2;
else if(Num==0x33)
led3=~led3;
else if(Num==0x34)
led4=~led4;
else if(Num==0x35)
led5=~led5;
else if(Num==0x36)
목차
없음
본문내용
2. UART에서 숫자를 입력받아서 해당 LED를 on/off 시키는 routine을 작성하라.예를 들어 3번이 눌러지면 3번째 LED를 on, 다시 입력되면 그 LED를 off 하는식으로 8개의 LED 중 임의의 LED가 on/off 되게 routine을 작성하라.
----------------------------[C-code]--------------------------------
#include <reg51.h>
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
sbit led6=P1^6;
sbit led7=P1^7;
void main(void)
{
unsigned char Num;
Num=0; // Data input mode
TMOD=0x20; // timer 1, mode 2, auto-reload
TH1=-6; // 4800 baud
SCON=0x50; // 8bit, 1 stop, REN enabled
TR1=1; // timer1 start
while(1)
{
while(RI==0); //wait to recieve
TR1=0; //timer1 stop
RI=0; //clear
Num=SBUF; //save value
if(Num==0x30)
led0=~led0;
else if(Num==0x31)
led1=~led1;
else if(Num==0x32)
led2=~led2;
else if(Num==0x33)
led3=~led3;
else if(Num==0x34)
led4=~led4;
else if(Num==0x35)
led5=~led5;
else if(Num==0x36)
참고 자료
없음