Articles by "Sử Dụng Đồng Hồ"

10 4.104 8051 9 Acquy adc pic All datasheet ALTIUM Altium Designer AM-FM Arduino ARM ARM là gì Ấn Tượng Bản tin công nghệ Bản tin Thiết Bị Số Barobo bất động sản biến Binary Bit board lpc2378 Bộ chuyển đổi ADC Bộ Đếm Bộ điều khiển cửa cuốn Bộ Định Thời Buy Khóa Số Điện Tử Buy Mạch đếm sản phẩm Buy Mạch giao thông Buy Mạch nạp Buy Matrix Byte C cho AVR các hàm vào ra các loại lõi arm các mạch DAC cơ bản các ngắt trong pic Cách đọc điện trở Cách Đọc Giá Trị Điện Trở Cách đọc giá trị tụ điện Cách hàn linh kiện dán cách làm mạch khóa số cách tạo linh kiện dán cad/cam Cài Đặt cài đặt proteus 8 cảm biến Cấu Kiện Logic Khả Trình cấu tạo cấu trúc arm cấu trúc lệnh CCS Chân chân Transistor Chip Khả Trình chuyển đổi Chuyển đổi số tương tự Chuyển Đổi Tương Tự/Số - ADC Chuyển động số chương trình City Clip Điện Tử Code 8051 - ASM Code 8051 - C Code 8051-C code ASM code ASM mẫu 8086 Code AVR - C code C Code Lập Trình Code led sao băng code maupic code mẫu 8051 Code Mẫu 8086 Code Mẫu cho ARM - LPC1343 code mẫu pic Code PIC - C codemaupic Counter Cổng Vào Ra Cơ Bản Cuộn Cảm Cửa cuốn DA DAC Debug Decimal Delay8051 Dev-C++ Diode DIY Dò đường Do It Yourself doanh nghiệp Download DTMF Mobile đảo chiều động cơ Điện Trở Điện Tử Điện Tử Cơ Bản điều chế độ rộng xung điều chế xung PWM điều khiển bằng điện thoại Điều khiển cửa cuốn Điều khiển cửa cuốn bằng điện thoại điều khiển động cơ đo điện áp đo nhiệt độ đo nhiệt độ hiển thị lên lcd trên 8051 Đo Nhiệt Độ LM35 + LCD Đo Nhiệt Độ LM35 + Led 7 thanh đọc màu điện trở đồ chơi động cơ chân không Động cơ nhiên liệu Động cơ robo đồng hồ thời gian thực Ebook Đại Học ebook điện tử Ebook đồ án Ebook Tin Học Encoder Encoder là gì Full Giải Thuật Giải thuật PID Giáo Dục giao tiếp i2c pic 16f877a giao tiếp i2c pic16f877a với ic ds1307 giao tiếp máy tính qua rs232 Giao Tiếp Máy Tính VB6 giao tiếp rs232 giao tiếp spi giữa 2 pic giao tiếp spi trong pic Giáo Trình Điện Tử Giới thiệu 8051 Giới thiệu cơ bản GPIO Graphic Design hàm Hàn linh kiện dán Hexadecimal Hệ Hexa Hệ Nhị Phân Hệ Thập Lục Phân Hệ Thập Phân hiển thị lên lcd 16x2 Hoạt Động Học Học 8051 qua các ví dụ đơn giản Học ALtium Designer học AVR Học Corel Draw X3 Học Eagle HỌC LẬP TRÌNH 16F877A Học Lập Trình 8051 Học Lập Trình C Học Orcad Học Protues hoc-lam-robot-do-duong-qua-video Hồng ngoại hướng dẫn hướng dẫn Altium Designer hướng dẫn đo đồng hồ VOM hướng dẫn keil - C lập trình 8051 hướng dẫn làm led sao băng hướng dẫn làm led trái tim hướng dẫn lập trình ARM Hướng Dẫn Lập Trình ARM - LPC1343 hướng dẫn lập trình ARM-LPC2378 hướng dẫn lập trình CCS hướng dẫn lập trình PIC Hướng Dẫn Led Trái Tim hướng dẫn module sim548c hướng dẫn sử dụng keil hướng dẫn sử dụng proteus 8 Hyper Terminal hercules 3.2.4 I/O IC 555 IC 7447 IC 74HC151 IC 74HC154 IC 74HC245 IC 74HC595 IC 74LS138 IC DS1307 IC đồng hồ thời gian thực IC LM324 IC LM342 IC LM7805 IC số IC số opamp LM324 IC Thông Dụng IC555 Interrupt Keil 4 Full keil arm Keil C Keil uVision3 kế toán kiểm toán khái niệm Khái Niệm Cơ Bản Kho Vật Liệu khóa điện tử khóa số dùng 8051 khóa số dùng 89s52 Khóa Số Điện Tử khuếch đại kiểm tra Kinh doanh maketing kinh tế quản lí Kỹ Thuật Kỹ Thuật Vi Xử Lý làm mạch điện lý thú Làm quen AVR Lap Trinh Dieu Khien Robot Lập Trình lập trình 8051 Lập Trình AVR Lập Trình C lập trình c++ Lập Trình Led Quảng Cáo Lập Trình Nhúng Lập trình pic Lập trình Robot Lập Trình Vi Điều Khiển Lập Trình Với AVR Studio LCD 16x2 Lcd16x2 Led Clock Led Quay led sao băng led trai tim Led Trái Tim Lịch sử ra đời Linh Kiện Cơ Bản linh kiện điện tử Loa LPC 2378 LSB lý thú Mã AVR - C Mạch 7seg Mạch Amply.Mạch Loa Mạch Autorobo Mạch bảo vệ Mạch Cảm Biến mạch cảm ứng sờ tay Mạch Cầu H Mạch cube Mạch Đếm Sản Phẩm Mạch điện cơ bản Mạch điện hay Mạch Điện Ứng Dụng Mạch Điều khiển động cơ Mạch Động Cơ Mạch đồng hồ Mạch đồng hồ 4 led Mạch giao thông Mạch IC số Mạch in mạch khóa số mạch khuếch đại thuật toán mạch led chúc mừng năm mới mạch led đẹp Mạch Led đơn Mạch Led Quảng Cáo mach led trai tim mạch led trái tim Mạch Led Vumeter mạch lý thú Mạch Ma trận Phím Mạch Matrix Mạch nạp Mạch nguồn Mạch Nút Bấm mạch sóng rf mạch tăng áp Mạch thu phát Mạch tổ hợp MSI Mạch trái tim Mạch Vi điều khiển Microbicho module module GSM/GPS Module Sim548 Module Sim548 giao tiếp với vi điều khiển PIC Module Sim548C Mosfet Motor Mô Phỏng Phần Cứng Mô Tả Phần Cứng MSB mua led sao băng News Ngắt Ngắt Trong LPC23xx ngân hàng Ngôn Ngữ Ngôn Ngữ C Ngôn Ngữ Tự Học Lập Trình C Ngôn Ngữ VHDL Nguyên Lý nguyên lý ic 555 Nguyên Tắc nháy led Nhập môn C Nhỏ Gọn Nibble opamp People Phần Mềm phần mềm altium Designer Phần mềm điện tử Phần Mềm Điện Tử Phần Mềm Điện Tử Hay Phần Mềm Hay Phần Mềm Led Quảng Cáo phần mềm proteus 8 Phần mềm vi tính Phần Mền Phương pháp hàn linh kiện dán PIC pic16f877a Print Design Proteus Proteus 7.8 SP2 FULL PWM quà tặng bạn gái quà tặng độc đáo quản trị doanh nghiệp quản trị kinh doanh quét led 7 đoạn Relay robocon Robot ROBOT DÒ ĐƯỜNG rút gọn mạch logic tổ hợp Sach Dien Tu Sản Phẩm Thú Vị Sản Phẩm Thương Mại Sáng tạo Short Smart Home SMD sơ đồ nguyên lý spi Sports Sử Dụng Sử Dụng Đồng Hồ sử dụng đồng hồ VOM sử dụng ngắt trong pic sự khác nhau Sức mạnh số Tải tài chính tài chính doanh nghiệp tài chính ngân hàng Tài Khoản Chia Sẻ Tài Liệu Tài Liệu 8051 tài liệu avr Tài liệu Điện Tử Tài Liệu Pic Tài liệu robocon tài liệu về ngân hàng Tài Liệu Vi Điều Khiển tailieuvn Tạo cổng Com ảo Tạo cổng nối tiếp ảo tạo dự án trong keil arm Tạo Project trong Vi Xử Lý ARM tạo thư viện altium designer tạo xung vuông Tạp chí Tạp Chí Hay tăng áp Tập lệnh AT Team Support TEAMPLATE PROTEUS Test thị trường tài chính Thiết Bị Thú Vị Thiết kế robot Thiết lập Fuse Bits Thiết Lập Pin Thuật Toán Thuật Toán Điều Khiển PID Thuật Toán Quine MCCluskey Thư viện Protues Thực Hành Thyristor Timer Timer/Counter Tin Học Chia Sẻ Tổ Chức Bộ Nhớ tổng quan về proteus 8 Transistor Tranzito Tranzitor Trao đổi học tập Travel Trình Biên Dịch Trình Dịch Trong Suốt Truyền Thông Nối Tiếp Không Đồng Bộ- UART truyền thông nối tiếp RS232 Tụ điện TUT - 8051 - ASM TUT - 8051 - KeilC tự hành Tự Học C Tự Học Lập Trình C Tý hon UART Update USB Ứng Dụng Led Quảng Cáo ứng dụng mạch khuếch đại thuật toán vẽ mạch in vẽ mạch nguyên lý VHDL Vi Điều Khiển Vi điều khiển - Ứng dụng vi điều khiển PIC Vi mạch số Vi Xử Lý Vi Xử Lý 8051 Vi Xử Lý 8086 Vi Xử Lý ARM Vi Xử Lý PIC Video Video Mach Điện Virtual Serial Port Driver VOM vxl Web Design xác định góc quay động cơ xử lý chuỗi
Hiển thị các bài đăng có nhãn Sử Dụng Đồng Hồ. Hiển thị tất cả bài đăng

