View Single Post
Old 19-03-2009, 09:42 AM   #4
phamngocthanh87
Đệ tử 2 túi
 
Tham gia ngày: Jan 2009
Bài gửi: 29
:
anh ơi ! em đã thử mấy cái hàm đó và thấy nó hiện đúng ! khi chưa gửi kí tự từ trên visual . ví dụ em khai báo :
char str[]="12";
int16 y;
y=atol(str);
hien(y);
thì nó hiện đúng .
Nhưng khi em gửi từ trên máy tính xuống thì nó lại hiện sai . chương trình của em như sau :
Code:
#include  <16f877a.h>
#include <def_877a.h>
#include <ctype.h>
#fuses  HS,NOLVP,NOWDT,PUT
#use delay (clock=4000000)   // defind crystal = 4MHz
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <string.h>
#include <stdlib.h>
int16  MAP[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int16 t[2]={0x01,0x02};
void hien(int16 x)
   {
   int8 i;
   int8 a[2]={0};
   a[0]=x%10;
   a[1]=x/10;
   for(i=0;i<2;i++)
      {
      porta=t[i];
      portd=MAP[(a[i])];
      delay_ms(2);
      }
   }
void main()
   {
   char k[]="12";
   int16  y;
   trisd=0x00;
   trisa=0x00;
   porta=0x00;
   portd=0x00;
   while(true)
      {
      if(kbhit())
         {
         gets(k);
         puts(k);
         y=atol(k);
         }
         hien(y);
      }
   }
Anh xem hộ em gửi như vậy thì có vấn đề gì không ? cảm ơn anh trước nhé !

thay đổi nội dung bởi: namqn, 19-03-2009 lúc 03:42 PM. Lý do: định dạng code
phamngocthanh87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn