PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 06-06-2005, 10:42 AM   #1
noisePIC
Đệ tử 2 túi
 
Tham gia ngày: May 2005
Bài gửi: 39
:
Làm một cái digital clock đơn giản!

Em mới học PIC và muốn làm cho mình một cái đồng hồ chơi cho vui.Trong đầu cũng có một chút ý tưởng về phần thiết kế! Em đọc cho các bác nghe rồi góp ý cho em nhé!
- PIC 16F84A
- Giải mã 3bit-8 đường * 2 con: Điều khiển hiển thị Led 7 đoạn
-Nút bấm chỉnh giờ,phút
- Led 7 đoạn 2 cái

Khi đó cần 6 chân out- 6 chân IN để xuất tín hiệu out ra led 7 đoạn.Đồng thời đọc giá trị các chân để so sánh với thời gian trong chương trình.
Còn gì không nhỉ? Em thấy bọn bạn em bảo có con đồng hồ thời gian thực? Nó là con nào?

Cùng nhau phát triển dự án nhé ..hỡi các newbie !!!
noisePIC vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-06-2005, 08:18 AM   #2
hphong23
Nhập môn đệ tử
 
hphong23's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 9
:
- Nếu muốn hiển thị cả giờ và phút thì bạn phải dùng đến 4 con LED 7 đoạn để hiển thị. Vì PIC 16F84 có ít chân IO nên có lẽ bạn nên dùng một con giải mã LED 7 đoạn để điều khiển các thanh của LED (ví dụ như 74LS47). Sau đó dùng thêm 4 chân IO để lần lượt điều khiển các LED theo kiểu multiplex.
- Để thay đổi giờ và phút thì bạn nên dùng 4 công tắc để làm việc đó ( 1 cái để chuyển qua chế độ đặt thời gian, 1 cái dùng để chuyển đến vị trí cần thay đổi, 2 cái để tăng giảm).
- Có một số IC thời gian chuyên dụng, dùng làm đồng hồ. Nó sẽ cho cả tín hiệu giờ, phút, giây, ngày, tháng, năm ( ví dụ DS1303 nếu tôi nhớ không nhầm). Bạn có thể tham khảo thêm về vấn đề này ở diễn đàn: diendansv.hutech.edu.vn
- dưới đây là sơ đồ mạch đồng hồ điện tử dùng 89C52, bạn có thể tham khảo để làm đồng hồ cho riêng mình
Chúc thành công
File Kèm Theo
File Type: doc dong ho.doc (58.0 KB, 967 lần tải)
hphong23 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-06-2005, 09:14 PM   #3
BinhAnh
Trưởng lão PIC bang
 
Tham gia ngày: May 2005
Bài gửi: 11
:
Bạn hoàn toàn có thể dùng RTC thông dụng giao tiếp I2C hay parallel. Tuy nhiên bạn có thể tận dụng ngay PIC để làm tốt chuyện này mà ko cần thêm IC chuyên dụng.
Bạn dùng Timer1 và mắc thạch anh 32.768Khz vào chân dao động của timer1. Dùng Prescale đủ lớn, cài đặt ngắt sau 1s cho timer1.Cho phép chế độ SLEEP mode, nó thức dậy mỗi khi có ngắt timer1.
Khi mất điện(có nguôn nuôi phụ), thì PIC sẽ rơi vào SLEEP mode.
BinhAnh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2005, 12:51 PM   #4
Trần Văn Thường
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 3
:
hoc hoi hoc hoi

tôi cũng muốn thiết kế một chiếc đồng hồ "thời gian thực luôn" có thể biết ngày tháng năm, tôi sử dụng led 7 đoạn để hiển thị cho giờ, phút, giây(3 cặp 2 led) và tôi sử dụng ic thời gian chuyên dụng DS1307 giao tiếp với con AT89C51 (vì con này rẻ và dễ dùng). nhưng vấn đề là con DS1307 sử dụng giao tiếp I2C nên rất khó viết chương trình cho vi điều khiển (dùng với pic thì rất thuận lợi) vì vậy tôi mong được sự giúp đỡ của các bác...cảm ơn các bác nhiều...
Trần Văn Thường vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2005, 08:55 PM   #5
mafd_47a
Đệ tử 3 túi
 
