mời các bạn mới làm quen lập trình C vào đây ngâm cứu nhé, có rất nhiều thứ rùi không lên mở các bài mới nữa
Thông báo
Collapse
No announcement yet.
HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051-[Chỉ dành post bài hướng dẫn]
Collapse
X
-
về cái LCD : bạn cần hiểu được cách gửi một lệnh lên LCD và gửi dữ liệu lên LCD, ngày trước mình có làm cái LCD 2 hàng mỗi hàng 16 kí tự. thì làm như dưới đây
// khai b
sbit rs=P1^1;
sbit rw=P1^0;
sbit e=P1^2;
void delay1()
{
TMOD=0x21;
TH0=0xfc;
TL0=0x11;
TR0=1;
while(TF0==0)
{}
TF0=0;
TR0=0;
}
void LCD_write(unsigned char x) // hàm gửi dữ liệu lên màn hình LCD
{
rs=1; // chọn thanh ghi dữ liệu
rw=0; // chọn chế độ ghi dữ liệu
P0=x; //đưa dữ liệu ra cổng P0
e=1; // chân cho phép từ mức cao xuống thấp để chốt dữ liệu
e=0;
delay1();delay1(); //
}
void LCD_cmd(unsigned char x) // gửi lệnh lên màn hình
{
rs=0; // chọn thanh ghi lệnh
rw=0; // chọn chế độ ghi dữ liệu
P0= x; // đưa ra trên cổng P0
e=1; // chân cho phép từ mức cao xuống thấp để chốt dữ liệu
e=0;
delay1();delay1(); //
}
void LCD_init() // khởi tạo màn hình LCD
{ LCD_cmd(0x01); // xóa màn hình
LCD_cmd(0x38); // hai hàng matran 5x7
LCD_cmd(0x38); //
LCD_cmd(0x0c); // bật màn hình tắt con trỏ
LCD_cmd(0x06); //dich con trỏ
LCD_cmd(0x80); // đặt con trỏ về đầu dòng thứ nhất
}
còn về điều khiển động cơ bằng băm xung >>> điều chế độ rộng xung. cái này có rất nhiều trong diễn đàn rùi. bạn gắng đọc thêm nhéchỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
Everything should be made as simple as possible, but not simpler
Comment
-
của bạn nè : http://www.dientuvietnam.net/forums/...mpleted-15613/Nguyên văn bởi myfriend_bd Xem bài viếtBà kon ơi
Có ai biết lậ trình cho led ma trận cơ bản ko?
giúp mình vớichỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
Everything should be made as simple as possible, but not simpler
Comment
-
xin chào các cao thủ,minh đang bạp bẹ học vdk mình đang làm mạch đồng hồ mà gạp chút trục trạc cụ thẻ như sau.
mạch mình mo phổng thì chạy ok nhưng khi ra mạch thực tế thì led bị chớp.mình có thay dổi chỗ minh boi đỏ ở bên dưới nhưng vẫn không đươc.
//############ngat time_0 dung quet led 7 doan ###############
void timer0_ISR (void) interrupt 1 //ngat time_0 (tao ngat 2ms)
{ TR0 = 0;
TH0 = 0xf0; // 2ms
TL0 = 0x00;
data595(0xff);data595(0xff);data595(0xff);data595( 0xff);chot();//xoa bong ma
tam_gio_phut_giay=(gio_phut_giay[quay]);
tam_thu_ngay_thang_nam=(thu_ngay_thang_nam[quay]);
if(chon_hien_thi==0){}
else{//####################
if(nhap_nhay==0xaa){}
còn đây là file mo phong va code rat mong nhận được sự chỉ giáo.
linhk:lich_am_duong.zipY!M: xindungquentoi_hp16
Mail:
Sites:
Comment
-
Nguyên văn bởi vanhoi01 Xem bài viếtxin chào các cao thủ,minh đang bạp bẹ học vdk mình đang làm mạch đồng hồ mà gạp chút trục trạc cụ thẻ như sau.
mạch mình mo phổng thì chạy ok nhưng khi ra mạch thực tế thì led bị chớp.mình có thay dổi chỗ minh boi đỏ ở bên dưới nhưng vẫn không đươc.
//############ngat time_0 dung quet led 7 doan ###############
void timer0_ISR (void) interrupt 1 //ngat time_0 (tao ngat 2ms)
{ TR0 = 0;
TH0 = 0xf0; // 2ms
TL0 = 0x00;
data595(0xff);data595(0xff);data595(0xff);data595( 0xff);chot();//xoa bong ma
tam_gio_phut_giay=(gio_phut_giay[quay]);
tam_thu_ngay_thang_nam=(thu_ngay_thang_nam[quay]);
if(chon_hien_thi==0){}
else{//####################
if(nhap_nhay==0xaa){}
còn đây là file mo phong va code rat mong nhận được sự chỉ giáo.
linhk:[ATTACH]71651[/ATTACH]
sao không co ai giup minh với vậy có ai biết chỉ mình với mình cảm ơn trước.Y!M: xindungquentoi_hp16
Mail:
Sites:
Comment
-
Các anh giứp em ,mã code asm này với ! Em còn gà lắm . Em muốn nó chạy từ đầu đến cuối chương trình rồi nó kết thúc . " ko lập lại chu kỳ cám ơn " ! em phải thêm gì ở đâu và sửa như thế nào ?
ORG 0000H
;================================================= =========================
BAT_DAU_NHAY:
;Dong:1
MOV P0,#00000001B
CALL Delay_2
;Dong:2
MOV P0,#00000000B
CALL Delay_2
;Dong:3
MOV P0,#00001000B
CALL Delay_2
;Dong:4
MOV P0,#00000000B
CALL Delay_60
;Dong:5
MOV P0,#00000001B
CALL Delay_2
;Dong:6
MOV P0,#00000000B
CALL Delay_2
;Dong:7
MOV P0,#00000001B
CALL Delay_2
;Dong:8
MOV P0,#00000000B
CALL Delay_2
;Dong:9
MOV P0,#00000010B
CALL Delay_2
;Dong:10
MOV P0,#00000000B
CALL Delay_2
;Dong:11
MOV P0,#00000010B
CALL Delay_2
;Dong:12
MOV P0,#00000000B
CALL Delay_2
;Dong:13
MOV P0,#00000010B
CALL Delay_2
;Dong:14
MOV P0,#00000000B
CALL Delay_2
;Dong:15
MOV P0,#00000001B
CALL Delay_2
;Dong:16
MOV P0,#00000000B
CALL Delay_2
;Dong:17
MOV P0,#00000001B
CALL Delay_2
;Dong:18
MOV P0,#00000000B
CALL Delay_2
;Dong:19
MOV P0,#00000001B
CALL Delay_2
;Dong:20
MOV P0,#00000000B
CALL Delay_2
;Dong:21
MOV P0,#00000010B
CALL Delay_2
;Dong:22
MOV P0,#00000000B
CALL Delay_2
;Dong:23
MOV P0,#00000010B
CALL Delay_2
;Dong:24
MOV P0,#00000000B
CALL Delay_2
;Dong:25
MOV P0,#00000010B
CALL Delay_2
;Dong:26
MOV P0,#00000000B
CALL Delay_2
;Dong:27
MOV P0,#00000001B
CALL Delay_2
;Dong:28
MOV P0,#00000000B
CALL Delay_2
;Dong:29
MOV P0,#00000001B
CALL Delay_2
;Dong:30
MOV P0,#00000000B
CALL Delay_2
;Dong:31
MOV P0,#00000001B
CALL Delay_2
;Dong:32
MOV P0,#00000000B
CALL Delay_2
;Dong:33
MOV P0,#00000001B
CALL Delay_2
;Dong:34
MOV P0,#00000000B
CALL Delay_60
;Dong:35
MOV P0,#00001000B
CALL Delay_2
JMP BAT_DAU_NHAY
;================================================= ===============
;-------------------------------------
;Delay 2 buoc
Delay_2:
MOV R1,#2
MOV R2,#0
MOV R3,#0
lapDelay_2:
DJNZ R3,lapDelay_2
DJNZ R2,lapDelay_2
DJNZ R1,lapDelay_2
RET
;-------------------------------------
;Delay 60 buoc
Delay_60:
MOV R1,#60
MOV R2,#0
MOV R3,#0
lapDelay_60:
DJNZ R3,lapDelay_60
DJNZ R2,lapDelay_60
DJNZ R1,lapDelay_60
RET
ENDLast edited by an_87pt; 04-01-2014, 01:29.
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
02-02-2026, 21:13 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
02-02-2026, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
02-02-2026, 10:48 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -

Comment