Hướng dẫn đo bằng đồng hồ (VOM)
1) Giới thiệu về đồng hồ vạn năng ( VOM)
Đồng hồ vạn năng ( VOM ) là thiết bị đo không thể thiếu được với bất kỳ một kỹ thuật viên điện tử nào, đồng hồ vạn năng có 4 chức năng chính là Đo điện trở, đo điện áp DC, đo điện áp AC và đo dòng điện.
Ưu điểm của đồng hồ là đo nhanh, kiểm tra được nhiều loại linh kiện, thấy được sự phóng nạp của tụ điện , tuy nhiên đồng hồ này có hạn chế về độ chính xác và có trở kháng thấp khoảng 20K/Vol do vây khi đo vào các mạch cho dòng thấp chúng bị sụt áp.
2) Hướng dẫn đo điện áp xoay chiều.
Sử dụng đồng hồ vạn năng đo áp AC
Khi đo điện áp xoay chiều ta chuyển thang đo về các thang AC, để thang AC cao hơn điện áp cần đo một nấc, Ví dụ nếu đo điện áp AC220V ta để thang AC 250V, nếu ta để thang thấp hơn điện áp cần đo thì đồng hồ báo kịch kim, nếu để thanh quá cao thì kim báo thiếu chính xác.
* Chú ý – chú ý :
Tuyết đối không để thang đo điện trở hay thang đo dòng điện khi đo vào điện áp xoay chiều => Nếu nhầm đồng hồ sẽ bị hỏng ngay lập tức !
Để nhầm thang đo dòng điện, đo vào
nguồn AC => sẽ hỏng đồng hồ
Để nhầm thang đo điện trở, đo vào nguồn AC
=> sẽ hỏng các điện trở trong đồng hồ
* Nếu để thang đo áp DC mà đo vào nguồn AC thì kim đồng hồ không báo , nhưng đồng hồ không ảnh hưởng .
Để thang DC đo áp AC đồng hồ không lên kim
tuy nhiên đồng hồ không hỏng
3) Hướng dẫn đo điện áp một chiều DC bằng đồng hồ vạn năng.
Khi đo điện áp một chiều DC, ta nhớ chuyển thang đo về thang DC, khi đo ta đặt que đỏ vào cực dương (+) nguồn, que đen vào cực âm (-) nguồn, để thang đo cao hơn điện áp cần đo một nấc. Ví dụ nếu đo áp DC 110V ta để thang DC 250V, trường hợp để thang đo thấp hơn điện áp cần đo => kim báo kịch kim, trường hợp để thang quá cao => kim báo thiếu chính xác.
Dùng đồng hồ vạn năng đo điện áp một chiều DC
* Trường hợp để sai thang đo :
Nếu ta để sai thang đo, đo áp một chiều nhưng ta để đồng hồ thang xoay chiều thì đồng hồ sẽ báo sai, thông thường giá trị báo sai cao gấp 2 lần giá trị thực của điện áp DC, tuy nhiên đồng hồ cũng không bị hỏng .
Để sai thang đo khi đo điện áp một chiều => báo sai giá trị.
* Trường hợp để nhầm thang đo
Chú ý – chú ý : Tuyệt đối không để nhầm đồng hồ vào thang đo dòng điện hoặc thang đo điện trở khi ta đo điện áp một chiều (DC) , nếu nhầm đồng hồ sẽ bị hỏng ngay !!
Trường hợp để nhầm thang đo dòng điện
khi đo điện áp DC => đồng hồ sẽ bị hỏng !
Trường hợp để nhầm thang đo điện trở khi đo điện
áp DC => đồng hồ sẽ bị hỏng các điện trở bên trong!
4) Hướng dẫn đo điện trở và trở kháng.
Với thang đo điện trở của đồng hồ vạn năng ta có thể đo được rất nhiều thứ.
  • Đo kiểm tra giá trị của điện trở
  • Đo kiểm tra sự thông mạch của một đoạn dây dẫn
  • Đo kiểm tra sự thông mạch của một đoạn mạch in
  • Đo kiểm tra các cuộn dây biến áp có thông mạch không
  • Đo kiểm tra sự phóng nạp của tụ điện
  • Đo kiểm tra xem tụ có bị dò, bị chập không.
  • Đo kiểm tra trở kháng của một mạch điện
  • Đo kiểm tra đi ốt và bóng bán dẫn.
