Showing posts with label 7 Segments. Show all posts
Showing posts with label 7 Segments. Show all posts

Thursday, August 20, 2015

Arduino uno - hiển thị led 7 đoạn

Posted by dientudieukhien at 7:26 PM 0 Comments
 Tên project: Hiển thị led 7 đoạn
 Phần cứng của Arduino: Arduino UNO
 Tác giả: http://www.dientudieukhien.net

Trong project này ta sử dụng board Arduino Uno R3 và IC 74HC595 hiển thị số đếm từ 0 đến 9 và A đến F, mỗi số delay 250ms. Ở đây ta kết nối các pin của arduino với ic 79hc595 như sau:

  • Pin 6 kết nối với pin 14 của 74hc595
  • Pin 8 kết nối với pin 12 của 74hc595
  • Pin 10 kết nối với pin 11 của 74hc595
  • Ở đây ta sử dụng led 7 segment CC
Trong hình dưới là sơ đồ nguyên lý, vẽ trên protues:

Hiển thị led 7 đoạn với arduino uno rc3

Read More »

Tuesday, May 26, 2015

Học lập trình vi điều khiển pic qua 21 bài thực hành

Posted by dientudieukhien at 1:57 AM 0 Comments
Qua 21 bài thực hành lập trình vi điều khiển pic này sẽ giúp bạn nắm bắt được cách viết chương trình trong Mikroc và nhiều thuật toán khác nhau, từ các bài học cơ bản này sẽ giúp bạn nâng cao kỹ năng lập trình trên vi điều khiển từ đó tạo được nền tản cho nhiều project phức tạp hơn.


Bài 1. Flashing an led

   Trong bài thực hành này bạn sẽ lập trình cho một led nhấp nháy bằng cách đảo trạng tháy logic của port, truy cập trang>>      

Bài 2. Lập trình với Button

   Ở bài 2 này chúng ta làm quen với nút ấn và cách lập trình để đọc trạng thái của một port và xuất dữ liệu ra một port, truy cập trang>>      

Bài 3. Đếm số nhị phân

    Bài này giúp bạn làm quen với số nhị phận 4 bit, mỗi lần button được ấn thì số đếm tăng 1 đơn vị, hiển thị trạng thái của số nhị phân qua 4 led được kết nối ở portc của vi điều khiển 16f688, truy cập trang>>      

Bài 4. Lập trình hiển thị dòng text ra LCD 16x2

    Trong bài này giúp bạn hiểu được cách hiển thị một dòng text lên Lcd, truy cập trang>>

Bài 5. Chuyển đổi Analog sang Digital (ADC)

    Qua bài học này bạn sẽ biết cách lập trình chuyển tính hiệu từ Analog sang Digital, truy cập trang>>

Bài 6. Điều khiển led 7 đoạn

    Khi bạn học xong bài này, bạn sẽ biết cách hiển thị dữ liệu trên led 7 đoạn (7 segments), truy cập trang>>

Bài 7. Điều khiển led 7 đoạn

    Ở bài này bạn sẽ học ngắt interrupt khi tràn Timer0, truy cập trang>>

Bài 8. Giao tiếp máy tính qua cổng RS232

    Trong bài này bạn sẽ học được cách lập trình cho vi điều khiển giao tiếp với máy tính thông qua cổng RS232, truy cập trang>>

Bài 9. Điều chế độ rộng xung (PWM)

    Bài này sẽ hướng dẫn bạn cách sử dụng CCP module để điều chế độ rộng xung PWM, truy cập trang>>

Bài 10. Điều khiển DC motor

   Bạn sẽ học cách điều khiển cho motor quay thuận, quay ngược và dừng hẳn thông qua 3 button, truy cập trang>>

Bài 11. Hiển thị số đếm từ 1 đến 9999 trên led 7 đoạn 

   Quét led 7 đoạn hiển thị số đếm từ 0 đến 9999, truy cập trang>>


Bài 12. Điều khiển led matrix

   Lập trình hiển thị một ký tự trên led matrix, truy cập trang>>

Bài 13. Write, read internal EEPROOM

  Ghi dữ liệu vào eeproom và đọc dữ liệu đó xuất ra lcd, truy cập trang>>

Bài 14. Lập trình truyền dữ liệu với giao thức I2C

  Truyền dữ liệu giữa các thiết bị thông qua giao thức I2C, truy cập trang>>

Bài 15. Chạy dòng text trên nhiều led matrix

  Cũng giống như ở bài 12 nhưng ở đây ta lập trình cho dòng text có thể chạy trên nhiều led matrix được ghép lại với nhau, truy cập trang>>

Bài 16. Hiểu rõ hơn về ngắt INTERRUPT

  Qua bài thực hành này sẽ giải thích cặn kẽ về ngắt interrupt trong vi điều khiển, truy cập trang>>

Bài 17. Chế độ Sleep và Wake up trên vi điều khiển

  Hiểu rõ hơn về hai trạng thái sleep và wake up trên vi điều khiển, truy cập trang>>

Bài 18. Đọc bàn phím và hiển thị kết quả

  Làm việc với keypad, trong bài này ta đọc dữ liệu được nhập từ bàn phiếm và hiển thị kết quả ra lcd, truy cập trang>>

