痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 8124|回復: 42

antlu的時間控制器-MAX99分59秒

  [複製鏈接]
發表於 2011-5-3 20:30:38 | 顯示全部樓層 |閱讀模式
之前因想作曝光機的控制器,剛好antlu大也有需要
就作個來用,不過因為有十五年以上沒使用7段LED
所以有點不太順手,都忘了7段還要掃瞄顯示,還是LCD比較方便
這是目前使用的版本,
電路圖和之前一樣,只是忘了在DOT處也要加個限流電阻
時間定時控制器-共陽7段LED.pdf (43.84 KB, 下載次數: 134)

程式嬈錄碼
定時控制器-LED.rar (2.72 KB, 下載次數: 115)

原始電路情形,沒有VCC降壓電路及輸出繼電器電路,
電路全景.jpg

組裝後送電時的全景
開機晝面.jpg
按下分鐘設定鍵時,前兩位數會消失,等待輸入,輸入值00-99
按下分鐘設定鍵.jpg

按下秒數鍵時,後兩位數會消失,等待輸入,輸入值00-59
按下秒數設定鍵.jpg

按下START鍵時,P1.4會啟動,等計數完後,P1.4會關閉
輸入最大值為99分59秒
最大設定值.jpg

由於原本要使用LCD和使用一棵93C46作記憶組別,
但目前暫時先這樣,有需要的人可以看看要使用在什麼地方
我只有作曝光機用途,其實再多加兩位,但可以進行到99個小時,
但又不是要學賓拉登作定時裝置,只是一個小玩具而已
大家有需要的人就玩玩吧

評分

3

查看全部評分

發表於 2011-5-3 20:47:15 | 顯示全部樓層
本帖最後由 逃兵 於 2011-5-3 08:50 PM 編輯

最小單位我要到百分之一秒。
最小單位到秒有些大........對於真的玩攝影暗房來說.




對了. 還有一個是要能記住上次的秒數,這次只要按下去就依上次的秒數計時。
還有,要有暫停以及重新開始。可以做多重曝光用。


這樣的要求會不會太多?

喔....還有還有.....能不能再加上 RS232/ RS485的功能。直接電腦設定就好,懶得按那麼多鍵??

喔....還有還有................再說下去會不會被打????n_112|
發表於 2011-5-3 21:33:19 | 顯示全部樓層
哈哈肯定被打死你是來亂的
 樓主| 發表於 2011-5-3 21:58:49 | 顯示全部樓層
其實原始的計數秒數是到1/100秒的,
計數100次才作一秒進位.
所以是可以作到的,但我只是要作曝光機而已
而之後會改成LCD版的,因為連93C46的部份其實都寫好了
然後每次開機都會在最後一次使用時間,
這在上次作音量前級控制時早就用這種模式了,
爽一點的話連按鍵都不用了,看是要用紅外線搖控的
還是裝個旋轉式編碼器,用轉的就好了
至於暫停或重新開始也沒什太大問題,
原本還想作多輸出,然後設每組不同時間
然後一組計數器,作多段時間差控制,
而RS232/485也沒什麼太大問題,
但是我只是想作台感光板用曝光機控制,
只要上下燈管同動控制就好,
作個記憶還蠻好用的,就不用每次設定一次
但是如果如逃兵大你說的,作這麼多會不會反而太奇怪了,
發表於 2011-5-3 22:03:36 | 顯示全部樓層
legion 發表於 2011-5-3 09:58 PM static/image/common/back.gif
其實原始的計數秒數是到1/100秒的,
計數100次才作一秒進位.
所以是可以作到的,但我只是要作曝光機而已

其實,以暗房的計時器。。。。。當年完全利用 RC 就在玩了。
可以到 1/100 秒那一級....(咦.也許是 1/10,我忘了) 單價還很高。

而 232/485 是因為都用了51了.順手可以加上去的. 用它當界面還比用這個KEYBOARD還要好寫些。
多控制其實是UI不好設計。如果是以232的話,根本不是問題。

而如果是板子的曝光,差個1-2秒也不會死......沒事啦。^^

不要打我喔。
 樓主| 發表於 2011-5-3 22:15:50 | 顯示全部樓層