* Để sử dụng được các thang đo này đồng hồ phải được lắp 2 Pịn tiểu 1,5V bên trong, để xử dụng các thang đo 1Kohm hoặc 10Kohm ta phải lắp Pin 9V.
4.1 – Đo điện trở :

Đo kiểm tra điện trở bằng đồng hồ vạn năng
Để đo tri số điện trở ta thực hiện theo các bước sau :
  • Bước 1 : Để thang đồng hồ về các thang đo trở, nếu điện trở nhỏ thì để thang x1 ohm hoặc x10 ohm, nếu điện trở lớn thì để thang x1Kohm hoặc 10Kohm. => sau đó chập hai que đo và chỉnh triết áo để kim đồng hồ báo vị trí 0 ohm.
  • Bước 2 : Chuẩn bị đo .
  • Bước 3 : Đặt que đo vào hai đầu điện trở, đọc trị số trên thang đo , Giá trị đo được = chỉ số thang đo X thang đoVí dụ : nếu để thang x 100 ohm và chỉ số báo là 27 thì giá trị là = 100 x 27 = 2700 ohm = 2,7 K ohm
  • Bước 4 : Nếu ta để thang đo quá cao thì kim chỉ lên một chút , như vậy đọc trị số sẽ không chính xác.
  • Bước 5 : Nếu ta để thang đo quá thấp , kim lên quá nhiều, và đọc trị số cũng không chính xác.
  • Khi đo điện trở ta chọn thang đo sao cho kim báo gần vị trí giữa vạch chỉ số sẽ cho độ chính xác cao nhất.
