Đăng nhập
Tìm kiếm
Chào mừng bạn đến với Chợ thông tin Thiết bị điện Việt Nam.
» Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần hỏi/đáp để biết cách dùng diễn đàn.
» Để có thể tham gia thảo luận, các bạn phải đăng ký làm thành viên, click vào đây để đăng ký.
Vui lòng nhấn để đăng ký.
Trả lời
 
Công cụ bài viết Kiểu hiển thị
  #1  
Cũ 16-04-2013, 10:24 AM
matassan matassan đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 4
Mặc định Nhờ các bác Pro chuyển giúp sang file HEX!

Hệ thống quảng cáo SangNhuong.com


LCD based Digital Clock with 8051 Microcontroller & RTC DS12C887 : Circuit & C Code


Em tình cờ tìm thấy trang web này hướng dẫn làm đồng hồ số sử dụng LCD 16X2 rất đầy đủ. Em là dân ngoại đạo nên không hiểu và chỉ biết bắt chước làm theo mà thôi. layout rồi làm mạch in với em là chuyện nhỏ. Tuy nhiên code thì em thua :-??. Họ có cung cấp code nhưng em dùng C chuyển thành file HEX thì không được các bác ạ! Mong bác nào làm được thì chuyễn giúp em, hoặc hướng dẫn em chuyển với ạ.. Em xin đa tạ các bác!
Mã:
//Program for an LCD based clock using RTC DS12C887 and 8051 microcontroller (AT89C51) using update interrupt /*24 hr clock set p3^3=0,then start=0 them set time by dig_hr1 & dig_min1, then remove p3^3 & start */ #include #include #define dataport P2 #define port P1 sbit reset = port^0; sbit rs = port^1; sbit rw = port^2; sbit e = port^3; sbit dig_hr1=port^4; sbit dig_min1=port^5; sbit start=port^6; int hr0 ,hr1=0; int min0,min1=0; int sec0,sec1=0; unsigned char temp,hr,min,sec,num[60]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X10,0X11,0X12,0X13,0X14,0X15,0X16,0X17,0X18,0X19,0X20,0X21,0X22,0X23,0X24,0X25,0X26,0X27,0X28,0X29,0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,0X40,0X41,0X42,0X43,0X44,0X45,0X46,0X47,0X48,0X49,0X50,0X51,0X52,0X53,0X54,0X55,0X56,0X57,0X58,0X59}; void delay(unsigned int msec ) { int i ,j ; for(i=0;i23) hr1=0; lcd_cmd(0xc3); lcd_data_int(hr1); lcd_data(':'); hr0=hr1; } void set_min1() { min1++; if(min1>59) min1=0; lcd_cmd(0xc6); lcd_data_int(min1); min0=min1; } void set_time() interrupt 2 // Time set { lcd_cmd(0x01); if(start==0) { lcd_data_string("SET TIMING"); lcd_cmd(0xc3); lcd_data_int(hr1); lcd_data(':'); lcd_data_int(min1); while(start==0) { delay(10); if(dig_hr1==0) set_hr1(); if(dig_min1==0) set_min1(); } } lcd_cmd(0x01); hr=num[hr1]; min=num[min1]; set_rtc_time(); } bcdconv(unsigned char mybyte) { unsigned char x,y; x= mybyte & 0x0F; x=x | 0x30; y= mybyte & 0xF0; y=y>>4; y=y | 0x30; lcd_data(y); lcd_data(x); } void read_rtc_display() interrupt 0 // Alarm interrupt { lcd_cmd(0x01); lcd_cmd(0x80); lcd_data_string("TIME:"); lcd_cmd(0X87); reset=0; reset=1; XBYTE[11]=0x12; hr=XBYTE[4]; temp=0x87; bcdconv(hr); lcd_data(':'); min=XBYTE[2]; bcdconv(min); lcd_data(':'); sec=XBYTE[0]; bcdconv(sec); } void main() { reset=1; lcd(); XBYTE[10]=0x20; XBYTE[11]=0x12; lcd_cmd(0x01); IE=0x85; while(1); }
Trả lời với trích dẫn


CHUYÊN MỤC ĐƯỢC TÀI TRỢ BỞI
  #2  
Cũ 16-04-2013, 10:24 AM
hanamtbxd hanamtbxd đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 12
Mặc định

Hệ thống quảng cáo SangNhuong.com

Trả lời với trích dẫn


  #3  
Cũ 16-04-2013, 10:24 AM
camlyvt camlyvt đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 3
Mặc định

cảm ơn Mod nha!
Tiện đây phiền mod chịu khó xem giúp mình xem code viết như vậy đã đúng chưa được không?
Trả lời với trích dẫn


  #4  
Cũ 16-04-2013, 10:24 AM
dunglevo dunglevo đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 7
Mặc định

Hệ thống quảng cáo SangNhuong.com

he he he... cảm ơn nhìu nha!
tui làm được rồi!
Trả lời với trích dẫn


CHUYÊN MỤC ĐƯỢC TÀI TRỢ BỞI
Trả lời


Công cụ bài viết
Kiểu hiển thị

Quyền viết bài
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is Mở
Mặt cười đang Mở
[IMG] đang Mở
HTML đang Mở
Chuyển đến

SangNhuong.com


Múi giờ GMT +7. Hiện tại là 09:23 PM