hi các PRO! gấp gấp gấp....hi
Mình là gà vừa mới mày mò nghịch con 89c51,52
Hiện nay mình đang làm đề tài thực hiện việc tự động mở cửa dùng con vđk này
nhưng code cho vdk của mình còn kém quá. Bài của mình là khi mình truyền 1 kí tự 'A' qua cổng COM thì vđk sẽ nhận tín hiệu này và thực hiện mở cửa, nhờ các bạn check giúp mình xem code của mình như thế này tại sao lại không chạy được. Cảm ơn các PRO.
#include<reg51.h>
#include<stdio.h>
#include<lcd4bit.h>
unsigned char ch;
void delay(int i)
{while(i){i--;}}
void delayms(int i)
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<1000;k++);
}
void SetupSerial()
{
SCON = 0x52; /* Che do 1: 8-bit UART, cho phep truyen */
TMOD = 0x20; /* timer 1 che do 2: 8-Bit tu dong nap lai. */
TH1 = 0xfd ; /* toc do 9600 baud */
TL1 = 0xfd ;
TI = 0; /* co ngat nha^n.=0*/
RI=1; /* co ngat' truye^n =0*/
TR1 = 1; /* timer 1 run */
ES =1; /* cho phep ngat noi tiep */
}
//===========================
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
char ch;
if(TI)
{
TI=0;
ch='A';
// ch=SBUF;
SBUF=ch;
}
}
void close()
{
int i;ch=0;
for(i=0;i<10;i++)
{
P1=0x66;delay(1000);
P1=0x33;delay(1000);
P1=0x99;delay(1000);
P1=0xCC;delay(1000);
}
}
void open()
{
int i;ch=0;
for(i=0;i<10;i++){
P1=0x99;delay(1000);
P1=0x33;delay(1000);
P1=0x66;delay(1000);
P1=0xCC;delay(1000);
}
}
void main()
{
SetupSerial(); //Khoi tao cac thong so cho truyen thong noi tiep
EA = 1; //Cho phep ngat nhung chi? có ngat noi tiep duoc dung trong code nay
LCD_Init();
LCD_Position(0,0);
LCD_String("waiting");
ch=0;
while(1)
{
if(ch == 65){ //88 la ma~ DEC cua chu*~ X
open();
delay(1000000);
close();
}
TI=1;
}
}
Mình là gà vừa mới mày mò nghịch con 89c51,52
Hiện nay mình đang làm đề tài thực hiện việc tự động mở cửa dùng con vđk này
nhưng code cho vdk của mình còn kém quá. Bài của mình là khi mình truyền 1 kí tự 'A' qua cổng COM thì vđk sẽ nhận tín hiệu này và thực hiện mở cửa, nhờ các bạn check giúp mình xem code của mình như thế này tại sao lại không chạy được. Cảm ơn các PRO.
#include<reg51.h>
#include<stdio.h>
#include<lcd4bit.h>
unsigned char ch;
void delay(int i)
{while(i){i--;}}
void delayms(int i)
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<1000;k++);
}
void SetupSerial()
{
SCON = 0x52; /* Che do 1: 8-bit UART, cho phep truyen */
TMOD = 0x20; /* timer 1 che do 2: 8-Bit tu dong nap lai. */
TH1 = 0xfd ; /* toc do 9600 baud */
TL1 = 0xfd ;
TI = 0; /* co ngat nha^n.=0*/
RI=1; /* co ngat' truye^n =0*/
TR1 = 1; /* timer 1 run */
ES =1; /* cho phep ngat noi tiep */
}
//===========================
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
char ch;
if(TI)
{
TI=0;
ch='A';
// ch=SBUF;
SBUF=ch;
}
}
void close()
{
int i;ch=0;
for(i=0;i<10;i++)
{
P1=0x66;delay(1000);
P1=0x33;delay(1000);
P1=0x99;delay(1000);
P1=0xCC;delay(1000);
}
}
void open()
{
int i;ch=0;
for(i=0;i<10;i++){
P1=0x99;delay(1000);
P1=0x33;delay(1000);
P1=0x66;delay(1000);
P1=0xCC;delay(1000);
}
}
void main()
{
SetupSerial(); //Khoi tao cac thong so cho truyen thong noi tiep
EA = 1; //Cho phep ngat nhung chi? có ngat noi tiep duoc dung trong code nay
LCD_Init();
LCD_Position(0,0);
LCD_String("waiting");
ch=0;
while(1)
{
if(ch == 65){ //88 la ma~ DEC cua chu*~ X
open();
delay(1000000);
close();
}
TI=1;
}
}
Comment