หัวข้อ: ขอโค้ดนาฬิกาหน่อยครับ เริ่มหัวข้อโดย: 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 |