Tham gia ngày: Sep 2005
Bài gửi: 54
:
Trích:
Nguyên văn bởi Trần Văn Thường
tôi cũng muốn thiết kế một chiếc đồng hồ "thời gian thực luôn" có thể biết ngày tháng năm, tôi sử dụng led 7 đoạn để hiển thị cho giờ, phút, giây(3 cặp 2 led) và tôi sử dụng ic thời gian chuyên dụng DS1307 giao tiếp với con AT89C51 (vì con này rẻ và dễ dùng). nhưng vấn đề là con DS1307 sử dụng giao tiếp I2C nên rất khó viết chương trình cho vi điều khiển (dùng với pic thì rất thuận lợi) vì vậy tôi mong được sự giúp đỡ của các bác...cảm ơn các bác nhiều...



Để dùng I2C giao tiếp với DS1307 bạn phải dùng F87x. Kỹ thuật dùng I2C bạn có thể tham khảo tại:

http://www.dientuvietnam.net/board/showthread.php?t=702

Nếu vẫn khó khăn thì nhắn cho mình
mafd_47a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2005, 11:33 AM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
http://piclist.com/images/boards/clock-et/index.htm

Một ví dụ nhỏ về đồng hồ thời gian thực.

Lưu ý, điều quan trọng nhất là phải xác định được sai số của thạch anh, và bù vào dao động này, nếu không kết quả đồng hồ sẽ không còn là thời gian thực nữa.

chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-10-2007, 10:22 AM   #7
mnt
Nhập môn đệ tử
 
Tham gia ngày: Oct 2007
Bài gửi: 1
:
Trích:
Nguyên văn bởi Trần Văn Thường View Post
tôi cũng muốn thiết kế một chiếc đồng hồ "thời gian thực luôn" có thể biết ngày tháng năm, tôi sử dụng led 7 đoạn để hiển thị cho giờ, phút, giây(3 cặp 2 led) và tôi sử dụng ic thời gian chuyên dụng DS1307 giao tiếp với con AT89C51 (vì con này rẻ và dễ dùng). nhưng vấn đề là con DS1307 sử dụng giao tiếp I2C nên rất khó viết chương trình cho vi điều khiển (dùng với pic thì rất thuận lợi) vì vậy tôi mong được sự giúp đỡ của các bác...cảm ơn các bác nhiều...
em cung dang can tim lieu ve van de nay .bac co dc tai lieu can tim thi cho em xin dc ko ha bac ?em cam on bac truoc nhe !
mnt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2005, 04:35 PM   #8
minhtienbk
Đệ tử 5 túi
 
minhtienbk's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 120
:
Send a message via ICQ to minhtienbk Send a message via Yahoo to minhtienbk
Đây là diễn đàn PIC nhưng em nghĩ mua con PIC tốn wa' ,xa`i đại IC số ,dễ lắm ,thuật giải cũng dễ ,
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11
bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com
Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ.
minhtienbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-03-2006, 10:51 AM   #9
voduychau
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 36
:
mọi ứng dụng của vdk,dù ít dù nhiều,mỗi lện đều ngốn thời gian(mặc dù rất nhỏ,8951 chạy thạch anh 12M mỗi lệnh ít nhất là 1 uS) nên để làm clock real time,nên để mạch quét led và đếm giờ độc lập với vxl,vxl chỉ đóng vai trò chỉ đạo thôi,có thế mới nhanh được.
biện pháp nâng độ chính xác hay nhất và dễ làm nhất lả xem thử trong 1 khoảng thời gian nào đó,mạch chạy sai bao nhiêu,rồi ta ra lệnh cho vdk âm thầm add thêm vào bộ đếm(hi hi,cách này hữu hiệu hơn nhiều so với việc ngồi tìm cách mua linh kiện chính xác,có ai ngồi xem đồng hồ từng giây từng phút đâu mà sợ lộ? mà việc làm này cũng chẳng có gì gọi là ngu cả)
__________________
goodbye!!
voduychau vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2006, 02:32 PM   #10
ThaiVu
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 17
:
dong ho dien tu

neu ban nao dung PicBasic Pro thi day la trang wed chi cho ban
http://www.rentron.com/PicBasic/SERLED.htm
ThaiVu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-10-2007, 10:03 PM   #11
hungdv
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 1
:
Theo tôi được biết muốn đồng hồ số ko bị trế thì phải dùng các IC real time như con DS1307 chẳng hạn. Tuy nhiên thì có cách làm đồng hồ số bằng các IC logic thì phải. Có ai đó đẫ nói với tôi nhưng mà chả hướng dãn nên tôi vẫn chưa làm dc. Ai biết hti fdnahf chút thời gian hướng dẫn anh em mới vào nghề đi.
hungdv vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-10-2007, 02:02 AM   #12
thaithienanh
Đệ tử 7 túi
 
