pic lắp ráp thiết bị chuyển mạch DIP / chương trình truy cập

R

Rambo

Guest
Tôi đang làm cho một chương trình có nhu cầu để đọc các thiết lập vào ngày 3 chuyển mạch DIP và hành động khác nhau tùy theo vị trí của họ.Tôi đang sử dụng các PIC12f675.Những gì tôi đang cố gắng thực hiện là thêm một giá trị cho các chương trình truy cập để cho các chương trình trong đó để đi tiếp theo.Tuỳ thuộc vào vị trí của các thiết bị chuyển mạch DIP, giá trị gia tăng sẽ được giữa 0-8 và nhãn tương ứng sẽ được ở ngay tại chỗ cho các vị trí chuyển đổi nhất định.Nếu bạn nhìn vào chương trình ví dụ tôi làm, có vẻ vô nghĩa nhưng khi tôi thực hiện chương trình thực sự kết hợp của mỗi cài đặt chuyển đổi sẽ trực tiếp chương trình đến một điểm hoàn toàn khác nhau, không phải như mô tả trong chương trình mẫu.Tôi giải thích mọi thứ khác trong chương trình thực tế khá tốt.Vấn đề là ánh sáng không bao giờ quay về không có vấn đề gì trong dip cài đặt chuyển đổi được.Hoặc nếu có ai có một cách khác mà tôi có thể đọc 3 chuyển mạch DIP cho tôi biết nó là gì.Đây là chương trình ...http://home.comcast.net/ ~ millersseven/sub2.asm

 
Chào,

Có thể giúp bạn với mã asm, nhưng trong C nó khá dễ dàng ...
Lần đầu tiên có một cái nhìn tại: www.microchipc.com và đọc FAQ.Ở đó bạn sẽ tìm thấy vài ví dụ về cách đọc chỉ có 3 bit đầu tiên của chuyển mạch DIP của bạn ...
sau khi bạn đọc các đầu vào và bạn được lưu giữ chúng trong một giá trị, sau đó bạn có thể buile một tuyên bố chuyển đổi.Đây là một liên kết đó sẽ chỉ cho bạn cách làm trong C và trong asm
http://www.eventhelix.com/RealtimeMantra/Basics/CToAssemblyTranslation3.htm
Vì vậy, trong chương trình của bạn, bạn sẽ cần phải đọc DIP và đặt nó vào một VAL.sau đó chuyển sang automatacly sẽ nhảy của VAL rằng bạn đã và thats all.
Một điều nữa, trong phần cứng của bạn, bạn sẽ phải kết nối DIP để kéo lên hoặc kéo xuống bằng cách sử dụng resistros.Bạn không thể chỉ cần kết nối hoặc ngắt kết nối với VCC để pin này.
thông tin thêm, bạn có thể tìm thấy tại trang web vi mạch theo các ghi chú App và switchs.
.
( NO
points will be taken from you! )Nếu bạn tìm thấy câu trả lời của tôi có ích, bấm vào nút nói là
đã giúp tôi.