Bài 19. Sound

  Sử dụng thư viện âm thanh trong mikroc để tạo ra những hiệu ứng âm thanh khi ấn phím, truy cập trang>>

Bài 20. GLCD

 Lập trình xuất dữ liệu từ text hoặc hình ảnh ra Graphic LCD, truy cập trang>>

Bài 21. Điều khiển servo motor

 Lập trình điều khiển động cơ servo, truy cập trang>>
nguồn bài viết từ http://embedded-lab.com/ 
Read More »

Monday, May 11, 2015

Mạch đếm sản phẩm hiển thi led 7 đoạn và có ghi vào eeprom

Posted by dientudieukhien at 9:46 PM 0 Comments
Trong project trước mình đã thực hiện mạch đếm sản phẩm hiển thị ra LCD và không có ghi vào eeprom. Hôm nay, mình thực hiện một project mới, cũng là hệ thống đếm sản phẩm nhưng hiển thị ra led 7 đoạn và có cập nhật giá trị vào eeprom, nên không sợ mất dữ liệu khi hệ thống bị mất điện:
mạch đếm sản phẩm dùng vi điều khiển pic hiển thi 7seg cập nhật eeprom
Mạch đếm sản phẩm dùng vi điều khiển pic 16f877a hiển thi ra led 7 đoạn và cập nhật eeprom
Mô tả hoạt động: Như bạn thấy trên hình, có một button giả lập cảm biến và khi button này được ấn xuống, tương ứng có một sản phẩm chạy qua mắt cảm biến, mức logic RB0 sẽ từ 1->0, chỉ số đếm sẽ tăng 1 đơn vị, trị số này ngay lập tức được cập nhật vào eeprom nội ngay và sẽ được load lại khi hệ thống khởi động lại vì một lí do nào đó. Ngoài ra, ta còn có một button được nối vào RB1 để reset lại giá trị của số đếm.

Video mô phỏng:

|| Tải code và file mô phỏng
Read More »

Wednesday, February 4, 2015

Đồng hồ đo điện thế hiển thị trên 3 led 7 đoạn

Posted by dientudieukhien at 2:32 AM 0 Comments
Đây là một đồng hồ đo điện thế đơn giản (simple volt meter), kết quả được hiển thị trên 3 led 7 đoạn (7 segments). Project sử dụng vi điều khiển pic 16f676, sử dụng chức năng ADC của vi điều khiển để làm việc này.

  • Sơ đồ nguyên lý:
Chúng ta biết hầu hết các vi điều khiển ngày nay có 8 bit hoặc 10 bit của thanh ghi ADC. Trong project này ta sử dụng vi điều khiển pic 16f676  với 10 bits ADC.
Simple Volt meter
3 digits Digital volt meter
Ở đây, ta sử dụng RA0, RA1, RA2 điều khiển on/off các led 7 đoạn. RC0-RC5 và RA5 sử dụng xuất dữ liệu đến led 7 đoạn.

  • Một số hình ảnh:

Mặt trước - ảnh: coolcỉcuit.com
Mặt sau - ảnh: coolcircuit.com
 
Ứng dụng vào bộ nguồn - ảnh: coolcỉcuit.com

  • Phần mềm:
Trong project này ta sử dụng trình biên dịch CCS C. Ở chương trình chính, đọc tín hiệu vào từ RA4 (AN3) và chuyển đổi sang code cho led 7 đoạn, trong lúc đó TEMER1 được cài đặt ngắt interrupt với mỗi 5mS. Khoảng điện thế có thể đo từ 0-->30 volt DC.

|| Download schematic + firmware                                               nguồn:coolcircuit.com               
Read More »

Saturday, November 29, 2014

using pic 16f887 to program and display temperature from lm35 sensor on led 7 segment

Posted by dientudieukhien at 11:50 PM 0 Comments
Trong các bài trước mình đã chia sẽ cùng các bạn những project về lm35 với pic 16f877A. Hôm nay, mình chia sẽ tiếp project tương tự nhưng được lập trình trên pic 16f887, có thêm ký tự "C".

Xem video của project:



Read More »

Tuesday, September 9, 2014

Đồng hồ số kết hợp với hiển thị nhiệt độ

Posted by dientudieukhien at 8:59 PM 0 Comments

Project Đồng hồ số để bàn kết hợp hiển thị nhiệt độ

gồm các khối: khối tạo nguồn 5v sử dụng LM2574N-5.0, khối hiển thị gồm 4 leg 7segment, cảm biến nhiệt LM335, Ic thời gian thực DS1307, Ic gải mã led 7seg Max7219CNG, IC xử lí trung tâm sử dụng Pic 18F252.

Đồng hồ số kết hợp hiển thị nhiệt độ
Code in mikroc

 // VARIABLES
  char second = 0; char second_old = 0;
  char minute = 0; char minute_ten = 0; char minute_one = 0;
  char hour = 0; char hour_ten = 0; char hour_one = 0;
  char counter_1=0; char counter_2=0;
  unsigned temp = 0; char temp_ten=0; char temp_one=0; char temp_neg=0;
  char blink=0;
  char i=0;

void send_to_max7219(char address,char data) {
  PORTC.F6 = 0; // LOAD(CS) LINE LOW
  Spi_Write(address);
  Spi_Write(data);
  PORTC.F6 = 1; // LOAD(CS) LINE HIGH
  }

