วันพฤหัสบดีที่ 27 กุมภาพันธ์ พ.ศ. 2563



Home work

งานที่ 6


PIC12F683


คุณสมบัติ

1.แม่นยำภายใน Oscillator:

   - โรงงานปรับเทียบเป็น± 1% โดยทั่วไป
   - ซอฟต์แวร์เลือกช่วงความถี่ได้ 8 MHz ถึง 125 kHz
   - ซอฟต์แวร์ปรับได้
   - โหมดเริ่มต้นสองความเร็ว
   - Crystal ล้มเหลวตรวจหาแอปพลิเคชันที่สำคัญ
   - สลับโหมดนาฬิการะหว่างการใช้งาน ประหยัดพลังงาน
2.โหมดประหยัดพลังงาน Sleep
3.ช่วงแรงดันไฟฟ้าที่กว้าง (2.0V-5.5V)

ตัวอย่างการต่อใช้งาน


CODE
/*

  Project: Mini LED Christmas Tree
  Author: Raj Bhatt
  Date: Dec 12, 2013
  Description: PIC12F683 microcontroller drives 20 LEDs through five I/O pins
               using the Charlieplexing technique. The LEDs are arranged in
               a foam board cut in the shape of a Christmas tree.
*/

// Five Charlieplexing signal lines
#define Row_A GP0_bit
#define Row_B GP1_bit
#define Row_C GP2_bit
#define Row_D GP4_bit
#define Row_E GP5_bit

unsigned int i, j, k, loop=120;

// Pin I/O direction and data values for lighting up each LED
const unsigned short TRISIO_Data[]={0x3c, 0x39, 0x2b, 0x0f, 0x0f, 0x2b, 0x39, 0x3c, \
         0x3a, 0x1b, 0x1b, 0x3a, 0x2d, 0x2d, 0x2e, 0x2e, 0x1d, 0x1d, 0x1e, 0x1e};
const unsigned short PORT_Data[] = {0x01, 0x02, 0x04, 0x10, 0x20, 0x10, 0x04, 0x02, \
         0x01, 0x04, 0x20, 0x04, 0x02, 0x10, 0x01, 0x10, 0x02, 0x20, 0x01, 0x20};
         
// Four user defined LED glow patterns
const unsigned short Pattern_Data1[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, \
                                      0, 0, 0, 0, 0, 0};   // Border LEDs ON
const unsigned short Pattern_Data2[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
                                      0, 1, 0, 0, 0, 1};   // Light 14, 16, and 20
const unsigned short Pattern_Data3[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, \
                                      0, 1, 1, 0, 1, 1};   // Light 13, 17, and 19
const unsigned short Pattern_Data4[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
                                      1, 1, 1, 1, 1, 1};   // Light all


void ALL_LEDs_OFF(){
  GPIO = 0x00;
  TRISIO = 0xFF;
}

void LED_ON(unsigned short num){
  TRISIO = TRISIO_Data[num-1];
  GPIO = PORT_Data[num-1];
  Delay_us(500);
}

void Display_Pattern(unsigned short m){
  for(j=1; j<=20; j++){
    switch (m) {
      case 1 : if(Pattern_Data1[j-1] == 1) LED_ON(j);
               break;
      case 2 : if(Pattern_Data2[j-1] == 1) LED_ON(j);
               break;
      case 3 : if(Pattern_Data3[j-1] == 1) LED_ON(j);
               break;
      case 4 : if(Pattern_Data4[j-1] == 1) LED_ON(j);
               break;

    } //case end
  }
}

void main() {
CMCON0 = 7;
ANSEL = 0;
GPIO = 0;
TRISIO = 0xFF;
do {
  for(k=0; k<loop; k++){
    Display_Pattern(1);
  }
  for(k=0; k<loop; k++){
    Display_Pattern(2);
  }
  
  for(k=0; k<loop; k++){
    Display_Pattern(3);
  }
  
  for(k=0; k<loop; k++){
    Display_Pattern(4);
  }

  ALL_LEDs_OFF();
  Delay_ms(200);
  
  for(k=0; k<loop; k+=4){
    Display_Pattern(4);
  }
  
  ALL_LEDs_OFF();
  Delay_ms(200);

  for(k=0; k<loop; k+=4){
    Display_Pattern(4);
  }
  
  ALL_LEDs_OFF();
  Delay_ms(200);
  
  for(k=0; k<loop; k+=4){
    Display_Pattern(4);
  }
  ALL_LEDs_OFF();
  Delay_ms(500);

 } while(1) ;
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

งานที่2

 เกลียว ชนิดและส่วนต่างๆของเกลียว เกลียว ( Thread)  หมายถึงสันหรือร่องที่เกิดขึ้นบนผิวงานวนไปรอบ ๆจะซ้ายหรือขวาก็ไดด้วยระยะทางที่สม่ำเสมอ เ...