逃兵 發表於 2011-5-3 10:03 PM static/image/common/back.gif
其實,以暗房的計時器。。。。。當年完全利用 RC 就在玩了。
可以到 1/100 秒那一級....(咦.也許是 1/10, ...

其實也蠻想貼出二十年前作的一個倒數器,
完全用組合邏輯作的,功能和這個差不多
當時用的是一棵1HZ的XTAL,這個算是很罕見的,
因為當時用在計費上,所以精度要求比較高
以前在光華商場有一家專賣特殊元件的店
二十年前買一棵要400多,當時買了五棵作樣品用
同樣的功能,51只用一棵而已,而當時的TTL卻用掉30幾棵,
不過我只是要曝感光板而已,多個十秒的誤差也不會死的.
發表於 2011-5-3 22:18:03 | 顯示全部樓層
legion 發表於 2011-5-3 09:58 PM static/image/common/back.gif
其實原始的計數秒數是到1/100秒的,
計數100次才作一秒進位.
所以是可以作到的,但我只是要作曝光機而已

我等你的LCD版....
至少LCD比較好看..線路也不必用到這麼多...
而且LCD模組可以換來換去...
 樓主| 發表於 2011-5-3 22:23:12 | 顯示全部樓層
回復 shunxing 的帖子

再等等吧,這是antlu大要的,
算是懷舊版,還真不習慣LED
等6月時,大概該忙的都忙完了
應該就會改成LCD版的,一些內部計算大概都會沿用
到時就不用花時間重寫了
主要是在最後一次使用及預設組數時間上會比較方便吧.
就不用每次都要重設一次,
由其是曝光機,每次開機都是固定上次最後設定
那曝下去應該就不會差太多了.
發表於 2011-5-3 22:44:22 | 顯示全部樓層
回復 legion 的帖子

LEGION大:
    好厲害啊!! 今天已經去買IC座和電阻電容,先前的鍵盤已經有一組了,後續就是焊接了...感謝再感謝!!
發表於 2011-5-4 07:20:29 | 顯示全部樓層
legion 發表於 2011-5-3 10:15 PM static/image/common/back.gif
其實也蠻想貼出二十年前作的一個倒數器,
完全用組合邏輯作的,功能和這個差不多
當時用的是一棵1HZ的XTAL, ...

當年我是省到連 1Hz 的 XTAL 都沒花。
直接把巿電半波整流後"切出"方波。
然後用它的 60Hz 進去計數器。用除頻、單觸發........等等IC。
連51都沒用上就做了。

另一個是用RC,改變R的方式做。

當年就做這兩個。
現在有單晶片.........要什麼都容易做,反而就懶了。
發表於 2011-5-6 20:27:10 | 顯示全部樓層
回復 legion 的帖子

Legion大:
    向您報告我的進度, 共陰7段顯示已經焊好了,用聯電的股東紀念品"鏡鐘"拆下來,加上4個NPN電晶體7枝330歐姆&4枝10K歐姆電阻...,鍵盤以前就已經焊好了 4*4 , 89C52 借用陳生電子賣的實驗板,P0 >>7段 P1>> 共陰驅動 P2>> 鍵盤用. C語言進度 目前正在抓蟲...昨天奮戰到凌晨3點,把程式分割成小部分編譯除錯,許多 大小寫 宣告...一團混亂,現在程式給他99分59秒它可以倒數只是到0秒的時候又自己變成59秒... 現在已經完成是 把分秒轉換時七段並顯示出來,後續,1.鍵盤掃描&解碼 2.功能執行 3.控制電源....
發表於 2011-5-7 09:18:04 | 顯示全部樓層
收藏起來,謝謝分享。
 樓主| 發表於 2011-5-7 09:46:29 | 顯示全部樓層
回復 antlu 的帖子

到0秒的時候又自己變成59秒的問題其實很單純
這在加法往上計數時比較少發生
當計數是倒數時,那使用的是減法
當你在判斷式里,一定是有會減到零的時侯
當計算為零時,本該由分鐘位置減1,然後秒數由零變成59
但少了一個0秒的過程,所以判斷式應為<0才作借位
當=0時只作分鐘判斷,一旦秒=0,若分也=0,那麼倒數結束
若秒=0,而分<>0,那麼還要再往下一秒,等秒<0才作借位動作
這一開始我也有遇到,所以我等到秒<0有產生借位旗標時,才進行分的借位
程式中有註明,可以參考一下.我有對借位旗標作判斷的,
發表於 2011-5-8 02:03:59 | 顯示全部樓層
回復 legion 的帖子

legion大:
  目前倒數計時已經沒有問題,但是按鍵掃描到轉時設定這一部分已經搞了2天了,仍然沒有進展.按鍵都快被我按壞了仍然沒有數字顯示出來,真是挫敗啊!! 睡覺去了....
 樓主| 發表於 2011-5-8 14:10:34 | 顯示全部樓層
程式大概看了一下,發現有一點問題
基本上顯示及倒數計算及按鍵設定都是使用同一個資料設定值
即然可以顯示可以倒數,那表示資料共同是沒問題的,
但在按鍵掃瞄部份,我就看的很奇怪,
因為手上是之前你的舊的,內容有一堆問題
每個函數本身在預設前一定要在{ }內設好
而在輸入按鍵掃瞄中,必需有兩個變數,
一個是按鍵按下值,另一個是按下鍵值所對應的實際值
而且在return時,即然遞回的是字元,怎麼在後面字元又能作計算
字元和實數是不能比較和相互運算的
所以當按下一個按鍵時,應對應及取得的便有幾個
依你的程式方式來說,取得有2個
一是實際矩陣按鍵位置,二是按鍵對應字元,
但實際上應都是取得實數才是
以實際矩陣按鍵位置為依據去取得實際對應實數,
在你的unsigned char KeyPro(void)所遞回的是實數+字元混合,這就奇怪了
KeyFunc_Do中,bf=0,num<>("START"?"STOP")
bf=bf(10)+num;實數還能和字元作相加
反而應是用1個特定數字來代替START和STOP,
有點看不太懂你的程式了,因為有很多奇怪的地方,包括{}就少了一堆
可以的話,就請再把你最後改的程式再MAIL給我,至少complier能完成的
那麼只要模擬一下,大概就知道問題在那了,
發表於 2011-5-9 00:32:28 | 顯示全部樓層
回復 legion 的帖子

Legion 大:
    感謝您的指導!! Orz...Orz...Orz....您說的沒錯,這是我的第一個C語言程式,因為大部分是"抄"的,所以牛頭不對馬嘴,C的錄影帶40講也還沒看完全部,這幾天有一位朋友有跟我只點一些,(因為我也傳給了他),他告訴我有關變數的定義 宣告...還要我把程式分成幾個小部分,來除錯我已經把程式改寫了一些,今天發現了 Keil C51 Compiler 的除錯功能,幫助很大...待會會把改寫的東西傳給你...應該有進步,後續可以學習的空間還很大...加油!!
 樓主| 發表於 2011-5-9 19:36:25 | 顯示全部樓層
看了一下,語法還好,
但是整個控制流程很奇怪,
中斷T0部份,是要等輸入數值完成後按下才啟動的
而且要等有T0中斷產生共1秒時才去作倒數1次
等到計數完成時也要停止T0的中斷計數
不然最後會產生溢位外,還會繼續計數的.
發表於 2011-5-9 20:21:14 | 顯示全部樓層
c 我還可以如果須要再通知我吧
 樓主| 發表於 2011-5-9 22:23:07 | 顯示全部樓層
本帖最後由 legion 於 2011-5-9 10:23 PM 編輯

回復 MARCO 的帖子

是antlu大有點疑問,他要用C重寫一遍
另 antlu大,你的程式看了一下稍微改了一下,
請自行參考一下,目前你的程式只有計數及中斷,
應該是正常了,
發表於 2011-5-11 02:07:47 | 顯示全部樓層
回復 MARCO 的帖子

感謝!! 最近頭很痛!! 會丟出許多無里頭的C問題喔!!
發表於 2011-5-11 02:10:18 | 顯示全部樓層
回復 legion 的帖子

LEGION大:
    感謝!!! 我目前無法突破的是 鍵盤掃描!! 因為無法讀出"鍵盤值",不知道您有招否! 希望不會造成您的困擾...
 樓主| 發表於 2011-5-11 16:07:14 | 顯示全部樓層
回復 antlu 的帖子

大概瞄了一下你的程式,
嗯,為麼鍵盤掃瞄只掃瞄一個按鍵而已,很奇怪,
晚一點有時間的話,我把整個程式看一遍好了,
不過會不會重寫還來的快一點,
發表於 2011-5-11 20:52:43 | 顯示全部樓層
回復 legion 的帖子

LEGION大:
    你幫我設計的鍵盤有16個鍵,10個數字鍵6個功能鍵,因為功能太複雜了,所以我先選兩個功能來寫,當然以後會慢慢增加(或是用到其他地方), 只要掃描的問題有答案以後就會比較輕鬆吧! 謝謝你這麼費心幫忙,再次感謝!!
 樓主| 發表於 2011-5-11 21:53:38 | 顯示全部樓層
本帖最後由 legion 於 2011-5-11 10:04 PM 編輯

回復 antlu 的帖子

幾個键是其次,看了一下0510.C的程式,
不知道那個原始程式是從那抄來的,寫的很亂,動作也不正常
我把鍵盤掃瞄那段重寫了而且把對應碼也註明改好了
幫你重寫比較快,16鍵其實幾行而已,
剩下的就是按鍵彈跳時間請自己加改
而T0要等按下START時才啟動,
當按下STOP或待機或時間跳完時,都要停止T0
至於T0的計數在0508.C里就有改好了,請自行組合吧
發表於 2011-5-12 19:44:25 | 顯示全部樓層
回復 legion 的帖子

Legion大:今天已經可以把輸入的數字顯示出來了(當然是用您的程式!) 你的掃描程式可真是"精簡"啊!!  我看不懂! 因為那些指令從沒用過,剛剛把C的語言幫出來查才知道他的意思,今天回來把接線做了一些交換測試,發現 需要按久一點,還有字的順序是 最下行起往上 123X, 456X,789X,XXXX. 接下來先暫時使用以功力有進步再增加功能鍵...感謝萬千... Orz...Orz...Orz...Orz...Orz...Orz...
 樓主| 發表於 2011-5-12 21:24:15 | 顯示全部樓層
本帖最後由 legion 於 2011-5-12 09:26 PM 編輯

回復 antlu 的帖子

如果你是按照上面PO的電路圖按鍵的接法,
那應該是不會有錯的,因為我有模擬一下
而用C其實比較精簡,剩下的便是注意按鍵有無彈跳現象是否需加改進
不過個人在MCU部份比較喜歡使用組合語言
因為在很多東西旗標或是實體硬體上比較清楚,麻煩的是比使用C來的複雜一點
即然已能顯示出來了,剩下的便是設定值的啟始與停止
計數的部份在0508.C里我已有改成1/100秒計數,所以使用那個便可以了
antlu大加油吧,有問題時再告訴我吧,
發表於 2011-5-12 23:06:51 | 顯示全部樓層
好資料 感謝分享
發表於 2011-5-13 02:08:08 | 顯示全部樓層
回復 legion 的帖子

legion大;
  睡前報告!! 目前按鍵都會顯示,只是 按一下就連跳4個字或更多.,我用這個功能把 其他功能鍵給找出來了 1 2 3 MIN 4 5 6 SEC 7 8 9 START UP 0 DOWN STOP  好像跑很快..... 我聽朋友說 顯示部分部能夠放在 中斷服務程式裡面,所以把他拿出來,只是結果反而都不能顯示按鍵值   晚安!!
發表於 2011-5-14 01:04:09 | 顯示全部樓層
Legion大:
      0514 睡前最新狀況 把num==1000 改成 num>3 之後,就可以倒數計時了,只是時間快了很多 還有按了一下鍵就會跳好幾個字…現在START STOP 功能都出不可以了… 感謝您的大力指導,可以的話幫我看看為何 num 過大就不行,還有按一次鍵就會跳好幾個字的問題& 時間的準確性(不會跑很快!!)  再次感謝.Orz.....Orz......Orz.......Orz..............
 樓主| 發表於 2011-5-14 15:24:20 | 顯示全部樓層
本帖最後由 legion 於 2011-5-14 03:31 PM 編輯

回復 antlu 的帖子

目前已幫你改好,看了一下,應該目前都已正常
計時正常,按鍵輸入也改正常了,START STOP應都正常了,
至於num==1000 改成 num>3,我把那段改了下,應是正常了,
不過輸入現在變成最大值是9999,需要的話請自行修改,
而且STOP時有點像是暫停,再按START則繼續計數,
目前請以0514為基礎再去作修正,至少基本動作都有了.

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-17 10:19 PM , Processed in 0.510238 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.