Pages: 1 ... 7 8 [9] 10
 81 
 on: June 26, 2016, 07:18:45 PM 
Started by admin - Last post by M103
ไปไหนกันหมดครับ ปี 2016 แล้ว

 82 
 on: June 26, 2016, 06:47:15 PM 
Started by kissubin - Last post by M103
กำลังทำโปรเจคต์อยู่เลยครับ

 83 
 on: June 26, 2016, 06:45:43 PM 
Started by kissubin - Last post by M103
หลุดไปแล้ว ขอใหม่ได้มั้ยครับ

 84 
 on: June 26, 2016, 06:43:24 PM 
Started by gundam - Last post by M103
ขอบคุณมากๆครับ ผมลองอ่านบางเล่ม ไปไม่เป็นเลยครับ ทั้งๆที่ พอ เข้าใจ แอสแซมบลี้อยู่บ้าง

 85 
 on: June 26, 2016, 06:41:29 PM 
Started by admin - Last post by M103
สวัสดีเช่นกันครับ  ฝากตัวด้วย แอสแซมบลี้ แบบเบลอๆ Grin

 86 
 on: April 01, 2016, 10:16:31 AM 
Started by kissubin - Last post by oOmeeOo
ผมโหลดไม่ได้ ลิงค์เสียแล้วครับ   Cry  Cry  Cry

 87 
 on: February 02, 2014, 05:30:17 PM 
Started by muya - Last post by muya


// LCD Module //
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;


// Define Messages
char message0[] = "LCD Initialized";
char message1[] = "Room Temperature";

// String array to store temperature value to display
char *tempC = "000.0";
char *tempF = "000.0";

// Variables to store temperature register values
unsigned int temp_whole, temp_fraction, temp_value;
signed int tempinF, tempinC;
unsigned short C_Neg=0, F_Neg=0, TempH, TempL;

void Display_Temperature() {
  // convert Temp to characters
 if (!C_Neg) {
     if (tempinC/1000)
   // 48 is the decimal character code value for displaying 0 on LCD
     tempC[0] = tempinC/1000  + 48;
     else tempC[0] = ' ';
  }
  tempC[1] = (tempinC/100)%10 + 48;             // Extract tens digit
  tempC[2] =  (tempinC/10)%10 + 48;             // Extract ones digit

  // convert temp_fraction to characters
  tempC[4] =  tempinC%10  + 48;         // Extract tens digit

  // print temperature on LCD
  Lcd_Out(2, 1, tempC);

  if (!F_Neg) {
     if (tempinF/1000)
      tempF[0] = tempinF/1000  + 48;
     else tempF[0] = ' ';
  }

  tempF[1] = (tempinF/100)%10 + 48;             // Extract tens digit
  tempF[2] =  (tempinF/10)%10 + 48;
  tempF[4] =  tempinF%10  + 48;
  // print temperature on LCD
  Lcd_Out(2, 10, tempF);
}

void main()
{
ADCON0 = 0;
ADCON1 = 0x07;
  TRISB = 0b00100000;
  PORTB =   0b00000000;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
 Lcd_Out(1,1,message0);
  Delay_ms(1000);
  Lcd_Out(1,1,message1);             // Write message1 in 1st row
  // Print degree character
  Lcd_Chr(2,6,223);
  Lcd_Chr(2,15,223);
 // different LCD displays have different char code for degree
 // if you see greek alpha letter try typing 178 instead of 223

  Lcd_Chr(2,7,'C');
  Lcd_Chr(2,16,'F');
  do {
  //--- perform temperature reading
    Ow_Reset(&PORTB, 5);      // Onewire reset signal
    Ow_Write(&PORTB, 5, 0xCC);   // Issue command SKIP_ROM
    Ow_Write(&PORTB, 5, 0x44);   // Issue command CONVERT_T
    INTCON.GIE  = 1;     // 1-wire library disables interrpts
    Delay_us(120);
    Ow_Reset(&PORTB, 5);
    Ow_Write(&PORTB, 5, 0xCC);    // Issue command SKIP_ROM
    Ow_Write(&PORTB, 5, 0xBE);    // Issue command READ_SCRATCHPAD
    Delay_ms(400) ;

    // Read Byte 0 from Scratchpad
    TempL =  Ow_Read(&PORTB, 5);
    // Then read Byte 1 from Scratchpad
    TempH = Ow_Read(&PORTB, 5);
    temp_value = (TempH << Cool+ TempL ;
    // check if temperature is negative
    if (temp_value & 0x8000) {
      C_Neg = 1;
      tempC[0] = '-';
      // Negative temp values are stored in 2's complement form
      temp_value = ~temp_value + 1;
      }
    else C_Neg = 0;
    // Get temp_whole by dividing by 2
    temp_whole = temp_value >> 1 ;
    if (temp_value & 0x0001){  // LSB is 0.5C
       temp_fraction = 1;
       }
    else temp_fraction = 0;
    tempinC = temp_whole*10+temp_fraction;

    if(C_Neg)  {
     tempinF = 320-9*tempinC/5;
     if (tempinF < 0) {
      F_Neg = 1;
      tempF[0] = '-';
      tempinF = abs(tempinF);
      }
     else F_Neg = 0;
     }
    else tempinF = 9*tempinC/5 + 320;
    //--- Format and display result on Lcd
    Display_Temperature();

  } while(1);
}

มีปัญหาตรงจอ LCD
คือพอต่อกับวงจรจริงไฟเข้า LCD แต่ไม่แสดงค่าใดๆเลยคะ
แล้วก็ต่อ R ปรับค่าได้ที่ขา 1 2 3 ของ LCD แล้วนะคะ
รบกวนผู้รู้ช่วยตอบคำถามด้วยคะ ขอบคุณคะ

 88 
 on: January 31, 2014, 05:55:37 PM 
Started by NORTHGEAR - Last post by NORTHGEAR
ขอ วงจร เครื่องโปรแกรม mcs51 ที่ใช้กับ AT89LP4052 (ISP)
ขอเป็น serial หรือ usb เนื่องจาก คอมไม่มี พริ้นเตอร์ พอร์ท

 89 
 on: January 13, 2014, 09:45:13 PM 
Started by meomie22 - Last post by meomie22
รบกวนขอโค้ดอ่านค่าแรงดันไฟตรงเพื่อมาแสดงผลใน VB6  หน่อยค่ะ ใช้ P89v51RD2 ค่ะ

** ขอบคุณค่ะ **

 90 
 on: January 13, 2014, 12:12:57 PM 
Started by ARM_KD - Last post by ARM_KD
อยากทราบว่า pic16f887 สามมารถสร้างความถี่ 4MHzได้ไหมครับ xtal8MHz ครับ duty 50% ผมเขียนเท่าไหร่ก็ไม่ออกครับ ใช้ccsครับ

Pages: 1 ... 7 8 [9] 10