4.2 – Dùng thang điện trở để đo kiểm tra tụ điện
Ta có thể dùng thang điện trở để kiểm tra độ phóng nạp và hư hỏng của tụ điện , khi đo tụ điện , nếu là tụ gốm ta dùng thang đo x1K ohm hoặc 10K ohm, nếu là tụ hoá ta dùng thang x 1 ohm hoặc x 10 ohm.
Dùng thang x 1K ohm để kiểm tra tụ gốm
Phép đo tụ gốm trên cho ta biết :
  • Tụ C1 còn tốt => kim phóng nạp khi ta đo
  • Tụ C2 bị dò => lên kim nhưng không trở về vị trí cũ
  • Tụ C3 bị chập => kim đồng hồ lên = 0 ohm và không trở về.
Dùng thang x 10 ohm để kiểm tra tụ hoá
Ở trên là phép đo kiểm tra các tụ hoá, tụ hoá rất ít khi bị dò hoặc chập mà chủ yếu là bị khô ( giảm điện dung) khi đo tụ hoá để biết chính xác mức độ hỏng của tụ ta cần đo so sánh với một tụ mới có cùng điện dung.
  • Ở trên là phép đo so sánh hai tụ hoá cùng điện dung, trong đó tụ C1 là tụ mới còn C2 là tụ cũ, ta thấy tụ C2 có độ phóng nạp yếu hơn tụ C1 => chứng tỏ tụ C2 bị khô ( giảm điện dung )
  • Chú ý khi đo tụ phóng nạp, ta phải đảo chiều que đo vài lần để xem độ phóng nạp.
5 – Hướng dẫn đo dòng điện bằng đồng hồ vạn năng.
Cách 1 : Dùng thang đo dòng
Để đo dòng điện bằng đồng hồ vạn năng, ta đo đồng hồ nối tiếp với tải tiêu thụ và chú ý là chỉ đo được dòng điện nhỏ hơn giá trị của thang đo cho phép, ta thực hiện theo các bước sau
  • Bươc 1 : Đặt đồng hồ vào thang đo dòng cao nhất .
  • Bước 2: Đặt que đồng hồ nối tiếp với tải, que đỏ về chiều dương, que đen về chiều âm .
  • Nếu kim lên thấp quá thì giảm thang đo
  • Nếu kim lên kịch kim thì tăng thang đo, nếu thang đo đã để thang cao nhất thì đồng hồ không đo được dòng điện này.
  • Chỉ số kim báo sẽ cho ta biết giá trị dòng điện .