(NO
điểm sẽ được lấy từ các bạn!)Chúc may mắn.

 
Yep, tôi đã có điện trở kéo lên nối với nhau của các thiết bị chuyển mạch.
Vâng, tôi đã làm một tấn gỡ tay dài và tôi là đẹp, chắc chắn tôi thấy vấn đề.Việc thêm vào chương trình truy cập hoạt động tốt và đăng ký để lưu trữ các vị trí công trình chuyển đổi tốt, nó chỉ có cách nào đó đăng ký nhúng là không nhận được lưu trữ trong các đăng ký W.Đây là một quyền lệnh hợp lệ?
movlw nhúng
dip được một mục đích chung đã được xác định RAM đăng ký tại địa chỉ 0x21
Đó nên di chuyển các nội dung của đăng ký nhúng vào bên phải đăng ký W?

 
tôi nghĩ rằng mã của bạn là sai
i không thấy bất kỳ lệnh Interrupt
pic Kiểm tra và chỉ một thời gian bang của Dip
chép nó vào PCL và Không nên sử dụng nó ở tất cả các
Không có Loop trong mềm của bạn
i không biết tại sao 0Xxx sử dụng khi bạn có thể sử dụng PORTB, PORTA ect ect.

 
Không cần phải cho ngắt ....Các thiết bị chuyển mạch DIP sẽ cho chương trình đi đâu để ngay trong phần đầu của chương trình.Sẽ không có cần phải thay đổi các thiết lập ở giữa chương trình.Lý do tôi cố gắng đưa các bang DIP vào một đăng ký riêng biệt là vì không có gì là làm việc.Nhưng những gì tôi có bây giờ vẫn còn phải làm việc.Thực tế là, nếu tôi chỉ sử dụng bất kỳ số arbritrary thay vì để thêm vào PCL nó hoạt động tốt như cần.Và đăng ký dip đang làm việc và giá trị là 0-8 là nhận được đặt trong nó giống như những gì sẽ xảy ra.Nhưng cái gì là không làm việc.Tôi không chắc chắn những gì bạn có ý nghĩa bởi vòng lặp không có ...

 
bắt đầumovlw nhúng; di chuyển giá trị của nhúng vào w đăng kýaddwf PCL, f; thêm w (0 --<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />để PCLgoto trên, nếu tất cả các thiết bị chuyển mạch DIP được tắt hoặc tất cả các ngày,goto off; ánh sáng bậtgoto offgoto offgoto offgoto offgoto offgoto offgoto ngày

trên
movlw b'00100000 '
movwf pins
goto ngày

khỏi

; here the Soft will never Exit from Off Loop

goto off;
ở đây các Soft sẽ không bao giờ Exit từ Off Loop
cuối

Xanh được thực hiện
màu đỏ là Bug
và vàng không bao giờ có được thực thi

 
Tôi vẫn còn rất lúng túng những gì bạn đang cố gắng để có được qua.Phần màu đỏ là nghĩa vụ phải được ở đó.Đó là chính xác những gì tôi muốn nó làm cho các cài đặt chuyển đổi nhất định DIP.Đối với bất kỳ DIP thiết lập khác hơn tất cả tắt hoặc tất cả các ngày, tôi muốn dẫn đến việc giảm giá chỉ ở lại cho đến khi tôi khởi động lại chương trình.Tuy nhiên, nếu các thiết bị chuyển mạch DIP đều mở (thêm 0 đến PCL) hoặc nếu tất cả các thiết bị chuyển mạch được đóng cửa (thêm 8 đến PCL) ánh sáng sẽ được bật.Phần màu vàng ở đó không xảy ra nếu các thiết lập DIP được bất cứ điều gì khác so với tất cả tắt hoặc tất cả các ngày, nó chỉ giữ dẫn tắt.Nhưng vấn đề là, dẫn đầu là không bao giờ quay về không có vấn đề gì các vị trí của các thiết bị chuyển mạch DIP được.Hãy ghi nhớ điều này chỉ là một prgram mẫu.Khi tôi nhận được nó để làm việc, thay vì 7 "goto off" Tôi sẽ có một nhãn hiệu khác nhau để goto phụ thuộc vào những gì tôi muốn chương trình làm theo vị trí DIP.

 
Mã số:bắt đầu

movf dip, w; di chuyển giá trị của nhúng vào w đăng ký

BTFSC STATUS, Z

goto ngày

movlw nhúng

1 SUBWF, W

BTFSC STATUS, Z; kiểm tra nếu nhúng = 1

goto off

movlw nhúng

2 SUBWF, W

BTFSC STATUS, Z; kiểm tra nếu nhúng = 2

goto off

movlw nhúng

3 SUBWF, W

BTFSC STATUS, Z; kiểm tra nếu nhúng = 3, etc etc

goto off

movlw nhúng

4 SUBWF, W

BTFSC STATUS, Z

goto off

movlw nhúng

5 SUBWF, W

BTFSC STATUS, Z

goto off

movlw nhúng

6 SUBWF, W

BTFSC STATUS, Z

goto off

goto ngày

trên

movlw b'00100000 '

Pin movwf; u có thể thay đổi với PORTB pins

goto ngày

khỏi

Ngủ; giảm suất tiêu thụ

goto off

cuối

 
Rambo đã viết:

Vâng, tôi đã làm một tấn gỡ tay dài và tôi là đẹp, chắc chắn tôi thấy vấn đề.
Việc thêm vào chương trình truy cập hoạt động tốt và đăng ký để lưu trữ các vị trí công trình chuyển đổi tốt, nó chỉ có cách nào đó đăng ký nhúng là không nhận được lưu trữ trong các đăng ký W.
Đây là một quyền lệnh hợp lệ?

movlw nhúng

dip được một mục đích chung đã được xác định RAM đăng ký tại địa chỉ 0x21

Đó nên di chuyển các nội dung của đăng ký nhúng vào bên phải đăng ký W?
 

Welcome to EDABoard.com

Sponsor

Back
Top