void init_MAX7219() {
  send_to_max7219(0x09,0xFF);// BCD Mode Code B
  send_to_max7219(0x0A,0x0F);// INTENSITY MAX
  send_to_max7219(0x0B,0x03);// SCAN ONLY DIGITS 0,1,2,3
  send_to_max7219(0x0C,0x01);// TURN ON
  send_to_max7219(0x00,0x0F);// TEST OFF
  }

void show_temp() {

  // READ AN0 INPUT 50 TIMES CUMULATIVELY
  temp=0;
  for (i=0;i<=49;i++) {
    temp = temp+ Adc_Read(0);
    delay_ms(1);
  }
  temp=temp/50; //CALCULATE THE AVERAGE
  temp = temp*4.57;//CALCULATE THE SENSOR OUTPUT in mV

  // TEMPERATURE POSITIVE OR NEGATIVE?
  if (temp>=2730) {
  temp = temp-2730; temp_neg=0;}
  else {temp=2730-temp;temp_neg=1;}

  // CONVERT TEMPERATURE VALUE INTO BCD FORMAT
  temp=Dec2Bcd16(temp);

  // MAX7219 NO DECODE MODE
  send_to_max7219(0x09,0x00);

  // DISPLAY THE MINUS SIGN IF TEMP IS NEGATIVE
  if (temp_neg) {
    send_to_max7219(0x01,0x01);  }
  else {
    send_to_max7219(0x01,0x00); }

  // SEPERATE THE TEMPERATURE DIGITS
  temp_one=(temp>>4)&0b00001111;
  temp_ten=(temp>>8)&0b00001111;

  // DISPLAY THE TEMPERATURE DIGITS

  if (temp_one==0x00) {send_to_max7219(0x03,0x7E);}
  else if (temp_one==0x01) {send_to_max7219(0x03,0x30);}
  else if (temp_one==0x02) {send_to_max7219(0x03,0x6D);}
  else if (temp_one==0x03) {send_to_max7219(0x03,0x79);}
  else if (temp_one==0x04) {send_to_max7219(0x03,0x33);}
  else if (temp_one==0x05) {send_to_max7219(0x03,0x5B);}
  else if (temp_one==0x06) {send_to_max7219(0x03,0x5F);}
  else if (temp_one==0x07) {send_to_max7219(0x03,0x70);}
  else if (temp_one==0x08) {send_to_max7219(0x03,0x7F);}
  else if (temp_one==0x09) {send_to_max7219(0x03,0x7B);}

  if (temp_ten==0x00) {send_to_max7219(0x03,0x7E);}
  else if (temp_ten==0x01) {send_to_max7219(0x02,0x30);}
  else if (temp_ten==0x02) {send_to_max7219(0x02,0x6D);}
  else if (temp_ten==0x03) {send_to_max7219(0x02,0x79);}
  else if (temp_ten==0x04) {send_to_max7219(0x02,0x33);}
  else if (temp_ten==0x05) {send_to_max7219(0x02,0x5B);}
  else if (temp_ten==0x06) {send_to_max7219(0x02,0x5F);}
  else if (temp_ten==0x07) {send_to_max7219(0x02,0x70);}
  else if (temp_ten==0x08) {send_to_max7219(0x02,0x7F);}
  else if (temp_ten==0x09) {send_to_max7219(0x02,0x7B);}

  // DISPLAY THE DEGREE SIGN
  send_to_max7219(0x04,0x62);
  }