Cách 2 : Dùng thang đo áp DC
Ta có thể đo dòng điện qua tải bằng cách đo sụt áp trên điện trở hạn dòng mắc nối với tải, điện áp đo được chia cho giá trị trở hạn dòng sẽ cho biết giá trị dòng điện, phương pháp này có thể đo được các dòng điện lớn hơn khả năng cho phép của đồng hồ và đồng hồ cũmg an toàn hơn.
Cách đọc trị số dòng điện và điện áp khi đo như thế nào ?
* Đọc giá trị điện áp AC và DC Khi đo điện áp DC thì ta đọc giá trị trên vạch chỉ số DCV.A
  • Nếu ta để thang đo 250V thì ta đọc trên vạch có giá trị cao nhất là 250, tương tự để thang 10V thì đọc trên vạch có giá trị cao nhất là 10. trường hợp để thang 1000V nhưng không có vạch nào ghi cho giá trị 1000 thì đọc trên vạch giá trị Max = 10, giá trị đo được nhân với 100 lần
  • Khi đo điện áp AC thì đọc giá trị cũng tương tự. đọc trên vạch AC.10V, nếu đo ở thang có giá trị khác thì ta tính theo tỷ lệ. Ví dụ nếu để thang 250V thì mỗi chỉ số của vạch 10 số tương đương với 25V.
  • Khi đo dòng điện thì đọc giá trị tương tự đọc giá trị khi đo điện áp


Dientuchiase chia sẻ code và mạch đồng hồ Giờ - Phút - Nhiệt độ 2 IN 1, nhiều bạn hỏi để làm..Nên Post  lên các bạn xem nhé..


Code mã nguồn C:

#include <REGX52.H>
#include <MATH.H>
//Dinh nghia cac chan phim dieu chinh
#define Mode_Menu P3_2   //phim Mode de chon doi tuong dieu chinh
#define Mode_Up     P3_1   //phim Up de tang doi tuong
#define Mode_Down   P3_3   //phim Down de giam doi tuong

//dinh nghia cac chan dieu khien Anode Led
#define Led_ampm_Sang P1_0=0; //Led chi thi am_pm, sang la pm.
#define Led_ampm_Tat P1_0=1; 
#define GioHangChuc_Sang P1_1=0;
#define GioHangDonVi_Sang P1_2=0;
#define PhutHangChuc_Sang P1_4=0;
#define PhutHangDonVi_Sang P1_3=0;
#define Led_C_Sang P1_5=0; //Led phan cach gio va phut 
#define Led_C_Tat P1_5=1;
#define OffLed   P1=0xFF;

#define DQ P0_0

#define SCL         P0_6
#define SDA         P0_5
//dinh nghia cac chan dieu khien 7 doan
#define CLK         P2_0
#define STR         P2_1
#define SDI P2_2
//dinh nghia dia chi cac thanh ghi trong DS1307
#define SEC     0x00
#define MIN     0x01
#define HOUR   0x02

//cac ham dung cho DS1307
void I2C_Start();   //khoi dong cho DS1307
void I2C_stop();   
unsigned char I2C_write(unsigned char dat);   //ham ghi 1 byte du kieu vao DS1307
unsigned char I2C_read(); //ham doc 1 byte du kieu vao DS1307
unsigned char DS1307_read(unsigned char addr); //ham doc du lieu tu 1 thanh ghi bat ky
void DS1307_write(unsigned char addr,unsigned char dat); //ham ghi du lieu tu 1 thanh ghi bat ky 
void Init_DS1307();
void Write_DS1307();  //ham cai dat thoi gian vao DS1307
void Read_DS1307();  //ham doc thoi gian vao DS1307
void Convert_Number(); //ham chuyen doi tach so de hien thi tren led 7 thanh
void GHI_7DOAN(unsigned char addr);
void Display_Gio_Phut_Giay(); //ham hien thi gio phut giay tren led 7 thanh
void Display_Gio();
void Display_Phut();
void Display_Temp();
void ScanKey();      //ham quet phim nhan

