Thảo luận Nội dung các video học PIC16F887 online

vanduyet

Học sinh trung cấp
#42
Tất cả các phần từ led đơn đến LCD chỉ là IO.
Em cứ làm đi, nếu có thời gian anh sẽ phụ thêm cho :)
anh ơi giải thích giúp em mấy cái lệnh về lịch vạn niên này với ạ hi
Mã:
void chuyenduongam(int ngay1,int thang1, int nam1) // chuong trinh chuyen ngay duong sang ngay am
{
  int n_am_dau, t_am_dau, n_duong;
  switch(nam1)
  {
      case 10:
      {
        n_am_dau = nam10[(thang1-1)*3]; t_am_dau = nam10[(thang1-1)*3+1]; n_duong = nam10[(thang1-1)*3+2];
        break;
      }
      case 11:
      {
        n_am_dau = nam11[(thang1-1)*3]; t_am_dau = nam11[(thang1-1)*3+1]; n_duong = nam11[(thang1-1)*3+2];
        break;
      }
      case 12:
      {
        n_am_dau = nam12[(thang1-1)*3]; t_am_dau = nam12[(thang1-1)*3+1]; n_duong = nam12[(thang1-1)*3+2];
        break;
      }
      case 13:
      {
        n_am_dau = nam13[(thang1-1)*3]; t_am_dau = nam13[(thang1-1)*3+1]; n_duong = nam13[(thang1-1)*3+2];
        break;
      }
      case 14:
      {
        n_am_dau = nam14[(thang1-1)*3]; t_am_dau = nam14[(thang1-1)*3+1]; n_duong = nam14[(thang1-1)*3+2];
        break;
      }
      case 15:
      {
        n_am_dau = nam15[(thang1-1)*3]; t_am_dau = nam15[(thang1-1)*3+1]; n_duong = nam15[(thang1-1)*3+2];
        break;
      }
      case 16:
      {
        n_am_dau = nam16[(thang1-1)*3]; t_am_dau = nam16[(thang1-1)*3+1]; n_duong = nam16[(thang1-1)*3+2];
        break;
      }
      case 17:
      {
        n_am_dau = nam17[(thang1-1)*3]; t_am_dau = nam17[(thang1-1)*3+1]; n_duong = nam17[(thang1-1)*3+2];
        break;
      }
      case 18:
      {
        n_am_dau = nam18[(thang1-1)*3]; t_am_dau = nam18[(thang1-1)*3+1]; n_duong = nam18[(thang1-1)*3+2];
        break;
      }
      case 19:
      {
        n_am_dau = nam19[(thang1-1)*3]; t_am_dau = nam19[(thang1-1)*3+1]; n_duong = nam19[(thang1-1)*3+2];
        break;
      }
      case 20:
      {
        n_am_dau = nam20[(thang1-1)*3]; t_am_dau = nam20[(thang1-1)*3+1]; n_duong = nam20[(thang1-1)*3+2];
        break;
      }
  }
  if( ngay1 < n_duong ) { ngayam = ngay1 + n_am_dau - 1; if(t_am_dau>12) thangam = t_am_dau-100; else thangam = t_am_dau; }
  else { ngayam = (ngay1+1) - n_duong; if(t_am_dau>12) thangam = t_am_dau-100; else { if(t_am_dau==12) thangam = 1; else thangam = t_am_dau + 1; } }
}
rồi cái này nữa ạ:
void hienthi(int m)
{  int j =0;

  while(j<15)
  {
      if(m==1) portb=255; else portb=so[h/10]; l1 = 0; delay_us(100); l1 = 1;
      if(m==1) portb=255; else portb=so[h%10]; l2 = 0; delay_us(100); l2 =1;
      if(m==2) portb=255; else portb=so[p/10]; l3 = 0; delay_us(100); l3 =1;
      if(m==2) portb=255; else portb=so[p%10]; l4 = 0; delay_us(100); l4 =1;
      if(m==3) portb=255; else portb=so[g/10]; l5 = 0; delay_us(100); l5 =1;
      if(m==3) portb=255; else portb=so[g%10]; l6 = 0; delay_us(100); l6 =1;
   
      if(m==4) portb=255; else portb=so[d/10]; l7 = 0; delay_us(100); l7=1;
      if(m==4) portb=255; else portb=so[d%10]; l8 = 0; delay_us(100); l8=1;
      if(m==5) portb=255; else portb=so[t/10]; l9 = 0; delay_us(100); l9=1;
      if(m==5) portb=255; else portb=so[t%10]; l10 = 0; delay_us(100); l10=1;
      if(m==6) portb=255; else portb=so[n/10]; l11= 0; delay_us(100); l11=1;
      if(m==6) portb=255; else portb=so[n%10]; l12 = 0; delay_us(100); l12=1;
      j++;
  }
}
void hienthi1(int m)
{  int j =0;
  while(j<15)
  {
      if(m==7) portb=255; else if(thu==1) portb = 0xc6; else portb=so[thu]; l1 = 0; delay_us(100); l1 = 1;
      j++;
  }
cái này nữa ạ:
c_g=0,dv_g=1,c_p=2,dv_p=3,c_h=4,dv_h=5,thu=6,c_d=7,dv_d=8,c_t=9,dv_t=0,c_n=1,dv_n=2;
ReadRTC(&RTC_ARR[0]);
    //=======================================
            ReadRTC(&RTC_ARR[0]);
            convert_bcd_lcd(RTC_ARR[0],RTC_ARR[1],RTC_ARR[2],RTC_ARR[3],RTC_ARR[4],RTC_ARR[5],RTC_ARR[6]);
            h = c_h*10+dv_h; p = c_p*10+dv_p; g = c_g*10+dv_g; d = c_d*10+dv_d;t = c_t*10+dv_t;n = c_n*10+dv_n;//KHAI BAO THEO THU TU DON VI CUA 1307
      while(true)
      {
          ReadRTC(&RTC_ARR[0]);
          convert_bcd_lcd(RTC_ARR[0],RTC_ARR[1],RTC_ARR[2],RTC_ARR[3],RTC_ARR[4],RTC_ARR[5],RTC_ARR[6]);
          if(isg!=dv_g) { isg=dv_g; if(tht<20) tht++; else tht = 0; //hien thi gio toi 15giay ( 20 - 15 )= 5 cho hien thi ngay am + nhiet do
          chuyenduongam(c_d*10+dv_d,c_t*10+dv_t,c_n*10+dv_n); read=read_adc();
          temp = read/2.048; if(temp>99) temp = 99; }
          if(tht<16) htgio(); else htngay(); if(k1==0) { while(k1==0)htgio(); chinh_gio(); }//hien thi gio toi 16giay roi chuyen qua hien thi ngay am + nhiet do 5 giay
      }
}
void convert_bcd_lcd(int8 g,int8 p, int8 h, int8 th, int8 d, int8 t, int8 n)
  {
  c_g=(g&240)>>4;  //chia lay phan du, so hang don vi
  dv_g=g&15;  //tach hang tram va hang chuc
  c_p=(p%240)>>4;  //chia lay phan du, so hang don vi
  dv_p=p&15;  //tach hang tram va hang chuc
  c_h=(h&240)>>4;  //chia lay phan du, so hang don vi
  dv_h=h&15;  //tach hang tram va hang chuc
  thu = th;
  c_d=(d&240)>>4;  //chia lay phan du, so hang don vi
  dv_d=d&15;  //tach hang tram va hang chuc
  c_t=(t&240)>>4;  //chia lay phan du, so hang don vi
  dv_t=t&15;  //tach hang tram va hang chuc
  c_n=(n&240)>>4;  //chia lay phan du, so hang don vi
  dv_n=n&15;  //tach hang tram va hang chuc
  }
nhiều quá hic em đọc không hiểu
 

Đính kèm

binh11007543

Học sinh phổ thông
#44
ai cho em xin cái phần mềm Hitech C V9.83 với
à hinh như 2 phần mềm này không cài được trên win 8 hay sao ấy
 

batien19

Học sinh phổ thông
#48
em muon hoc lap trinh cho pic 16r887 de lam led quang cao
ma khong biet hoc nhu the nao
xin cac anh giup em
em muon tu hoc
nhat la muon tu viet code
rm khong hieu
 

batien19

Học sinh phổ thông
#49
em muốn làm mach led chạy chử
mừng chúa giáng sinh
xin các anh giup đỡ
mach đó sử dụng pic 16f887 đc không
 

batien19

Học sinh phổ thông
#50
em muốn có tài liệu về viết code cho con 16f887 mà tìm không có
anh em ai có cho e xin đc không
e muốn tự nghiên cứu viết code
vì em không có điều kiện đi học
anh em ai ranh có dạy oaline hay dạy wa yahoo giúp e đc k
 

Quảng cáo Google