void main() {

  // INITIALIZE SPECIAL FUNCTION REGISTERS
  ADCON1=0b00001110; // SELECT THE ANALOG INPUTS
  TRISC = 0b00010000; // ASSIGN DIRECTIONS FOR PORTC
  TRISB = 0b11111111; // ASSIGN DIRECTIONS FOR PORTB
  TRISA = 0b00000001; // ASSIGN DIRECTIONS FOR PORTA
  PORTC.F6 = 1; //LOAD(CS) LINE IS INITIALLY LOW

  // INIT HW SPI
  Spi_Init_Advanced(MASTER_OSC_DIV16,DATA_SAMPLE_MIDDLE,CLK_IDLE_LOW,LOW_2_HIGH);

  // INIT SW I2C
  Soft_I2C_Config(&PORTB, 1, 0);

  while(1) {

  init_MAX7219();

  // READ SECOND, MINUTE and HOUR INFO FROM DS1307
  Soft_I2C_Start();
  Soft_I2C_Write(0xD0);
  Soft_I2C_Write(0x00);
  Soft_I2C_Start();
  Soft_I2C_Write(0xD1);
  second = Soft_I2C_Read(1);
  minute = Soft_I2C_Read(1);
  hour = Soft_I2C_Read(0);
  Soft_I2C_Stop();

  // SEPERATE THE HOUR AND MINUTE DIGITS
  hour_one = 0b00001111 & hour;
  hour_ten = (hour >> 4) & 0b00001111;
  minute_one = 0b00001111 & minute;
  minute_ten = (minute >> 4) & 0b00001111;

  // BLINKING AND TEMP. DISPLAY PERIOD
  if (second != second_old) { // DETECT A SECOND
    counter_1++;
    counter_2++;
    second_old=second;
    if (counter_1==1) { // BLINK EVERY 1 SECOND
       counter_1=0;
       blink=~blink;
    }
    if (counter_2==15) { // DISPLAY TEMP EVERY 15 SECONDS
      counter_2=0;
      show_temp();
      delay_ms(3000); // DISPLAY FOR THREE SECONDS
      send_to_max7219(0x09,0xFF); // SET BCD CODE B
    }
  }

  // MANUALLY SHOW TEMP IF SW2 IS PRESSED
  if (PORTB.F3==0) {
    counter_2=0;
    show_temp();
    delay_ms(3000);
    send_to_max7219(0x09,0xFF); // SET BCD CODE B
   }

  // DISPLAY THE HOUR DIGITS
  if (hour_ten == 0x00) { // IF THE DECIMAL DIGIT IS 0
     send_to_max7219(0x01,0x0F);} // THEN DISPLAY NOTHING IN FIRST DIGIT
  else {
     send_to_max7219(0x01,hour_ten);}
  if (blink==0xFF) {
     hour_one|=0b10000000;}  // DETERMINE THE DOT STATUS OF THE 2nd DIGIT
  else {
     hour&=0b01111111;}
  send_to_max7219(0x02,hour_one);

  // DISPLAY THE MINUTE DIGITS
  if (blink==0xFF) {
     minute_ten|=0b10000000;} // DETERMINE THE DOT STATUS OF THE 3th DIGIT
  else {
     minute_ten&=0b01111111;}
  send_to_max7219(0x03,minute_ten);
  send_to_max7219(0x04,minute_one);

  // INCREASE THE HOUR IF SW IS PRESSED
  hour_one&=0b01111111;
  if (PORTB.F2==0) {
    if (hour_one<=0x08) {
      if ((hour_ten==0x02) && (hour_one==0x03)) {
      hour_one=0;
      hour_ten=0; }
      else {
      hour_one++;}
      }
    else {hour_one=0x00;

         if (hour_ten<=0x1) {
         hour_ten++;}
         else { hour_ten=0x00;}
         }

    // WRITE THE NEW HOUR VALUE TO DS1307
    hour_ten = (hour_ten<<4)&0b11110000;
    hour = hour_one|hour_ten;
    Soft_I2C_Start();
    Soft_I2C_Write(0xD0);
    Soft_I2C_Write(0x02);
    Soft_I2C_Write(hour);
    Soft_I2C_Stop();

    do {} while (PORTB.F2==0) ; // SW DEBOUNCE

  }

  // INCREASE MINUTE IF SW3 IS PRESSED
  minute_ten&=0b01111111;
  if (PORTB.F4==0) {
    if (minute_one<=0x08) {
      minute_one++;
      }
    else {
         if ((minute_ten==0x05) && (minute_one==0x09)) {
         minute_one=0x00;
         minute_ten=0x00;  }
         else if (minute_ten<=0x05) {
         minute_ten++;
         minute_one=0x00;}
         else {
         minute_ten=0x00;
         minute_one=0x00;}
         }

    // WRITE THE NEW MINUTE VALUE TO DS1307
    minute_ten = (minute_ten<<4)&0b11110000;
    minute = minute_one|minute_ten;
    Soft_I2C_Start();
    Soft_I2C_Write(0xD0);
    Soft_I2C_Write(0x00);
    Soft_I2C_Write(0x00);
    Soft_I2C_Write(minute);
    Soft_I2C_Stop();

    do {} while (PORTB.F4==0); // SW DEBOUNCE

    }
  }

}