//khai bao bien    //0   1    2    3    4    5    6    7    8    9  temp  C
unsigned char Display_Number[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x1C,0x46};//khai bao mang chua cac gia tri gom 10 phan tu
unsigned char SoGioHangChuc,SoGioHangDonVi,SoPhutHangChuc,SoPhutHangDonVi,SoGiayHangChuc,SoGiayHangDonVi;
unsigned int  dem_timer,Millisec,Millisec1; //bien dem ms
unsigned char sec,hour,min,min_temp,hour_temp;      //cac bien dem gio phut giay....
char sec2,count;
unsigned int Nhiet_Do,NhietDoHangChuc,NhietDoHangDonVi;
unsigned char kt_sec; //bien kiem tra xem RTC co hoat dong khong
unsigned char kt_sec2;
unsigned char ampm,Mode,Chop_Tat,Chop_Tat1; //bien vao cac che do chinh thoi gian
static bit presence;
//cac ham khai bao
void delay_us(unsigned int Time)
{
    unsigned int i,j;
    for(i=0;i<Time;i++)
        for(j=0;j<2;j++);
void delay_ms(unsigned int ms)   //ham delay
{
  unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<121;j++);
}
bit DS18B20_Init()
{
     DQ = 1 ;      
     Display_Temp();
//delay_us(8);   
     DQ = 0 ;     
     Display_Temp();
//delay_us(90) ;   
     DQ = 1 ;       
     Display_Temp();
//delay_us(8) ;
     presence = DQ ;    
     Display_Temp();
Display_Temp();
//delay_us(100) ;
     DQ = 1 ;
     return(presence) ; 
}

//-------------------------------------------------
// Ham doc 1 byte tu DS18b20 ra ngoai
//-------------------------------------------------
unsigned char ds18b20_readbyte(void)
{
unsigned char i = 0 ;
unsigned char Data = 0 ;
for (i = 8 ; i > 0 ; i--)
  {
    DQ = 0 ;
    Data >>= 1 ;
    DQ = 1 ; 
    if(DQ)
     Data |= 0x80 ;
Display_Temp();
    //delay_us(4) ;
  }
  return (Data) ;
}

//-------------------------------------------------
// Ham viet 1 byte vao DS18b20
//-------------------------------------------------
void ds18b20_writebyte(unsigned char Data)
{
  unsigned char i = 0 ;
  for (i = 8 ; i > 0 ; i--)
  {
    DQ = 0 ;
    DQ = Data&0x01 ;
    //Display_Temp();
delay_us(5) ;
    DQ = 1 ;
    Data>>=1 ;
  }
}

//-------------------------------------------------
// Ham chuyen doi va tra ve gia tri nhiet do do duoc
//-------------------------------------------------
float ds18b20_readtemp(void)
{
float temp;
unsigned char a,b;
DS18B20_Init(); // Khoi tao DS18b20
ds18b20_writebyte(0xCC) ;   // Cho phep VDK truy cap thang den cac lenh bo nho cua DS18b20
ds18b20_writebyte(0x44) ; // Khoi dong qua trinh do va chuyen doi nhiet do ra so nhi phan
Display_Temp();
DS18B20_Init() ;
ds18b20_writebyte(0xCC) ;  
ds18b20_writebyte(0xBE) ; // Cho phep doc du lieu tu bo nho DS18b20 ra ngoai
Display_Temp();
a = ds18b20_readbyte(); 
temp=((float)(a&0x0f))/16; // Lay phan thuc cua gia tri nhiet do
b = ds18b20_readbyte();
a =((a&0xf0)>>4)|((b&0x0f)<<4) ; // Lay phan nguyen cua gia tri nhiet do
temp=temp+a;
return temp; // Tra ve gia tri nhiet do
}
void timer0_ISR(void) interrupt 1 // ham ngat timer 0 :1ms
{
TF0 = 0;//xoa co tran
TH0 =0x00; // nap du lieu vao thanh ghi timer
TL0 =0x00;
TR0=1;
    Millisec++;
    if(Millisec==160)Millisec=0;
if (Millisec<100)
Chop_Tat=0;
else Chop_Tat=1;
}
void timer1_ISR(void) interrupt 3 // ham ngat timer 1 :1ms
{
    dem_timer++;
  if(dem_timer>=100)
{dem_timer=0;
Nhiet_Do=ds18b20_readtemp();}
TR1 = 0;
  TH1 = 0xc3;                // 50ms
  TL1 = 0x50;
  TR1 = 1;
}

//chuong trinh chinh

void main(void)
//khoi tao cho bo dem timer
TCON = 0x11; // che do 16 bit tu nap lai
TH0=0x00;
TL0=0x00; //nap gia tri dem cho thanh ghi timer 0
TH1 = 0xc3;                // 50ms
  TL1 = 0x50;
ET0 = 1;                   // Enable Timer 0 Interrupts
  TR0 = 1;                   // Start Timer 0 Running
