bạn download trên mạng về là xài được à.
Thông báo
Collapse
No announcement yet.
Clock 8051+DS1307: hiển thị Giờ + Phút + Giây + Ngày trong tuần + ngày + tháng + năm
Collapse
X
-
Code DS1307:
************************************************** ***************************************
#define WRITE 0xd0
#define READ 0xd1
#define SEC 0
#define MIN 1
#define HOUR 2
#define DAY 3
#define DATE 4
#define MONTH 5
#define YEAR 6
#define CONTROL 7
#define BYTE_COUNT 7
#define NVRAM_START 8
#define HZ 0x10
char gca_ds1307[BYTE_COUNT];
// char ngay_thang[3];
char bin_bcd(char bin)
{
char temp,i;
temp = bin;
i = 0;
while(1)
{
if(temp>=10)
{
temp -= 10;
i += 0x10;
}
else
{
i += temp;
}
}
return i;
}
char bcd_bin(char bcd)
{
char temp;
temp = bcd;
temp >>= 1;
temp &= 0x78;
return (temp+(temp >> 2)+(bcd & 0x0f));
}
void DS1307_Set()
{
char i;
for(i=0;i<7;i++)
{
gca_ds1307[i]=bin_bcd(gca_ds1307[i]);
}
gca_ds1307[SEC] &= 0x7F;
gca_ds1307[HOUR] &= 0x3F;
disable_interrupts(GLOBAL);
i2c_start();
i2c_write(WRITE);
i2c_write(SEC);
for(i=0;i<7;i++)
{
i2c_write(gca_ds1307[i]);
}
i2c_write(HZ);
i2c_stop();
enable_interrupts(GLOBAL);
}
void DS1307_Read()
{
char i;
disable_interrupts(GLOBAL);
i2c_start();
i2c_write(WRITE);
i2c_write(SEC);
i2c_start();
i2c_write(READ);
gca_ds1307[SEC] = i2c_read() & 0x7F;
gca_ds1307[MIN] = i2c_read() & 0x7F;
gca_ds1307[HOUR] = i2c_read() & 0x3F;
gca_ds1307[DAY] = i2c_read() & 0x7F;
gca_ds1307[DATE] = i2c_read() & 0x3F;
gca_ds1307[MONTH] = i2c_read() & 0x1F;
gca_ds1307[YEAR] = i2c_read(0);
i2c_stop();
enable_interrupts(GLOBAL);
for(i=0;i<7;i++)
{
gca_ds1307[i]=bcd_bin(gca_ds1307[i]);
}
}
char Read_Byte(char addr)
{
char i;
disable_interrupts(GLOBAL);
i2c_start();
i2c_write(WRITE);
i2c_write(addr);
i2c_start();
i2c_write(READ);
i = i2c_read(0);
i2c_stop();
enable_interrupts(GLOBAL);
return i;
}
void Write_Byte(char addr,char n)
{
disable_interrupts(GLOBAL);
i2c_start();
i2c_write(WRITE);
i2c_write(addr);
i2c_write(n);
i2c_stop();
enable_interrupts(GLOBAL);
}
************************************************** *************************************
Code LCD16x2:
************************************************** *************************************
/************************************************** ************************
THE 1602 CHAR LCD LIB
COPYRIGHT (c) 2005 BY JJJ.
-- ALL RIGHTS RESERVED --
File Name: LCD.h
Author: Jiang Jian Jun
Created: 2005/4/3
Modified: NO
Revision: 1.0
************************************************** *************************/
#ifndef LCD_CHAR_1602_2005_4_9
#define LCD_CHAR_1602_2005_4_9
#include <intrins.h>
//Port Definitions*************************************** *******************
sbit LcdRs = P2^0;
sbit LcdRw = P2^1;
sbit LcdEn = P2^2;
sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.Êý¾Ý¶Ë¿Ú
//ÄÚ²¿µÈ´ýº¯Êý************************************** ************************************
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
//while(DBPort&0x80);//ÔÚÓÃProteus·ÂÕæʱ£¬×¢ÒâÓÃÆÁ±Î´ËÓï¾ä£¬ÔÚµ÷ÓÃGotoXY( )ʱ£¬»á½øÈëËÀÑ»·£¬
//¿ÉÄÜÔÚд¸Ã¿ØÖÆ×Öʱ£¬¸ÃÄ£¿éûÓзµ»ØдÈëÍ걸ÃüÁ¼´ DBPort&0x80==0x80
//ʵ¼ÊÓ²¼þʱ´ò¿ª´ËÓï¾ä
LcdEn=0;
return DBPort;
}
//ÏòLCDдÈëÃüÁî»òÊý¾Ý******************************* *****************************
#define LCD_COMMAND 0 // Command
#define LCD_DATA 1 // Data
#define LCD_CLEAR_SCREEN 0x01 // ÇåÆÁ
#define LCD_HOMING 0x02 // ¹â±ê·µ»ØÔµã
void LCD_Write(bit style, unsigned char input)
{
LcdEn=0;
LcdRs=style;
LcdRw=0; _nop_();
DBPort=input; _nop_();//×¢Òâ˳Ðò
LcdEn=1; _nop_();//×¢Òâ˳Ðò
LcdEn=0; _nop_();
LCD_Wait();
}
//ÉèÖÃÏÔʾģʽ************************************** **********************
#define LCD_SHOW 0x04 //ÏÔʾ¿ª
#define LCD_HIDE 0x00 //ÏÔʾ¹Ø
#define LCD_CURSOR 0x02 //ÏÔʾ¹â±ê
#define LCD_NO_CURSOR 0x00 //ÎÞ¹â±ê
#define LCD_FLASH 0x01 //¹â±êÉÁ¶¯
#define LCD_NO_FLASH 0x00 //¹â±ê²»ÉÁ¶¯
void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
}
//ÉèÖÃÊäÈëģʽ************************************** **********************
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00 // default
#define LCD_MOVE 0x01 // »Ãæ¿ÉƽÒÆ
#define LCD_NO_MOVE 0x00 //default
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
//Òƶ¯¹â±ê»òÆÁÄ»************************************ ************************
/*
#define LCD_CURSOR 0x02
#define LCD_SCREEN 0x08
#define LCD_LEFT 0x00
#define LCD_RIGHT 0x04
void LCD_Move(unsigned char object, unsigned char direction)
{
if(object==LCD_CURSOR)
LCD_Write(LCD_COMMAND,0x10|direction);
if(object==LCD_SCREEN)
LCD_Write(LCD_COMMAND,0x18|direction);
}
*/
//³õʼ»¯LCD***************************************** *******************
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND,0x38); //8λÊý¾Ý¶Ë¿Ú,2ÐÐÏÔʾ,5*7µãÕó
LCD_Write(LCD_COMMAND,0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //¿ªÆôÏÔʾ, ÎÞ¹â±ê
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //ÇåÆÁ
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //ACµÝÔö, »Ãæ²»¶¯
}
//************************************************** **********************
void GotoXY(unsigned char x, unsigned char y)
{
if(y==0)
LCD_Write(LCD_COMMAND,0x80|x);
if(y==1)
LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
while(*str!='\0')
{
LCD_Write(LCD_DATA,*str);
str++;
}
}
/*
void LCD_LoadChar(unsigned char user[8], unsigned char place)
{
unsigned char i;
LCD_Write(LCD_COMMAND,0x40|(place*8));
for(i=0; i<8; i++)
LCD_Write(LCD_DATA,user[i]);
}
*/
//************************************************** **********************
#endif
Comment
-
hi bạn ơi! mình chờ hồi âm của bạn mãi mà không thấy, bạn có thể gửi mail nguyensiluan@gmail.com cho mình 2 thư viện đó được không? nếu ở trên mạng có , bạn gửi link cho mình cũng được, cám ơn bạn trước!
Comment
-
Nguyên văn bởi chau0105_bt Xem bài viết
bạn ơi mình downd về biên dịch thử nó báo lỗi này! hình như thư viện không phải của chương trình này thì phải: Clock van nien mach thuc_LCD16x2
bạn cho mình cái file gốc đi!!!
Comment
-
Nguyên văn bởi chjpchjp1991Bạn down về nhưng phải xem định nghĩa file chuẩn với file main chưa..rồi chân trong các file đó..rồi kiểm tra các hàm lệnh có khớp để gọi không, mình không lập trình được món Đồng Hồ này nhưng cũng biết sơ sơ chân vào ra mấy tí..^^"
Comment
-
Nguyên văn bởi chjpchjp1991Mình nhìn thư viện LCD cũng quen lắm..chương trình của bạn ấy..nhưng không nhớ là ở chỗ nào..ngày trước có tháy..giờ tìm không ra..Thôi chấp nhận đi bạn lee_nguyen..không có xài theo kiểu ko có..^^"
Comment
-
Nguyên văn bởi chjpchjp1991me too...Mình cũng có đồng hồ LCD nhưng chứ có mấy món âm lich ^^
Comment
-
Nguyên văn bởi viboyth.haui Xem bài viếtHiển thị giờ phút giây ngày tháng năm trên LCD
Dong Ho Thoi Gian Thuc LCD.rar
Comment
-
cho m hỏi ké nhe , m dùng tip 41 kéo led 7 đoạn ( Led 7 Thanh 1.2 Inch Anot 1 Số(3x4cm)_LED 7 Thanh_LED_BanLinhKien.Vn - MinhHaGroup.Com ) , nhưng giả sử độ sáng khi cấp nguồn + vào chân anot là 100% thì , m dùng tip chỉ đc 70 % , m test thử thấy bỏ trở từ chân điều khiển đến chân B tip 41 thì led sáng hơn , và dùng típ sáng hơn C1815 , và nếu mắc thêm trzito C18515 đệm cho Tip , led vẫn sáng thế
http://nw3.upanh.com/b3.s36.d1/2ebcc...3.untitled.bmp
( chả hiu sao , tải file lên k đc )
Comment
Bài viết mới nhất
Collapse
-
bởi sonnenDịch vụ son nen nha xuong gia re thi công sơn Epoxy tại TPHCM thi cong son epoxy gia re
- Thi công sơn sàn ở nhà kho nhà xưởng các KCN chạy dài từ Nam ra Bắc son nen nha xuong
- Thi công công trình mới hay bảo dưỡng sửa chữa giải đáp các vấn đề nan giải của nhiều khách
-
Channel: Quảng cáo
hôm nay, 16:28 -
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
Hôm qua, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
Hôm qua, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
Hôm qua, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
Comment