* Sau đây là file hex, bạn copy vào notepad và save lại với đuôi ".hex".
:1000000004EF00F0FFFFFFFF92EC05F00E0EC16E53
:10001000100E946EFF0E936E010E926E828C010E86
:10002000276E286A296A010E2A6E24EC06F0810EDA
:10003000276E0F0E286E3AEC06F0D3EC05F04DEC6F
:1000400006F0D00E276E5BEC04F0276A5BEC04F040
:100050004DEC06F0D10E276E5BEC04F0010E276E1E
:10006000BBEC04F000C01CF0010E276EBBEC04F0EA
:1000700000C01EF0276ABBEC04F000C021F0F1ECD8
:1000800005F00F0E2114236E21C022F02232229E91
:100090002232229E2232229E2232229E0F0E2216CF
:1000A0000F0E1E14206E1EC01FF01F321F9E1F3227
:1000B0001F9E1F321F9E1F321F9E0F0E1F161C50A9
:1000C0001D1834E0242A252A1CC01DF02450010AE2
:1000D00002E1246A261E25500F0A28E1256A83ECD6
:1000E00001F0270E0C6EFF0E0B6EFF0E0A6E0C2E2B
:1000F00001D007D00B2E01D003D00A2EFED7FAD79D
:10010000F6D73F0E0B6EFF0E0A6E0B2E01D003D0FA
:100110000A2EFED7FAD7850E0A6E0A2EFED70000E9
:10012000090E2B6EFF0E2C6E97EC06F0016A81B65D
:10013000012A0150000A28E1256A83EC01F0270E0C
:100140000C6EFF0E0B6EFF0E0A6E0C2E01D007D048
:100150000B2E01D003D00A2EFED7FAD7F6D73F0ECA
:100160000B6EFF0E0A6E0B2E01D003D00A2EFED7A7
:10017000FAD7850E0A6E0A2EFED70000090E2B6EE6
:10018000FF0E2C6E97EC06F02250000A07E1010EDC
:100190002B6E0F0E2C6E97EC06F006D0010E2B6E18
:1001A00022C02CF097EC06F02650FF0A02E1238EC5
:1001B00002D07F0E2116020E2B6E23C02CF097EC7E
:1001C00006F02650FF0A02E11F8E02D07F0E1F1696
:1001D000030E2B6E1FC02CF097EC06F0040E2B6E56
:1001E00020C02CF097EC06F07F0E2316016A81B434
:1001F000012A0150000A3EE1235008080CE3225076
:10020000020A07E12350030A04E1236A226A0AEF83
:1002100001F0232A08D0236A2250010803E3222A8E
:1002200013EF01F0226A22C000F000360090003681
:1002300000900036009000360090F00E001600C0CE
:1002400022F000502310216E4DEC06F0D00E276EE8
:100250005BEC04F0020E276E5BEC04F021C027F08B
:100260005BEC04F0F1EC05F0016A81B4012A015065
:10027000000AFAE07F0E1F16016A81B8012A0150B8
:10028000000A3FE12050080802E3202A11D01F5045
:10029000050A06E12050090A03E1206A1F6A08D016
:1002A0001F50050803E31F2A206A02D01F6A206A34
:1002B0001FC000F00036009000360090003600901D
:1002C00000360090F00E001600C01FF00050201005
:1002D0001E6E4DEC06F0D00E276E5BEC04F0276A24
:1002E0005BEC04F0276A5BEC04F01EC027F05BECCB
:1002F00004F0F1EC05F0016A81B8012A0150000A0E
:10030000FAE09BD6FFD7166A176A186A18503108A8
:1003100018E32B6A6AEC05F00050162601501722EC
:10032000040E0B6EFF0E0A6E0B2E01D003D00A2EA8
:10033000FED7FAD73B0E0A6E0A2EFED70000182A07
:10034000E5D7320E046E000E056E16C000F017C021
:1003500001F0B5EC05F000C016F001C017F00EEC8E
:1003600006F0710E046E3D0E056E120E066E810EC5
:10037000076EDEEC02F0ECEC03F000C016F001C0FA
:1003800017F00A0E015C02E1AA0E005C000106E310
:10039000AA0E165E0A0E175A196A0AD000011650E4
:1003A000AA08166E17C017F00A0E1756010E196E1E
:1003B000000116C02BF017C02CF072EC03F000C047
:1003C00016F001C017F0090E2B6E2C6A97EC06F0A0
:1003D000195207E0010E2B6E010E2C6E97EC06F001
:1003E00005D0010E2B6E2C6A97EC06F016C000F0BB
:1003F00017C001F001320032019E01320032019E2D
:1004000001320032019E01320032019E0F0E0014B3
:10041000056E05C01AF017C000F0016A0F0E001437
:100420001B6E0550000A07E1030E2B6E7E0E2C6E2C
:1004300097EC06F059D01A50010A07E1030E2B6E13
:10044000300E2C6E97EC06F04FD01A50020A07E1DE
:10045000030E2B6E6D0E2C6E97EC06F045D01A50E5
:10046000030A07E1030E2B6E790E2C6E97EC06F053
:100470003BD01A50040A07E1030E2B6E330E2C6E8C
:1004800097EC06F031D01A50050A07E1030E2B6EE7
:100490005B0E2C6E97EC06F027D01A50060A07E187
:1004A000030E2B6E5F0E2C6E97EC06F01DD01A50CB
:1004B000070A07E1030E2B6E700E2C6E97EC06F008
:1004C00013D01A50080A07E1030E2B6E7F0E2C6E14
:1004D00097EC06F009D01A50090A06E1030E2B6EBC
:1004E0007B0E2C6E97EC06F01B50000A07E1030E02
:1004F0002B6E7E0E2C6E97EC06F059D01B50010A25
:1005000007E1020E2B6E300E2C6E97EC06F04FD0EA
:100510001B50020A07E1020E2B6E6D0E2C6E97EC3B
:1005200006F045D01B50030A07E1020E2B6E790E30
:100530002C6E97EC06F03BD01B50040A07E1020E2C
:100540002B6E330E2C6E97EC06F031D01B50050A43
:1005500007E1020E2B6E5B0E2C6E97EC06F027D097
:100560001B50060A07E1020E2B6E5F0E2C6E97ECF5
:1005700006F01DD01B50070A07E1020E2B6E700E0D
:100580002C6E97EC06F013D01B50080A07E1020E00
:100590002B6E7F0E2C6E97EC06F009D01B50090ACB
:1005A00006E1020E2B6E7B0E2C6E97EC06F0040E0D
:1005B0002B6E620E2C6E97EC06F012000001086A9A
:1005C000096A000E0762036464EF03F00250061824
:1005D0000A6E075003267E0ED8A0F5EF02F0035EE8
:1005E000D8B069EF03F0F9EF02F0035ED8A06EEF28
:1005F00003F0028E068E02C00EF001C00BF000C0A8
:100600000DF000500402F4CF0CF001500502F4CFBD
:1006100000F0F3CF08F00402F3500C26F450082247
:10062000000E00220D500502F3500C26F450082253
:10063000000E002202500402F3500826F45000225B
:1006400002500502016A000E0122F3500026F45008
:1006500001220D500602F3500826F4500022026ACF
:10066000000E012202220B500602F3500026F45025
:100670000122000E02220E500602F3500126F45011
:10068000022202BE4CEF03F0083600360136023675
:100690000306D8B46EEF03F05FEF03F0D880800E4E
:1006A00008640030000E002201220222D8A05FEF71
:1006B00003F0023201320032034A69EF03F00AAE5E
:1006C000029E000E71EF03F0010EAAEC06F071EF2E
:1006D00003F0020E8AEC06F071EF03F0040E6FECEB
:1006E00006F01200E80E046E030E056E2BC000F03B
:1006F0002CC001F0B5EC05F00C0E026E00C02DF020
:1007000001C02EF00250000105E02D362D902E364E
:10071000FF0FF9D7E80E046E030E056E41EC05F0ED
:1007200000502B5C2F6E01502C58306E2FC02BF0D8
:1007300030C02CF0640E046E000E056E2FC000F069
:1007400030C001F0B5EC05F000C003F0026A0250C1
:100750002D1203502E12640E046E000E056E41EC35
:1007600005F000502F5E0150305A2FC02BF030C0E2
:100770002CF00A0E046E000E056E2FC000F030C083
:1007800001F0B5EC05F000C002F001C003F0023644
:100790000290033602360290033602360290033688
:1007A00002360290033602502D1203502E120A0E0A
:1007B000046E000E056E41EC05F000502F5C006EDB
:1007C00001503058016E00C02BF001C02CF02D50AC
:1007D00000122E500112120000010B6A0C6A0A6A04
:1007E0000350D8B437EF04F0028E8E0E035E03BEC2
:1007F000FFEF03F0D8B4FFEF03F03BEF04F0036D1D
:10080000080E035CD8A016EF04F0036E013602C098
:1008100001F0026A080E035CD8A016EF04F001365E
:10082000016A0350D8A4D89020EF04F00350D8B444
:1008300020EF04F0D89002320132032E1AEF04F0B8
:100840000BBC01A02DEF04F0D8A02DEF04F0012A7D
:10085000D8B4022A02BE4AEF04F00AAE50EF04F008
:10086000021E011E012AD8B4022A50EF04F0026AC7
:10087000016A50EF04F00B800BAE54EF04F0026AF3
:100880000AAE54EF04F0FF0E026E016E0A36023219
:1008900054EF04F0010E0C6E60EC06F056EF04F01D
:1008A000000E0C6E56EF04F0FF0E0C6E0150006E41
:1008B0000250016E1200010E296E080E286E15C03E
:1008C000E9FF0F0EEA6E285222E0BCEC06F0BCEC09
:1008D00006F0A2EC06F0EF90BCEC06F0275200E028
:1008E000A2EC06F02736D8A079EF04F0EF827AEF79
:1008F00004F0EF920000BCEC06F0EF80120EE95E0F
:10090000EFA080EF04F0120EE9262806DCD7296A52
:10091000BCEC06F0A2EC06F00000EF90BCEC06F098
:10092000EF82BCEC06F0BCEC06F0295200E0EF8050
:10093000120EE95EEFA09AEF04F0296ABCEC06F013
:10094000EFB22980BCEC06F0BCEC06F0BCEC06F083
:10095000BCEC06F0BCEC06F0BCEC06F0BCEC06F01F
:10096000BCEC06F0A2EC06F0120EE926EF90EF9236
:1009700029C000F01200286A080E296E15C0E9FF90
:100980000F0EEA6E29521CE0BCEC06F00000EF826C
:10099000BCEC06F0285200E0EF80120EE95EEFA0FA
:1009A000CFEF04F0EFB2D880EFA2D8902836BCEC9D
:1009B00006F0A2EC06F0120EE926EF902906E2D727
:1009C000EF82BCEC06F0275202E0A2EC06F02750C2
:1009D000D8B4ECEF04F0EF920000BCEC06F0EF802E
:1009E000120EE95EEFA0F2EF04F0120EE926BCEC65
:1009F00006F0A2EC06F0EF90BCEC06F0A2EC06F0DC
:100A0000EF9228C000F0120000010C6A0E6A02503A
:100A1000D8A41EEF05F001C002F000C001F0006A8A
:100A20000E860250D8A41EEF05F001C002F0016A44
:100A30000E960E880250D8B430EF05F00E50035ECB
:100A4000D8A4D8A036EF05F0D89002BE3CEF05F050
:100A5000003601360236032E25EF05F036EF05F09D
:100A6000010E0C6EAAEC06F040EF05F0020E0C6EC3
:100A70006FEC06F040EF05F0040E0C6EB7EC06F0DC
:100A8000120000010B6A0A6A096A00500402F4CFDE
:100A900009F0F3CF08F001500502F4CF0BF0F3CFCB
:100AA0000AF000500502F3500926F4500A22E86AC1
:100AB0000B2201500402F3500926F4500A22E86A7E
:100AC0000B2208C000F009C001F00AC002F00BC000
:100AD00003F01200C26AC00EC212C18CC18E2BC0BC
:100AE00000F0003600900036009000360090005074
:100AF000C212C280B2EC06F0C284C2B4FED7080EA5
:100B0000026EC4CF00F0000E016E025005E0003608
:100B100000900136FF0FFAD7C3500012000E0112E9
:100B2000C2901200000E1C6E000E1D6E000E1E6E96
:100B3000000E1F6E000E206E000E216E000E226E43
:100B4000000E236E000E246E000E256E000E166E33
:100B5000000E176E000E1B6E000E1A6E000E196E40
:100B6000000E266E000E186E12000001086A096A57
:100B7000100E0C6E0134083609360450085E05501C
:100B8000D8A0053C095ED8B0CDEF05F0045008268A
:100B90000550D8B0053C0926D890003601360C2EF9
:100BA000BAEF05F01200090E2B6EFF0E2C6E97ECBB
:100BB00006F00A0E2B6E0F0E2C6E97EC06F00B0E45
:100BC0002B6E030E2C6E97EC06F00C0E2B6E010EA6
:100BD0002C6E97EC06F02B6A0F0E2C6E97EC06F03D
:100BE000120015C0E9FF0F0EEA6EA2EC06F0EF92BC
:100BF000BCEC06F0EF80120EE95EEFA0FDEF05F011
:100C0000120EE926BCEC06F0BCEC06F0BCEC06F0DB
:100C1000BCEC06F0EF82BCEC06F0120000010050C4
:100C2000086E0150006E016A026A036A0B6A0C6A60
:100C3000960E036E0A6A00C001F008C000F0086A50
:100C4000026A04EC05F01200949A94969488C66A9D
:100C50002750C6122950C6122850C712295205E043
:100C60002A50000AD8B4C78C03D02A52D8A4C78C03
:100C7000C68A120027C0E9FF28C0EAFF120E272407
:100C8000006E00C015F000C0E9FFEF82EF80120E89
:100C9000E95EEFA049EF06F0120015C0E9FF0F0E64
:100CA000EA6EEF82BCEC06F0EF80BCEC06F0A2EC42
:100CB00006F0EF92BCEC06F0A2EC06F0EF9012000A
:100CC00000010B800BAE6DEF06F0026A0AAEFF0E5C
:100CD000026E016E006E0A360232FF0E1200000133
:100CE0000B840BAE7BEF06F0010E036E026A016A05
:100CF000006A0A360232FF0E120031C0C9FF010E2F
:100D0000C714016E0150000A02E10000F8D7C9CFF4
:100D100032F0120000010B820BAE95EF06F0036873
:100D20000268016800680A360232FF0E1200829CD7
:100D30002BC031F07DEC06F02CC031F07DEC06F0DC
:100D4000828C1200090E155CE16E0F0EE26EE792C6
:100D5000E79012000001026A016A006A086A036AE9
:100D6000000E1200120E0A6E0A2EFED712000001AB
:100D70000AAE029E000E1200000000001200FFFFEB
:020000040030CA
:0E000000FFF9FFFFFFFFFFFFFFFFFFFFFFFF06
:00000001FF


