con 89 đã có điện trở treo nội ở p1,p2,p3 và không có ở p0 và các bác trở lại vấn đề chính đi nào
Thông báo
Collapse
No announcement yet.
help code asm 8951
Collapse
X
-
Chính vì viết bằng ASM thì mới cần phải set bit để là cổng vào. Chứ không bạn clear nó, đố bạn mà đọc được tín hiệu logic vào đó!Nguyên văn bởi caovanhuong Xem bài viếtcode viết bằng ASM chứ có phải C đâu mà set là bit vào hay ra, nó tự điều chỉnh vào hay ra luôn. khi mình mov giá trị ra port thì port nó sẽ xuất tín hiệu ra, khi mình kiểm tra port thì nó lại là tín hiệu vào.
tôi chưa nhìn chương trình. nhưng nhìn cái mạch mô phỏng thì thấy thiếu mấy con trở kéo lên ở mấy cái nút nhấn (mấy nút nhấn này nhằm xác định mức logic cho nút nhấn, bạn thả nổi nó như vậy thì khi nhấn nút nó sẽ không hiểu là đang ở mức cao hay thấp)
Comment
-
89 chỉ có PORT0 là ko có trở pullups nội thôi. 89 thường chỉ nên lập trình nút nhấn tích cực âm.Nguyên văn bởi caovanhuong Xem bài viếtmấy con 89xxx làm gì có trở treo nội, chỉ có AVR và PIC mới có thôi. AVR thì thường là có trở treo nội cả 4 port, còn PIC thì chỉ có portB thôi và không phải con nào cũng có.

