tháng 3 2014

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

Hôm nay lục cái mạch bạn Chip vẽ, vì chip thấy chạy khá ổn định, lại gọn, hì hục đọc mạch in vẽ lại mạch nguyên lý đem lên cho các bạn xem ...có gì góp ý chip còn xúc tiến và nâng cấp ổn hơn,rất tiện lợi hơn dùng biến áp, sau này phát triển những thiết bị điều khiển gia đình thì Ok luôn ^^".. Mạch bản sau sẽ nhỏ gọn nhất bé nhất..















Echipkool - Chia sẻ kiến thức - Kết nối đam mê điện tử



Cảm variant Nhiệt degrees LM35 giao tiếp with the vi handle ATmega 16 qua ADC, when Nhiệt speed changes, the power pressure ra Cửa Cấm variant are change the following.
Chân Aref, footer of this cấp Electric pressure stable for use as a power pressure reference for ADC.

Mã số:
 / ************************************************* ****
Chương trình này được sản xuất bởi các
CodeWizardAVR V1.24.8d chuyên nghiệp
Chương trình tự động phát điện
© Bản quyền 1998-2006 Pavel Haiduc, HP InfoTech srl
http://www.hpinfotech.com

Dự án:
Phiên bản:
Ngày: 2014/03/24
Tác giả: Duy Luân                        
Công ty: UNT                          
Bình luận:


Loại chip: ATmega16
Loại chương trình: Ứng dụng
Tần số đồng hồ: 16.000000 MHz
Mô hình bộ nhớ: nhỏ
Kích thước SRAM bên ngoài: 0
Kích thước dữ liệu Stack: 256
************************************************** *** /

# Bao gồm <mega16.h>
# Bao gồm <delay.h>
# Include

/ / Chữ và số chức năng LCD Module
# Asm
   . Equ __ LCD_PORT = 0x15; PORTC
# Endasm
# Bao gồm <lcd.h>

# Xác định FIRST_ADC_INPUT 0
# Xác định LAST_ADC_INPUT 0
unsigned char adc_data [LAST_ADC_INPUT-FIRST_ADC_INPUT 1];
# Xác định ADC_VREF_TYPE 0xE0

/ / ADC ngắt dịch vụ thường xuyên
/ / Với chức năng quét tự động đầu vào
gián đoạn [ADC_INT] trống adc_isr (void)
{
đăng ký tĩnh unsigned char input_index = 0;
/ / Đọc 8 bit quan trọng nhất
/ / Của kết quả chuyển đổi AD
adc_data [input_index] = ADCH;
/ / Chọn ADC đầu vào tiếp theo
if (+ + input_index> (LAST_ADC_INPUT-FIRST_ADC_INPUT))
   input_index = 0;
ADMUX = (FIRST_ADC_INPUT | ADC_VREF_TYPE) + input_index;
/ / Bắt đầu chuyển đổi AD
ADCSRA | = 0x40;
}

khoảng trống lcd_puten (unsigned ngắn như vậy, unsigned char x, unsigned char y)
{
  A0 unsigned ngắn, a, b, c;
  a0 = so/1000; / / lay phan Nghìn
  a = (cái 1000 * A0) / 100 ;/ / lay phan tram
  b = (cái 1000 * A0-100 * a) / 10 ;/ / lay phan chuc
  c = (cái 1000 * 100 * A0-một-10 * b) ;/ / lay treo don vi
  lcd_gotoxy (x, y) ;/ / dua con tro ve dong cot y x
  lcd_putchar (A0 48) ;/ / ngày ra treo Nghìn ma ascii
  lcd_putchar (một +48) ;/ / ngày ra treo xe điện ma ascii
  lcd_putchar (b +48) ;/ / ngày ra treo chuc ma ascii
  lcd_putchar (c 48) ;/ / ngày ra treo don vi ma ascii
}

khoảng trống lcd_putnum (unsigned char như vậy, unsigned char x, unsigned char y)
{
  unsigned char a, b, c;
  a = so/100 ;/ / lay phan tram
  b = (cái 100 * a) / 10 ;/ / lay phan chuc
  c = (cái 100 * a-10 * b) ;/ / lay treo don vi
  lcd_gotoxy (x, y) ;/ / dua con tro ve dong cot y x
  lcd_putchar (một +48) ;/ / ngày ra treo xe điện ma ascii
  lcd_putchar (b +48) ;/ / ngày ra treo chuc ma ascii
  lcd_putchar (c 48) ;/ / ngày ra treo don vi ma ascii
}

/ / Khai báo biến toàn cầu của bạn ở đây

