các pác xem giùm em, em đã lập trình và chạy thông trên Proteus nhưng khi làm mạch thật thì " ì ạch" ko chạy
Thông báo
Collapse
No announcement yet.
8051 hien thi LCD
Collapse
X
-
Bạn cần đưa sơ đồ và code lên. Sơ đồ đưa dưới dạng hình ảnh thì tốt.AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
Xem thêm tại Online Store ---> Click here
Mob: 0982.083.106
-
Bạn cần code LCD 4 bit hay 8 bit, tôi gửi cho, trên mạng cũng nhiều mà...Đây là LCD 4 bit, tôi ko dùng busy flag, nếu bạn muốn chặt chẽ hơn thì thay đổi 1 chút..Code:/* LCD define */ #define DISPLAY_ON 4 #define DISPLAY_OFF 0 #define CURSOR_ON 2 #define CURSOR_OFF 0 #define CURSOR_BLINK_ON 1 #define CURSOR_BLINK_OFF 0 #define SHIFT_DISPLAY 8 #define MOVE_CURSOR 0 #define SHIFT_RIGHT 4 #define SHIFT_LEFT 0 #define B_INTERFACE 16 #define N_INTERFACE 0 #define TWO_LINES 8 #define ONE_LINE 0 #define BIG_FONT 4 #define SMALL_FONT 0 #define INCREMENT_CURSOR 2 #define DECREMENT_CURSOR 0 #define DISPLAY_SHIFT_ON 1 #define DISPLAY_SHIFT_OFF 0 void init_uC(); void delay10us(); void delay100us(); void time_ms(); void delay_ms(int n); /* LCD procedures */ void enable_clock(); void write_byte(BYTE wbyte, BYTE cmd); void turnoff_display(); void cursor_home(); void control_display(BYTE D, BYTE C, BYTE B); void clear_display(); void function_set(BYTE DL, BYTE N, BYTE F); void entry_mode_set(BYTE ID, BYTE S); void cursor_shift(BYTE SC, BYTE RL); void write_char(BYTE character); void jump_cursor(BYTE address); void reset_lcd(); void write_string_lcd(char *lcd_message); void lcd_introduction(char *f, char *s); /* Some delay procedures */ void delay10us() { BYTE i; for (i=0;i<1;i++); } void delay100us() { BYTE i; for (i=0;i<30;i++); } void time_ms() /* Approximate 1 ms delay with XTAL 11.0592MHz */ { int i; for (i = 0; i < 115 ; i++) ; } void delay_ms(int n) /* Approximate do nothing n*1ms */ { int i; for (i=0; i< n ; i++) time_ms(); } /* The procedures are used to display LCD */ sbit RS = P2^0; sbit LCD_RW = P2^1; sbit LCD_E = P2^2; sbit DB7 = P2^7; sbit DB6 = P2^6; sbit DB5 = P2^5; sbit DB4 = P2^4; void enable_clock() { LCD_E = 1; LCD_E = 0; } void write_byte(BYTE wbyte, BYTE cmd) { RS=cmd; DB7=(wbyte>>7)&0x01; DB6=(wbyte>>6)&0x01; DB5=(wbyte>>5)&0x01; DB4=(wbyte>>4)&0x01; enable_clock(); DB7=(wbyte>>3)&0x01; DB6=(wbyte>>2)&0x01; DB5=(wbyte>>1)&0x01; DB4=(wbyte>>0)&0x01; enable_clock(); } void turnoff_display() { write_byte(0x08,0); } void cursor_home() { write_byte(0x02,0); delay_ms(5); } void control_display(BYTE D, BYTE C, BYTE B) /* Control display on/off, cursor blink */ { write_byte(0x08 | D | C | B,0); } void clear_display() /* Clear display */ { write_byte(0x01,0); } void function_set(BYTE DL, BYTE N, BYTE F) /* Function set */ { write_byte(0x20 | DL | N | F,0); } void entry_mode_set(BYTE ID, BYTE S) /* Entry mode set */ { write_byte(0x04 | ID | S,0); } void cursor_shift(BYTE SC, BYTE RL) { write_byte(0x10 | SC | RL,0); } void write_char(BYTE character) { write_byte(character,1); } void jump_cursor(BYTE address) { write_byte(address,0); } void reset_lcd() { LCD_RW = 0; RS = 0; DB7=0; DB6=0; DB5=1; DB4=1; delay_ms(5); DB7=0; DB6=0; DB5=1; DB4=1; delay100us(); DB7=0; DB6=0; DB5=1; DB4=1; time_ms(); DB7=0; DB6=0; DB5=1; DB4=0; delay100us(); function_set(N_INTERFACE, TWO_LINES, BIG_FONT); /* Byte interface, two lines, 5x10 dots */ turnoff_display(); control_display(DISPLAY_ON, CURSOR_OFF, CURSOR_BLINK_OFF); clear_display(); entry_mode_set(INCREMENT_CURSOR, DISPLAY_SHIFT_ON); /* Increment cursor position, display shift */ control_display(DISPLAY_ON, CURSOR_OFF, CURSOR_BLINK_OFF); } void write_string_lcd(char *lcd_message) { BYTE i=0; while(i<strlen(lcd_message)) { write_char(lcd_message[i]); i++; } } void lcd_introduction(char *f, char *s) { clear_display(); cursor_home(); jump_cursor(0x81); write_string_lcd(f); jump_cursor(0xC2); write_string_lcd(s); control_display(DISPLAY_ON, CURSOR_OFF, CURSOR_BLINK_OFF); delay_ms(3000); clear_display(); }|
Comment
-
http://linhnc308.googlepages.com/myprojects
Tren nay co kha nhieu code ma toi da lam va suu tam dc. ban co the tham khao.Ethernet-RS232, PIC Webserver, RFID Reader
CallerID, Cảnh báo BTS, ...
0988006696
linhnc308@gmail.com
http://linhnc308.blogspot.com
Comment
-
Bạn vào trang sau sẽ có nội dung bạn cần,tất nhiên bạn phải biết đọc tiếng anh,nếu có khó khăn thì lên tiếng nhéNguyên văn bởi philong Xem bài viếtban oi co the giup minh mot ty duoc khong. Hien gio minh dang lam do an tim hieu ve VDK 8051 giao tiep voi lcd lm032l ban co the giup minh tim hieu ve cach ket noi vo cho minh code cua lcd do duoc khong. Minh cam on ban.
http://www.latke.net/lcd/
http://dientuvietnam.net/forums/showthread.php?t=8577
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9
Điến âp vào 24V;Điên áp ra 30V;Dòng điện ra 10A
Trên nền tảng mạch Boost thay đổi như sau: cự âm tụ lọc C không nối mas mà nối vào Vc +24V
Mach phản hồi tao điê áp trên tụ lọc này ổn đinh ở 6V
Kết quả:
· Điện áp ra =24V+ 6V=30V
· Công...-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 19:33 -
-
bởi chinhnguyen92. Các yếu tố để dòng điện đầu ra không bị "thiếu"
Dòng điện đầu ra bị "thiếu" có thể hiểu là không đủ 10A theo yêu cầu hoặc bị sụt áp khi tải thay đổi. Để đảm bảo điều này, bạn cần xem xét các yếu tố sau:
a. Khả năng chịu dòng của cuộn cảm- Dòng bão hòa (I_sat): Như
-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 19:06 -
bởi chinhnguyen9
1. Tính toán cuộn cảm (Inductor)
Để tính giá trị cuộn cảm, chúng ta cần thực hiện các bước sau:
a. Xác định chu kỳ nhiệm vụ (Duty Cycle - D)
Với mạch tăng áp lý tưởng, chu kỳ nhiệm vụ được tính theo công thức :
D=1-VinVout=1-24V30V=0.2
Vậy D = 0.2 (20%)
b....-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 19:03 -
-
bởi chinhnguyen9Công thức
Gain (dB) = 20 × log₁₀(A)
Thí dụ 1; 60dB
log₁₀(A)=60/20=3
⇒ A=V_out / V_in = 10³ = 1.000
Thí dụ 2; 100dB
log₁₀(A)=100/20=5
⇒ A=V_out / V_in = 105 = 100.000
Tí dụ 3; LM 358
Large Signal Open Loop Voltage Gain AVOL V/mV RL = 2.0...-
Channel: Hướng dẫn sử dụng diễn đàn
19-03-2026, 08:44 -
-
Trả lời cho Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
18-03-2026, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
18-03-2026, 09:57 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:04 -

Comment