nguồn: electro-labs.com

Read More »

Saturday, August 30, 2014

Switch điện tử sử dụng Pic 16F72

Posted by dientudieukhien at 10:52 AM 0 Comments

Switch điện tử sử dụng Pic 16F72 

Project sử dụng Vi điều khiển Pic này khá đơn giản nhưng cũng rất thiết thực trong các ứng dụng thực tế, sau đây là sơ đồ nguyên lý:
16F72 switch điện tử
Bạn xem sơ đồ nguyên lý trên gồm các phần như: IC1 là 16F72 - trung tâm điều khiển, các thiết bị ngoại vi gồm: S1: Reset, S2: Start/stop, S3: Chọn, S4: Giảm, S5: Tăng, 2 led 7 seg dùng hiển thị thời gian đếm, một Relay dùng đóng mở tải, khi tín hiệu tại chân RC0 lên mức logic 1 thì T1 dẫn->relay đóng.

Read More »

Monday, December 23, 2013

Đèn giao thông sử dụng ATMEGA32 - redlight controller use atmega32

Posted by dientudieukhien at 1:54 PM 0 Comments
Projects: điều khiển đèn giao thông
CMU: Atmega32
Ngôn ngữ lập trình: C

video:

|| Tải project

Read More »

Tuesday, December 3, 2013