void main (void)
{
/ / Khai báo các biến cục bộ của bạn ở đây

Cổng / / Input / Output khởi
/ / Port A khởi tạo
/ / Func7 = Trong Func6 = Trong Func5 = Trong Func4 = Trong Func3 = Trong Func2 = Trong Func1 = Trong Func0 = Trong
/ / State7 = T = T State6 State5 = T = T State4 State3 = T = T State2 State1 = T = T State0
PORTA = 0x00;
DDRA = 0x00;

/ / Port B khởi tạo
/ / Func7 = Trong Func6 = Trong Func5 = Trong Func4 = Trong Func3 = Trong Func2 = Trong Func1 = Trong Func0 = Trong
/ / State7 = T = T State6 State5 = T = T State4 State3 = T = T State2 State1 = T = T State0
PORTB = 0x00;
DDRB = 0x00;

/ / Port C khởi tạo
/ / Func7 = Trong Func6 = Trong Func5 = Trong Func4 = Trong Func3 = Trong Func2 = Trong Func1 = Trong Func0 = Trong
/ / State7 = T = T State6 State5 = T = T State4 State3 = T = T State2 State1 = T = T State0
PORTC = 0x00;
DDRC = 0x00;

/ / Khởi tạo Port D
/ / Func7 = Trong Func6 = Trong Func5 = Trong Func4 = Trong Func3 = Trong Func2 = Trong Func1 = Trong Func0 = Trong
/ / State7 = T = T State6 State5 = T = T State4 State3 = T = T State2 State1 = T = T State0
PORTD = 0x00;
DDRD = 0x00;

/ / Timer / Counter 0 khởi
/ / Đồng hồ nguồn: Hệ thống đồng hồ
/ / Giá trị Clock: Timer 0 Ngưng
/ / Chế độ: Bình thường = FFh đầu
Đầu ra / / OC0: Ngắt kết nối
TCCR0 = 0x00;
TCNT0 = 0x00;
OCR0 = 0x00;

/ / Timer / Counter 1 khởi tạo
/ / Đồng hồ nguồn: Hệ thống đồng hồ
/ / Giá trị Clock: Timer 1 Ngưng
/ / Chế độ: Bình thường = FFFFh đầu
Đầu ra / / OC1A: discon.
Đầu ra / / OC1B: discon.
/ / Tiếng ồn Canceler: Tắt
/ / Input Capture trên rơi xuống cạnh
/ / Timer 1 ngắt tràn: Tắt
/ / Input Capture Interrupt: Tắt
/ / So sánh Một ngắt trận đấu: Tắt
/ / So sánh B Trận đấu gián đoạn: Tắt
TCCR1A = 0x00;
TCCR1B = 0x00;
TCNT1H = 0x00;
TCNT1L = 0x00;
ICR1H = 0x00;
ICR1L = 0x00;
OCR1AH ​​= 0x00;
OCR1AL = 0x00;
OCR1BH = 0x00;
OCR1BL = 0x00;

/ / Timer / Counter 2 khởi tạo
/ / Đồng hồ nguồn: Hệ thống đồng hồ
/ / Giá trị Clock: Timer 2 Ngưng
/ / Chế độ: Bình thường = FFh đầu
Đầu ra / / OC2: Ngắt kết nối
ASSR = 0x00;
TCCR2 = 0x00;
TCNT2 = 0x00;
OCR2 = 0x00;

/ / Ngắt ngoài (s) khởi tạo
/ / INT0: Tắt
/ / INT1: Tắt
/ / INT2: Tắt
MCUCR = 0x00;
MCUCSR = 0x00;

/ / Timer (s) / Counter (s) Interrupt (s) khởi tạo
TIMSK = 0x00;

/ / Analog Comparator khởi
/ / Analog Comparator: Tắt
/ / Analog Comparator Input Capture bởi Timer / Counter 1: Tắt
ACSR = 0x80;
SFIOR = 0x00;

/ / ADC khởi
/ / ADC tần số: 125.000 kHz
/ / ADC điện áp tham khảo:. Int, mũ. trên Aref
/ / ADC tự động kích hoạt Nguồn: Không
/ / Chỉ có 8 bit quan trọng nhất của
/ / Kết quả chuyển đổi AD được sử dụng
ADMUX = FIRST_ADC_INPUT | ADC_VREF_TYPE;
ADCSRA = 0xCF;

/ / LCD module khởi tạo
lcd_init (16);

/ / Cho phép ngắt toàn cầu
# Asm ("sei")

trong khi (1)
      {
      / / Đặt mã của bạn ở đây
     / / Lcd_clear ();
     lcd_gotoxy (3,0);
     lcd_putsf ("nhiệt độ");
     
      delay_us (100);
      lcd_putnum (adc_data [0], 6,1);
      delay_us (100);

      };
}



CTV - Duy Luân - echipkool.com - Support code: Duyluandt3@gmail.com

Chip nhận thấy nhiều bạn đam mê Led Vumetter nhưng chưa biết sẽ dùng mạch nào cho đẹp, rẻ, dễ làm, chip thấy mạch led nháy theo nhạc 40 led dùng LM324 là đơn giản dễ lắp ráp nên chia sẻ mạch cho các bạn thử làm kiểm nghiệm. Lúc nào rảnh chip sẽ làm và hướng dẫn chi tiết..Các bạn cứ làm có gì thắc mắc đấu nối thì cmt nhé.

Đây là video mạch Led vumetter Lm324







(Toàn bộ file Mạch + Nguyên lý + Layout + Mạch in)
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

Nguồn Sưu tầm

 Điện Tử | Tin Học - echipkool.com - Chia sẻ kiến thức - Kết nối đam mê điện tử


Phần mềm Protues công cụ hữu ích giúp sinh viên điện tử mô phỏng mạch điện, lập trình tương quan so với mạch thât,,,^^ Trong quá trình cài đặt Chip chụp ảnh hướng dẫn các bạn cài đặt...Bạn nào biết chỉ cho bạn chưa biết nhé.

I. Download Phần mềm Protues 8.0


( Full)
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

II. Hướng dẫn cài đặt.













Chạy tới cửa sổ màu đen cứ để nó chạy rồi tự tắt..đừng nhấn close





Điện Tử | Tin Học - echipkool.com - Chia sẻ kiến thức - Kết nối đam mê điện tử


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.