EA=1;    //cho phep ngat
count=0;
sec=DS1307_read(0);
  if(sec&0x80==1) //kiem tra bit CH
    {DS1307_write(0,sec&0x7f); }
    while (1)
    {
if(Mode==3)
{//Nhiet_Do=ds18b20_readtemp();
ET1 = 1;                  // Enable Timer 1 Interrupts
  TR1 = 1;                   // Start Timer 1 Running
NhietDoHangChuc=Nhiet_Do/10;
NhietDoHangDonVi=Nhiet_Do%10;
EA=0;
Display_Temp();
EA=1;}
else
{ET1 = 0; 
TR1 = 0;
Read_DS1307();}
ScanKey();
    }
}
//******************************************************************************
// CAC CHUONG TRINH CON CHO I2C
//******************************************************************************
void I2C_start() //ham khoi dong I2C
{
SCL = 1;  
    SCL = 0;
SDA = 1; 
    SCL = 1;
SDA = 0;
SCL = 0; 

}
void I2C_stop()  
{
SCL = 1;   //keo chan SCL len 1
    SCL = 0;
SDA = 0; 

SCL = 1; 

SDA = 1;
}
unsigned char I2C_write(unsigned char dat)//ham ghi 1 byte du lieu vao DS1307
{
unsigned char i;
for (i=0;i<8;i++)
{
SDA = (dat & 0x80); ///? 1:0;
SCL=1;SCL=0;
dat<<=1;
}
SCL = 1; 
SCL = 0;
return dat;
}
unsigned char I2C_read(void)
{
bit rd_bit;
unsigned char i, dat;
dat = 0x00;
for(i=0;i<8;i++) /* For loop read data 1 byte */
{
SCL = 1;
rd_bit = SDA; /* Keep for check acknowledge */
dat = dat<<1;
dat = dat | rd_bit; /* Keep bit data in dat */
SCL = 0; /* Clear SCL */
}
return dat;
}
// CAC CHUONG TRINH CON CHO DS1307
//******************************************************************************
unsigned char DS1307_read(unsigned char addr)
{
unsigned int temp,ret;
I2C_start(); /* Start i2c bus */
I2C_write(0xD0); /* Connect to DS1307 */
I2C_write(addr); /* Request RAM address on DS1307 */
I2C_start(); /* Start i2c bus */
I2C_write(0XD1); /* Connect to DS1307 for Read */
ret = I2C_read(); /* Receive data */
I2C_stop();
//**********************************************************
temp = ret; /*BCD to HEX*/
ret = (((ret/16)*10)+ (temp & 0x0f)); /*for Led 7seg*/
//**********************************************************
return ret;
}

void DS1307_write(unsigned char addr,unsigned char dat)
{
unsigned int temp;
//********************************************** 
temp = dat ; /*HEX to BCD*/
dat = (((dat/10)*16)|(temp %10)); /*for Led 7seg*/
//**********************************************
I2C_start(); /* Start i2c bus */
I2C_write(0XD0); /* Connect to DS1307 */
I2C_write(addr); /* Request RAM address on DS1307 */
I2C_write(dat); /* Connect to DS1307 for Read */
I2C_stop();
}
void Init_DS1307()
{
sec   = 8;   //doc giay tu DS1307
min   = 5; //doc phut tu DS1307
//hour  = 7; //doc gio tu DS1307
}
void Read_DS1307()
{
sec   = DS1307_read(SEC);   //doc giay tu DS1307
min   = DS1307_read(MIN); //doc phut tu DS1307
hour  = DS1307_read(HOUR); //doc gio tu DS1307
}

void Write_DS1307()
{
DS1307_write(SEC,sec);    //ghi du lieu vao thanh ghi giay
DS1307_write(MIN,min);    //ghi du lieu vao thanh ghi phut
DS1307_write(HOUR,hour);    //ghi du lieu vao thanh ghi gio
}
//ham quet led hien thi gio phut giay
void Display_Gio_Phut_Giay()
{
switch (Mode)
{
case 0:
{Display_Gio();
Display_Phut();
break;}
case 1:
{if (Chop_Tat==0)Display_Gio();
Display_Phut();
break;}
case 2:
{Display_Gio();
if (Chop_Tat==0)Display_Phut();
break;}
}
OffLed;
if (ampm==1)Led_ampm_Sang
else Led_ampm_Tat;
delay_ms(1);
OffLed;
if (Chop_Tat==0)Led_C_Sang;
delay_ms(1);
}
void Display_Gio()
{   
unsigned int Data;

if (SoGioHangChuc!=0)
{OffLed;
Data=Display_Number[SoGioHangChuc];
GHI_7DOAN(Data);
GioHangChuc_Sang;
delay_ms(1);}
OffLed;
Data=Display_Number[SoGioHangDonVi];
GHI_7DOAN(Data);
GioHangDonVi_Sang;
delay_ms(1);
}
void Display_Phut()
{
unsigned int Data;

OffLed;
Data=Display_Number[SoPhutHangChuc];
GHI_7DOAN(Data);
PhutHangChuc_Sang;
delay_ms(1);
OffLed;
Data=Display_Number[SoPhutHangDonVi];
GHI_7DOAN(Data);
PhutHangDonVi_Sang;
delay_ms(1);
}
void Display_Temp()
{
unsigned int Data;
if (NhietDoHangChuc!=0)
{OffLed;
Data=Display_Number[NhietDoHangChuc];
GHI_7DOAN(Data);
GioHangChuc_Sang;
delay_ms(1);}
OffLed;
Data=Display_Number[NhietDoHangDonVi];
GHI_7DOAN(Data);
GioHangDonVi_Sang;
delay_ms(1);

OffLed;
Data=Display_Number[10];
GHI_7DOAN(Data);
PhutHangChuc_Sang;
delay_ms(1);
OffLed;
Data=Display_Number[11];
GHI_7DOAN(Data);
PhutHangDonVi_Sang;
delay_ms(1);
}
 