cấu trúc vào ra của 89 tương đối đơn giản, tùy vào cấu trúc phần cứng bên trong VDK mà thiết lập trạng thái tích cực cho nút nhấn. Cũng như PIC có thể cho nút nhấn tích cực dương, còn 89 nếu cho tích cực dương thì có 2 trường hợp xảy ra là; một, hư chân port đó; hai, có bấm nút ko hư chân port thì 89 cũng ko biết đc trạng thái nút đang đc nhấn (nhìn vào cấu trúc phần cứng chân port mà phân tích)Nguyên văn bởi hoadang Xem bài viếtChính vì viết bằng ASM thì mới cần phải set bit để là cổng vào. Chứ không bạn clear nó, đố bạn mà đọc được tín hiệu logic vào đó!
Comment
-
Bác thử nhìn file proteus lúc mô phỏng xem, chỗ mấy chân nút nhấn có đổi màu khi ấn koNguyên văn bởi ozonedark2 Xem bài viếtem làm mạch đo nhiệt độ dùng con ds18b20 có sử dụng nút nhấn để đặt nhiệt độ nhưng nhấn nút thì nó không ăn nhờ các bác chỉ em cách sửa với
- Nếu ko đổi, có thể bác vẽ mạch bị sai
- Nếu có đổi màu, tức phần cứng đã chạy, bác xem lại code- Mạch nạp vdk 8051, AVR, PIC, EEPROM
- Linh kiện điện tử cho sinh viên
Comment
-
Nguyên văn bởi ozonedark2 Xem bài viếtcon 89 đã có điện trở treo nội ở p1,p2,p3 và không có ở p0 và các bác trở lại vấn đề chính đi nào
Đồng ý với bạn,
và nhìn vào cái hình này thì bác caovanhuong sẽ thấy tại sao phải set bit các chân là cổng vào!
Comment
-
bác nên xem cái hình mô phỏng trên topic này đi đã, xem xem mình có nối sai hay khôngNguyên văn bởi nguyen24 Xem bài viếtBác thử nhìn file proteus lúc mô phỏng xem, chỗ mấy chân nút nhấn có đổi màu khi ấn ko
- Nếu ko đổi, có thể bác vẽ mạch bị sai
- Nếu có đổi màu, tức phần cứng đã chạy, bác xem lại code
còn code thì mình bó tay mới đi hỏi|
Comment
-
mình đã set tất cả các nút rồi nhưng không được nó vẫn vậyNguyên văn bởi hoadang Xem bài viết[ATTACH=CONFIG]47993[/ATTACH]
Đồng ý với bạn,
và nhìn vào cái hình này thì bác caovanhuong sẽ thấy tại sao phải set bit các chân là cổng vào!Attached FilesLast edited by ozonedark2; 09-07-2012, 14:44.|
Comment
-
mình xin khẳng định là con 89 chỉ có p0 là không có trở treo nội thôi, con avr thì có trở treo nội ở tất cả các port rồi, còn con pic mình chưa dùng bao giờ nên không biết. Em xin các bác trở về vấn đề chính giùm không tranh cãi nữaNguyên văn bởi caovanhuong Xem bài viếtmấy con 89xxx làm gì có trở treo nội, chỉ có AVR và PIC mới có thôi. AVR thì thường là có trở treo nội cả 4 port, còn PIC thì chỉ có portB thôi và không phải con nào cũng có.|
Comment
-
em đã nhấn được rồi nhưng có chút rắc rối là chỉ đặt nhiệt độ được 1 lần tức là nhấn lần đầu nó nhảy sang nhãn nhietdo_dat1, nhấn lần 2 nó nhảy tới nhãn nhietdo_dat2, nhấn lần 3 nó nhảy sang chương trình chính, nhấn tiếp thì không được chỉ có nút mode bị thôi còn nút up, down thì ok
thêm 1 vấn đề nữa là sau khi em đặt nhiệt độ xong giả sử em đặt nhiệt độ thấp là 25 độ còn nhiệt độ cao là 30 độ nhưng khi mô phỏng em chỉnh nhiệt độ xuống thấp hơn 25 độ thì chân p0.0 không xuống mức 0 và chỉnh lên hơn 30 độ thì p0.1 không được set lên
mong các bác giúp đỡ tận tìnhLast edited by ozonedark2; 09-07-2012, 16:21.|
Comment
-
trong chương trình của bạn, khi nhấn mode đến lần thứ 3 thì bạn thoát khỏi đoạn chương trình cài đặt bằng lệnh ret!
mà trong khi đó đoạn code:
khi nhấn mode thì nhảy tới nhãn, chứ không phải là gọi chương trình con, (RET dùng để trở về nơi trước khi gọi chương trình con)mov r5,#250
call delay
jnb mode,nhietdo_dat1
mov r5,#250
call delay
clr c
mov a,50h
. mình đã đổi lại như sau:
khi nhấn mode thì nhảy tới đoạn cài đặt, khi nhấn mode lần 3 thì nhảy về chỗ nhãn CONTINUE đó. Và bỏ ret vì không phải là trở về từ chương trình con, mà là nhảy tới chỗ khác.
sau khi chỉnh lại thì mode đã ok, nhưng hai nút kia mình nhấn mãi không thấy tăng giảm gì cả !!!???
Code:jnb mode,nhietdo_dat1 continue: mov r5,#250 call delay clr c mov a,50h
Code:hienthi3: mov p1,#89h clr p3.2 call delayled setb p3.2 mov r4,51h acall hienthi1 call delay1s jb mode,nhietdo_dat2 call delay1s jnb mode,thoat thoat: ljmp continue ; ret delay1s:
Comment
-
sau khi được bác góp ý em đã chỉnh lại đôi chútNguyên văn bởi hoadang Xem bài viếttrong chương trình của bạn, khi nhấn mode đến lần thứ 3 thì bạn thoát khỏi đoạn chương trình cài đặt bằng lệnh ret!
mà trong khi đó đoạn code:
khi nhấn mode thì nhảy tới nhãn, chứ không phải là gọi chương trình con, (RET dùng để trở về nơi trước khi gọi chương trình con)
. mình đã đổi lại như sau:
khi nhấn mode thì nhảy tới đoạn cài đặt, khi nhấn mode lần 3 thì nhảy về chỗ nhãn CONTINUE đó. Và bỏ ret vì không phải là trở về từ chương trình con, mà là nhảy tới chỗ khác.
sau khi chỉnh lại thì mode đã ok, nhưng hai nút kia mình nhấn mãi không thấy tăng giảm gì cả !!!???
Code:jnb mode,nhietdo_dat1 continue: mov r5,#250 call delay clr c mov a,50h
Code:hienthi3: mov p1,#89h clr p3.2 call delayled setb p3.2 mov r4,51h acall hienthi1 call delay1s jb mode,nhietdo_dat2 call delay1s jnb mode,thoat thoat: ljmp continue ; ret delay1s:
hienthi3:
mov p1,#89h
clr p3.2
call delayled
setb p3.2
mov r4,51h
acall hienthi1
jb mode,nhietdo_dat2
call delay1s
jnb mode,thoat
thoat:
ljmp chuong_trinh_chinh
và đã nhấn mode được liên tục rồi các nút tăng giảm cũng ok lun nhưng led chớp quá.
thêm cái nữa là phần so sánh nhiệt độ đặt với nhiệt độ thực chưa hoạt động
thêm cái nữa làm sao để đưa đoạn code vô khung như anh được vậy em cám ơn|
Comment
-
- đây là đoạn code so sánh đó à bạn!?Code:jnb mode,nhietdo_dat1 mov r5,#250 call delay clr c mov a,50h cjne a,#temp,$+3 call nhay1 clr c mov a,51h cjne a,#temp,$+3 call nhay2 clr c JMP AGAIN
-Led chớp thì chắc do thời gian quét thôi, hoặc là Proteus nhiều lúc cũng ảo. Máy mình chạy mô phỏng project của bạn không có bị chớp led.
-để chèn code, bạn viết [CODE] {đoạn code cần chèn} ['/'CODE] (bạn bỏ dấu '/' chỉ dùng / thôi, mình chèn ' ' vào để nó không hiển thị là đoạn code.
hoặc vào trả lời chi tiết, đoạn nào cần chèn code thì nhần nút # ở trên thanh công cụ
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Bài hát mới, nhạc Phật: Về Giữa Chiêm Bao, sáng tác: Hoàng Đình Thường.
[Verse 1] Nhân gian bao thay đổi
ĐỜI là giấc CHIÊM BAO
Người mê lầm tranh đấu
KHỔ ĐAU mãi LUÂN HỒI.
VÔ THƯỜNG nào ai thấu
...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 19:01 -
-
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 davidcopyBạn muốn hỏi nguyên lý làm việc của mạch nào...
-
Channel: Hỗ trợ học tập
24-03-2026, 22:50 -
-
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 N_Tu_Hoc_HoiBạn cần sơ đồ mạch ổn áp bao nhiêu Volt, Nếu giống anh bạn guiwr có khả năng ổn áp dùng iC họ 78XX, 79XX. Những mạch này bạn tim kiếm trên google sẽ thấy!!
-
Channel: Hỗ trợ học tập
23-03-2026, 02:32 -
-
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
21-03-2026, 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
21-03-2026, 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
21-03-2026, 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 -

Comment