Đồng hồ hẹn giờ dùng pic 16f628 - PIC Digital Clock Timer

Posted by dientudieukhien at 6:45 PM 0 Comments
Sơ đồ nguyên lý:


* Sau đây là link tải tài liệu bao gồm: giải thích (english), code (asm), hex
|| Tải project
Read More »

Tuesday, November 27, 2012

Đo nhiệt độ bằng cảm biến nhiệt Lm35, hiển thị lên 7 seg có phần thập phân

Posted by dientudieukhien at 12:48 PM 0 Comments
Trên internet hiện nay có rất nhiều bài hướng dẫn bạn lập trình để xử lí và hiển thị nhiệt độ lên màng hình LCD, hay 7Seg. Hôm nay, dientudieukhien.net chia sẽ cùng bạn một project, lập trình lấy dữ liệu từ cảm biến nhiệt LM35, hiển thị lên led 7 Đoạn, điều đặc biệt ở đây là có hiển cả dấu thập phân.
CMU: 16f877A
Ngôn ngữ: Mikroc pro
Mô phỏng: ISIS
Đã test trên thực tế:

Video:




Read More »

Wednesday, November 14, 2012

Button and 7segment

Posted by dientudieukhien at 10:02 PM 0 Comments
Mô tả: khi nhấn button increase thì giá trị tăng một đơn vị, khi nhấn button decrease thì giá trị giảm một đơn vị, kết quả hiển thị lên 2 led 7 segment. Khi giảm đến 0 thì dù có nhấn button decrease thì vẫn không giảm nữa. Ngôn ngữ lập trình mikroc pro, có file mô phỏng isis.
Button va led 7 segment
Read More »

