Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo
Collapse
No announcement yet.
Bộ nhớ chương trình, bộ nhớ dữ liệu, ngăn xếp, cơ chế ngắt và SFR của 8051
Các bác cho em hỏi, khi VXL (AT89C51) bị treo do bị nhiễu có cách nào hoặc mạch nào để nó tự reset không?
con 89c51 bên trong không trang bị whatdogtime nên nếu bạn muốn reset lại nó khi nó bị treo thì có thể tự thiết kế một mạch whatdog bên ngoài bằng một mạch định thời 555 chẳng hạn, sau một thời gian nào đấy do bạn tự đặt thì bộ giao động này gửi tới chân reset và reset lại vi điều khiển, chỉ ngăn chặn được xung này bằng phần mềm điều khiển do con 89c51 tạo ra, bạn có thể dùng ngắt để xoá whatdog ngoài này thông qua các mạhc AND, OR, NOT , khi con 89c51 bị treo thì nó không thể gửi ra xung xoá whatdog và thể là sau một thời gian bạn cài đặt cho whatdog là nó tự động reset vi điều khiển . Trong lập trình các VDK có whatdog rồi thì phải xoá whatdog thường xuyên hoặc cấm nó từ đầu nếu không muốn bị reset VDK .
con 89c51 bên trong không trang bị whatdogtime nên nếu bạn muốn reset lại nó khi nó bị treo thì có thể tự thiết kế một mạch whatdog bên ngoài bằng một mạch định thời 555 chẳng hạn, sau một thời gian nào đấy do bạn tự đặt thì bộ giao động này gửi tới chân reset và reset lại vi điều khiển, chỉ ngăn chặn được xung này bằng phần mềm điều khiển do con 89c51 tạo ra, bạn có thể dùng ngắt để xoá whatdog ngoài này thông qua các mạhc AND, OR, NOT , khi con 89c51 bị treo thì nó không thể gửi ra xung xoá whatdog và thể là sau một thời gian bạn cài đặt cho whatdog là nó tự động reset vi điều khiển . Trong lập trình các VDK có whatdog rồi thì phải xoá whatdog thường xuyên hoặc cấm nó từ đầu nếu không muốn bị reset VDK .
con 89c51 bên trong không trang bị whatdogtime nên nếu bạn muốn reset lại nó khi nó bị treo thì có thể tự thiết kế một mạch whatdog bên ngoài bằng một mạch định thời 555 chẳng hạn, sau một thời gian nào đấy do bạn tự đặt thì bộ giao động này gửi tới chân reset và reset lại vi điều khiển, chỉ ngăn chặn được xung này bằng phần mềm điều khiển do con 89c51 tạo ra, bạn có thể dùng ngắt để xoá whatdog ngoài này thông qua các mạhc AND, OR, NOT , khi con 89c51 bị treo thì nó không thể gửi ra xung xoá whatdog và thể là sau một thời gian bạn cài đặt cho whatdog là nó tự động reset vi điều khiển . Trong lập trình các VDK có whatdog rồi thì phải xoá whatdog thường xuyên hoặc cấm nó từ đầu nếu không muốn bị reset VDK .
Dùng con AT89S51 đi. Cần gì phải phức tạp thế.
AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
Xem thêm tại Online Store ---> Click here
Mob: 0982.083.106
xin các bác giải thích giúp em vấn đề này nhé: khi mở rộng bộ nhớ ngoài(Rom hay Ram gì tuỳ) khi này thì chân EA phải nối mass, khi ta viết chương trình chính, chương trình này sẽ nạp vào trong IC89, nhưng mà khi gắn IC89 vào mạch để chạy thì chân EA đang nối mass như vậy thì làm sao chương trình của chúng ta chạy được,(vì theo như trong sách nói là EA nối lên 5v thì VĐK sẽ truy suất bộ nhớ trong), chẳng lẻ lúc này VĐK có thể làm việc cùng lúc bộ nhớ nội và bộ nhớ ngoại hay là gì đó mà ..... em nhờ các bác giải thích hộ nhé. cám ơn các bác nhiều.
xin các bác giải thích giúp em vấn đề này nhé: khi mở rộng bộ nhớ ngoài(Rom hay Ram gì tuỳ) khi này thì chân EA phải nối mass, khi ta viết chương trình chính, chương trình này sẽ nạp vào trong IC89, nhưng mà khi gắn IC89 vào mạch để chạy thì chân EA đang nối mass như vậy thì làm sao chương trình của chúng ta chạy được,(vì theo như trong sách nói là EA nối lên 5v thì VĐK sẽ truy suất bộ nhớ trong), chẳng lẻ lúc này VĐK có thể làm việc cùng lúc bộ nhớ nội và bộ nhớ ngoại hay là gì đó mà ..... em nhờ các bác giải thích hộ nhé. cám ơn các bác nhiều.
Cậu đọc kỹ lại đi nhé. Chỉ có dùng ROM ngoài thì EA mới nối đất. Còn dùng RAM ngoài thì chẳng liên quan gì đến EA cả.
Khi EA nối đất thì chương trình chính được nạp vào ROM chứ không phải VXL nhé.
AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
Xem thêm tại Online Store ---> Click here
Mob: 0982.083.106
Nhờ các bác xem hộ em cấu trúc đoạn chương trình sau đây nhé:em ko viết hết toàn bộ chương trình vì em chỉ muốn hỏi về cấu trúc chương trình thôi(nếu các bác thấy cần thiết thì em sẽ viết hết chương trình lên sau nhé)
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ORG 500H ;Khai báo vùng nhớ lưu mã 7d
ma7d: DB 0c0h,0f9h,0a4h,0b0h,099h,092h
ORG 0000H ; Bat dau chuong trinh chinh
sjmp main
main: ................ ;
.................;một số lệnh gì đó ko quan trọng
mov dptr,#500h
mov A,11h
MOVC A,@A+dptr
..................
..................
end
xxxxxxxxxxxxxxxxxxxxxxxxx
em chỉ muốn hỏi là có phải chương trình này được viết có sử dụng bộ nhớ Rom ngoài phải ko (vì em thấy có dptr và lệnh MOVC A,@A+dptr). Nếu đúng như vậy thì địa chỉ khai báo 500h làm sao ta giải mã địa chỉ ra được như vậy?.
à còn nửa là cách sử dụng kiểu khai báo lệnh ''DB'' như vậy có đúng ko các bác, sao trong sách tống văn on em ko thấy nói lệnh này. Đoạn chương trình này là chương trình đếm sản phẩm và hiển thị led 7d, của một bạn trên mạng chỉ em làm nhưng mà làm hoài mà ko chạy được(phần cứng của em ko có bộ nhớ ngoài) nên em mới có vài nghi ngờ chỉ còn biết nhờ các bác.
{hỏi một câu dốt trong chốc lác còn hơn không hỏi sẻ dốt nát cã đời kekekek}
Cậu đọc kỹ lại đi nhé. Chỉ có dùng ROM ngoài thì EA mới nối đất. Còn dùng RAM ngoài thì chẳng liên quan gì đến EA cả.
Khi EA nối đất thì chương trình chính được nạp vào ROM chứ không phải VXL nhé.
cám ơn bác VNarmy,em đã đọc lại rồi thật đúng là như bác nói, như vậy là ta phải cần có một mạch nạp Rom phải ko bác, chương trình ta sẽ viết và biên dịch bình thường nhưng mà lúc này sẻ nạp vào con rom ngoài.
Nhờ các bác xem hộ em cấu trúc đoạn chương trình sau đây nhé:em ko viết hết toàn bộ chương trình vì em chỉ muốn hỏi về cấu trúc chương trình thôi(nếu các bác thấy cần thiết thì em sẽ viết hết chương trình lên sau nhé)
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ORG 500H ;Khai báo vùng nhớ lưu mã 7d
ma7d: DB 0c0h,0f9h,0a4h,0b0h,099h,092h
ORG 0000H ; Bat dau chuong trinh chinh
sjmp main
main: ................ ;
.................;một số lệnh gì đó ko quan trọng
mov dptr,#500h
mov A,11h
MOVC A,@A+dptr
..................
..................
end
xxxxxxxxxxxxxxxxxxxxxxxxx
em chỉ muốn hỏi là có phải chương trình này được viết có sử dụng bộ nhớ Rom ngoài phải ko (vì em thấy có dptr và lệnh MOVC A,@A+dptr). Nếu đúng như vậy thì địa chỉ khai báo 500h làm sao ta giải mã địa chỉ ra được như vậy?.
à còn nửa là cách sử dụng kiểu khai báo lệnh ''DB'' như vậy có đúng ko các bác, sao trong sách tống văn on em ko thấy nói lệnh này. Đoạn chương trình này là chương trình đếm sản phẩm và hiển thị led 7d, của một bạn trên mạng chỉ em làm nhưng mà làm hoài mà ko chạy được(phần cứng của em ko có bộ nhớ ngoài) nên em mới có vài nghi ngờ chỉ còn biết nhờ các bác.
{hỏi một câu dốt trong chốc lác còn hơn không hỏi sẻ dốt nát cã đời kekekek}
AT89S51 có ROM nội dung lượng 4K tương đương với 12 bit địa chỉ. Như vậy địa chỉ 500h vẫn có thể nằm trong ROM nội.
Còn về khai báo DB thì cậu cứ dịch thử. Nếu sai chương trình dịch sẽ ra thông báo lỗi.
AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
Xem thêm tại Online Store ---> Click here
Mob: 0982.083.106
Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
Để check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...
Việc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...
Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
Comment