พิมพ์หน้านี้ - ขอโค้ดนาฬิกาหน่อยครับ

LSVคลังสมองออนไลน์ "ปีที่21"

► อิเล็กทรอนิกส์ ► => รอบรู้อิเล็กทรอนิกส์ => ข้อความที่เริ่มโดย: 04_EnE ที่ มกราคม 01, 2013, 06:46:30 PM



หัวข้อ: ขอโค้ดนาฬิกาหน่อยครับ
เริ่มหัวข้อโดย: 04_EnE ที่ มกราคม 01, 2013, 06:46:30 PM
16F877a แสดงผ่าน 7 segment+วงจร ผมเขียนไม่ถูกครับ อยากจะลองเอาไปศึกษาดู สนใจครับช่วยหน่อย


หัวข้อ: Re: ขอโค้ดนาฬิกาหน่อยครับ
เริ่มหัวข้อโดย: JUB ที่ มกราคม 02, 2013, 01:58:53 PM
http://www.electoday.com/bbs/viewthread.php?tid=18266&extra=page%3D2

Clock on 7Segment

http://www.youtube.com/v/WT70QdA_3k0
♥ ช่วงหลังๆมานี่ผมเริ่มเข้าใจการเขียนโปรแกรมแบบ state machine หรือ mutitask มากขึ้น
ผมเลยลองเขียนโปรแกรมง่ายๆโดยให้ความสำคัญกับ Human interface เป็นหลัก
คือการตอบสนองการสั่งงานจากผู้ใช้ได้ราบรื่นพร้อมกับทำงานอื่นๆไปได้โดยไม่สดุด

♥ ตัวอย่างที่ผมเสนอนี้คือการตั้งค่าเวลาพร้อมๆกับสแกน7เซ็กเม็น+กระพริบ+ฐานเวลา
ที่ทำงานไปพร้อมๆกัน โดยอาศัย Timer0 เพียงตัวเดียว

♦♦♦ รายละเอียดโปรแกรม ♦♦♦
♥ แต่ละหลักสามารถสั่งกระพริบได้อิสระโดยสั่งผ่าน
BLINKDIGIT1,BLINKDIGIT2,BLINKDIGIT3,BLINKDIGIT4,
ความถี่ของการกระพริบปรับได้ที่ BlinkInterval โดยเวลาที่ใช้
จะได้ไม่เกิน ms = 5*255
การคุม DOT คุมผ่าน DOT1,DOT2,DOT3,DOT4,

♥ ในขณะตั้งค่านั้นจะสั่งให้ 7เซ็กเม็นหยุดกระพริบชั่วครู่เพื่อจะได้มอง
ตัวเลขได้ถนัด คือ function BlinkDisMoment เมื่อเรียก function นี้
7เซ็กเม็นจะหยุดกระพริบ1วินาทีหลังจากนั้นจะกลับมากระพริบตามเดิม
ถ้า BLINKDIGIT1,BLINKDIGIT2,BLINKDIGIT3,BLINKDIGIT4, ยังถูกเซต
โดยค่าของการหน่วงอยู่ที่ BLINKOVF และ BLINKENABLE เป็นตัวเปิดปิด
การกระพริบแบบรวม

♥ ในโหมดปรกติสามารถกดดูเวลาในหลักวินาทีได้และไม่สามารถตั้งเวลาได้ในโหมดนี้
โดยมี MODESWITCH เป็นตัวกำหนด

♥ Clock Base เป็นแค่การแสดงให้เห็นการทำงานต่างๆเท่านั้น เวลาที่ได้จึงมีความ
คลาดเคลื่อนอยู่ ควรนำไปปรับใช้กับ DS1307