thaithienanh's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 189
:
Send a message via Yahoo to thaithienanh
Trích:
Nguyên văn bởi hungdv View Post
Theo tôi được biết muốn đồng hồ số ko bị trế thì phải dùng các IC real time như con DS1307 chẳng hạn. Tuy nhiên thì có cách làm đồng hồ số bằng các IC logic thì phải. Có ai đó đẫ nói với tôi nhưng mà chả hướng dãn nên tôi vẫn chưa làm dc. Ai biết hti fdnahf chút thời gian hướng dẫn anh em mới vào nghề đi.
Không biết lý do tại sao bạn thích làm đồng hồ số bằng IC số nhỉ , sẽ phức tạp đấy nhưng dù sao cũng khá hoành tráng , ở đây mình có giữ một luận văn của anh chàng sinh viên nào đó (bây giờ chắc thành "ông chàng" rồi ) có làm về cái này, mà hình như tới khúc cuối cũng buông tay và xin làm bằng VĐK thì phải (đọc phớt qua khúc cuối thấy có file hex nữa ) dù sao thì mình nghĩ phần đầu của luận văn cũng giúp cho bạn hiểu đuợc vấn đề
File Kèm Theo
File Type: rar dong ho so.rar (280.8 KB, 1051 lần tải)
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .
thaithienanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2008, 03:57 AM   #13
wwwaaa
Nhập môn đệ tử
 
Tham gia ngày: Dec 2007
Bài gửi: 10
:
Talking

Trích:
Nguyên văn bởi hungdv View Post
Theo tôi được biết muốn đồng hồ số ko bị trế thì phải dùng các IC real time như con DS1307 chẳng hạn. Tuy nhiên thì có cách làm đồng hồ số bằng các IC logic thì phải. Có ai đó đẫ nói với tôi nhưng mà chả hướng dãn nên tôi vẫn chưa làm dc. Ai biết hti fdnahf chút thời gian hướng dẫn anh em mới vào nghề đi.
Đồng hồ số dùng IC logic bác nói đây,đối với dân lập trình vđk thì cái đồng hồ này đúng là ác mộng kinh hoàng.Mặc dù lúc thiết kế tôi đã "bớt xén" nhiều linh kiện rồi nhưng vẩn tốn 24-25 em IC gì đó. Điểm đặc biệt là lúc hẹn giờ thằng này hiển thị thời gian hẹn ngay trên chính bộ led 7 đoạn hiển thị thời gian thực,xác nhận hẹn giờ xong là nó quay về hiển thị thời gian thực,hiển thị buổi sáng chiều (đã Việt hóa),báo thức bằng 3 tiếng bíp ngắt quãng giống loại thương mại đấy. Khuyến cáo là đừng bác nào ráp theo,vì trên sơ đồ có một số "tiểu xảo". Các bác muốn tham khảo thì chỉ nên nắm giải thuật và ý tưởng thôi rồi tự làm,thế tốt hơn



"Không biết lý do tại sao bạn thích làm đồng hồ số bằng IC số nhỉ , sẽ phức tạp đấy nhưng dù sao cũng khá hoành tráng"

Không phải "thích" mà là do trường nào cũng có vài môn như "Kĩ thuật số" và "Thực tập kt số" . Các sư phụ bảo làm bằng IC logic mình dùng VĐK là vêu mỏ đấy
File Kèm Theo
File Type: rar Digital_clock.rar (154.3 KB, 612 lần tải)

thay đổi nội dung bởi: wwwaaa, 22-11-2008 lúc 07:40 PM.
wwwaaa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-10-2007, 11:17 PM   #14
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
bên anh linh308 đã nói về vấn đề này rồi đấy.anh ấy còn up cả phần cứng lẫn phần mềm nữa đấy.các bạn xem trong các đề tài học pic ấy.
tui down về rùi nhưng hiện tại vẫn chưa chạy đc(pó tay luôn)
phần cứng: 16F877A,DS1307,LCD 16x2..hết.
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-10-2007, 05:21 AM   #15
Dolphin
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 43
:
Mình đang làm clock dùng Pic16f84A, dùng Xtal 32,768kHz, ngắt TMR0. Đang viết code phần hiển thị thời gian nhưng không hiểu sao khi mô phỏng bằng Proteus thì bị lỗi. Ai thấy lỗi chỗ nào chỉ hộ tí.

;------------Program Listing, Clock.asm ------------------------------
list p=16F84A
#include <p16F84A.inc>

ERRORLEVEL -302
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _LP_OSC