void Convert_Number()
{
if (hour>12)
{hour_temp=hour-12;
ampm=1;}
    if(hour==0)
{hour_temp=12;
ampm=1;}
  if ((hour>=1)&(hour<=12))
{hour_temp=hour;
ampm=0;}
SoGiayHangChuc=sec/10;
SoGiayHangDonVi=sec%10;
SoPhutHangChuc=min/10;
SoPhutHangDonVi=min%10;
SoGioHangChuc=hour_temp/10;
SoGioHangDonVi=hour_temp%10;
}
void GHI_7DOAN(unsigned char addr)
{
unsigned char temp,i;
temp=addr;
for(i=0;i<8;i++)
{
SDI=temp&0x01;
CLK=0;
CLK=1;
temp>>=1;
} // truyen duoc 1 byte
STR=0;
STR=1;
}
void ScanKey() //ham quet phim nhan
{
if(Mode_Menu==0)
{Convert_Number();
Display_Gio_Phut_Giay();
Mode++;
if(Mode==4)Mode=0;//Mode =0 la che do binh thuong, 1 la dieu chinh gio, 2 la dieu chinh phut, 3 la hien thi nhiet do
while(Mode_Menu==0)   
{Convert_Number();
Display_Gio_Phut_Giay();}
}
else if(Mode_Up==0)
{
switch (Mode)
{
case 0:
{Convert_Number();
Display_Gio_Phut_Giay();
break;}
case 1:
{Convert_Number();
Display_Gio_Phut_Giay();
hour++;;
if(hour>23)hour=0;
while(Mode_Up==0)
{Convert_Number();
Display_Gio_Phut_Giay();}
DS1307_write(2,hour);
break;}
case 2:
{Convert_Number();
Display_Gio_Phut_Giay();
min++;;
if(min>59)min=0;
while(Mode_Up==0)
{Convert_Number();
Display_Gio_Phut_Giay();}
DS1307_write(1,min);
break;}
}
}
else if(Mode_Down==0)
{
switch (Mode)
{
case 0:
{Convert_Number();
Display_Gio_Phut_Giay();
break;}
case 1:
{Convert_Number();
Display_Gio_Phut_Giay();
hour--;;
if(hour<0)hour=23;
while(Mode_Down==0)
{Convert_Number();
Display_Gio_Phut_Giay();}
DS1307_write(2,hour);
break;}
case 2:
{Convert_Number();
Display_Gio_Phut_Giay();
min--;;
if(min<0)min=59;
while(Mode_Down==0)
{Convert_Number();
Display_Gio_Phut_Giay();}
DS1307_write(1,min);
break;}
}
}
if (Mode!=3)
{Convert_Number();
Display_Gio_Phut_Giay();}
}

( Mạch + Code)
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download
ĐIỆN TỬ CHIA SẺ
Phạm Văn Ngọc Anh- 01644326695

Author Name

{picture https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0PUWA2genMqX3Sm26mBTX_30OJgDenoIi4K6BR-E1vl3nI7LALp0X759QZgzqrMcGBB7jEbdZnubJbp4n2ZZ22KT196CWCg9DLs3MfEivocdmkjZEPEn-A42hyphenhyphen9dmsca0VIDQr_LjqM/s512-Ic42/pham-van-ngoc-anh.jpg}

Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:

{facebook https://www.facebook.com/phamvanngocanh}
{twitter https://twitter.com/nghiphong1993}
{google https://plus.google.com/+dientuchiase/posts}
{youtube https://www.youtube.com/channel/UCeJKhA_goBNFmDw6RKNtmYQ}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.