Tuesday, November 13, 2012

Lập trình điều khiển thiết bị bằng remote tivi sony - Chuẩn RC5

Posted by dientudieukhien at 10:53 PM 0 Comments
Ở project này dientudieukhien.net chia sẽ cùng bạn cách lập trình giải mã tín hiệu được mã hóa bởi remote tivi theo chuẩn RC5, ở đây mình sử dụng remote tivi sony.

Giải mã remote tivi chuẩn RC5

Video minh họa:



|| Tải code in mikroc
Read More »

Wednesday, November 7, 2012

Đo khoảng cách dùng sóng siêu âm

Posted by dientudieukhien at 9:57 PM 0 Comments
Nhờ bộ cảm biến siêu âm mà ta có thể sử dụng vi điều khiển xử lí, tính toán, xác định khoảng cách từ bộ siêu âm đến vật thể phía trước, sau đây là project đo khoảng cách sử dụng pic 16f873cảm biến siêu âm:
Read More »

Saturday, October 27, 2012

Pic Digital Clock Timer

Posted by dientudieukhien at 9:32 PM 0 Comments
Sơ đồ nguyên lý:


Read More »

Wednesday, October 17, 2012

Đo nhiệt độ với cảm biến nhiệt LM35, hiển thị lên led 7 đoạn

Posted by dientudieukhien at 12:24 PM 1 Comment
A Digital temperature with LM35 temperature sensor and display on le 7segment.
Một trong những bài học thú vị trong lập trình vi điều khiển là: giao tiếp và đọc tín hiệu từ một sensor nào đó, và LM35 là một cảm biến nhiệt đề bạn thực hành điều đó. Qua đây bạn sẽ học được cách đọc tín hiệu analog là như thế nào? Học được cách chuyển tín hiệu từ analog sang digital, đồng thời chuyển thành BCD để xuất ra led 7 đoạn.
Sau đây là hình ảnh mô phỏng.
Mạch hiển thị nhiệt độ từ cảm biến nhiệt LM35 lên led 7 đoạn sử dụng pic 16f877a


Read More »

Monday, October 15, 2012

ATMEGA16+DS1307+LCD+7SEG

Posted by dientudieukhien at 12:41 AM 0 Comments
Đây là một mạch thời gian thực  + đo nhiệt độ rất hay mình tìm thấy trên mạng . Chức năng của mạch hiển thị thời gian nhiệt độ trên led 7 , thông điệp trên LCD  chức năng hẹn giờ , báo chuông . Nói chung nó khá thú vị cho các bạn .


Đồng hồ thời gian thực


Read More »

Sunday, May 27, 2012

Hẹn giờ tắt mở thiết bị dùng Pic16f84

Posted by dientudieukhien at 11:45 AM 0 Comments
Sau đây là hình ảnh của project:
Hẹn giờ on-off thiết bị
Read More »

Tuesday, May 22, 2012

Project đèn giao thông với pic 16f84

Posted by dientudieukhien at 1:54 PM 0 Comments
Lúc trước mình đã post một project đèn giao thông sử dụng pic16f877a, hôm nay, mình thiết kế lại với pic 16f84 (nhỏ gọn hơn). Dưới đây là một số hình ảnh:
Traffic light

Red light

Yellow light

Blue light

Read More »

Wednesday, December 7, 2011

Project Hiển thị Led 7 Seg và chạy 8 led đơn kết hợp dùng ngắtt ngoài dùng Pic 16f877A

Posted by dientudieukhien at 10:13 PM 0 Comments
Hôm nay rãnh ngồi viết lại mấy đoạn code (lâu rồi không viết) nên post lên cho các bạn góp ý. Bạn nào mới học vi điều khiển Pic có thể tải về để đọc chơi :d.
Nội dung project này chủ yếu để ôn lại cách viết hiển thị hai Led 7 đoạn đếm từ 00->99, viết cho 8 Led đơn chạy qua trái<->phải. Đặt biệt ở project này có dùng ngắt ngoài PORTB để chọn giữa hai mode (7SEG hay 8 led đoen chạy).

MẠCH MÔ PHỎNG BẰNG PROTEUS 5.1
  • Mạch khi chạy nhưng chưa chọn mode


  • Mạch khi chon mode Led 7 SEG


  • Khi chọn mode 8 led đơn thì 7SEG tự động tắt


|| Tải soure code MikroC và mạch mô phỏng Proteus ở đây.




Admin (Theo http://tudonghoa.de.gg)
Read More »

    tab

back to top