;--------------------- Define Variables -------------------------------
HOURS equ 21h
MINUTES equ 22h
HOURS_A equ 23h
MINUTES_A equ 24h
MONTH equ 25h
DAYS equ 26h
WEEKDAY equ 27h
SECONDS equ 28h
AMPM_A equ 29h
TIMER_LIMIT equ 2ah
AMPM equ 2bh
DAYLIGHT equ 2ch
YEAR equ 2dh
CORRECTION equ 2eh
TEMP equ 35h
TENS equ 36h
TEMPW equ 37h
SWITCH equ 38h
STATUS_SAVE equ 39h
TEMP1 equ 3ah
ALARM equ 3bh
LIMIT equ 3dh
TEMP_SAVE equ 3eh
TIMER equ 3fh
AMPM_LED equ 40h
COUNTER equ 41h


;--------------------- Program Starts here --------------------------
org 0
goto INIT
org 0x04
goto Int
;--------------------- Interrupt routine to update time -------------
Int
movwf TEMPW ;
swapf STATUS,0 ;
movwf STATUS_SAVE ;
bcf STATUS,RP0 ;
incf SECONDS,f ;

movlw d'60'
xorwf SECONDS,0
btfss STATUS,2 ;
goto Done ;
clrf SECONDS
incf MINUTES,f
movlw d'60'
xorwf MINUTES,0
btfss STATUS,2 ;
goto Done ;
clrf MINUTES
incf HOURS,f
movlw d'24'
xorwf HOURS,0
btfss STATUS,2 ;
goto Done ;
clrf HOURS
Done
bcf INTCON,2
swapf STATUS_SAVE,0
movwf STATUS
swapf TEMPW,f
swapf TEMPW,0
retfie

;--------------------- End Interrupt Procedure ----------------------


INIT ; Initialize variables

bsf STATUS,RP0 ;
bcf STATUS,RP1 ;
movlw b'00000000'
movwf TRISB ;
movlw b'11100000' ;
movwf TRISA ;
movlw b'00000100' ; Scale 1/32
movwf OPTION_REG
bcf STATUS,5 ;
bcf STATUS,0 ;
bcf STATUS,2 ;
bcf STATUS,1 ;
bsf INTCON,5 ;
bcf INTCON,2 ;
bsf INTCON,7 ;
clrf SECONDS
clrf HOURS ;
clrf MINUTES ;
goto Main

Array ; Data for 7 segment digits
addwf PCL,1
retlw b'01000000' ; "0"
retlw b'01111001' ; "1"
retlw b'00100100' ; "2"
retlw b'00110000' ; "3"
retlw b'00011001' ; "4"
retlw b'00010010' ; "5"
retlw b'00000010' ; "6"
retlw b'01111000' ; "7"
retlw b'00000000' ; "8"
retlw b'00010000' ; "9"

Main ; ------------ Main Loop ----------------------

call Display ; Display data
goto Main

;--------------------- End of Main Loop ------------------------------

Output ; Write data to port B
call Array
iorwf ALARM,0
movwf PORTB
return


Delay ;------------------------ Delay ---- about 600 uS ------------

movlw d'25'
Delay_0
movwf TEMP1
Delay_1 movwf COUNTER
Delay_2 decfsz COUNTER,f
goto Delay_2
decfsz TEMP1,f
goto Delay_1
return

Digits ; Converts value in TEMP to 2 single digits - TENS and TEMP

clrf TENS
movlw d'10'
Loop
incf TENS,f
subwf TEMP,f
btfss STATUS,0
goto Ones
goto Loop
Ones
decf TENS,f
addwf TEMP,f
return

Display ; -------------------- Display Data -----------------------
;*********************Display Hour***************************
movf HOURS,W
movwf TEMP
call Digits
;******Display Tens of Hour*******
movfw TENS ;
call Output
movlw b'00000001'
movwf PORTA
call Delay
;******Display Units of Hour*******
movfw TEMP
call Output
movlw b'00000010'
movwf PORTA
call Delay
;*********************Display Minute************************
movf MINUTES,W
movwf TEMP
call Digits
;******Display Tens of Minute*******
movfw TENS
call Output
movlw b'00000100'
movwf PORTA
call Delay
;******Display Units of Minute*******
movfw TEMP
call Output
movlw b'00001000'
movwf PORTA
call Delay
return
end
File Kèm Theo
File Type: txt Clock.txt (6.0 KB, 86 lần tải)
File Type: rar Clock_beta.rar (13.9 KB, 133 lần tải)
Dolphin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:04 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam