February 14, 2010

龍馬伝 コミック版

龍馬伝 コミック版 第一巻 (ミッシィコミックス)
龍馬伝 コミック版 第一巻 (ミッシィコミックス)
クチコミを見る

久しぶりに天神ジュンク堂の地下のフタバ書店に言ったら「龍馬伝」のコミックが古本(とはいえ50円引き!?)であったので買って来ました。帰って良く見たら、まだ、発売されて間もない本でした。
テレビと同じストーリーだ! (あたりまえか。。。)

それから、福ビル地階の「ふきや」でお好み焼き食べました!
※ 「ひさご」のHPも見つけた.

おまけ: PIC18F2550の時計の本日版:


温度はA/D変換のVrefにTL431で2.5Vを入れて精度あげてるつもりですが, いまいち良くなってない気がします. 何か間違ってるかな!?
時計はPIC自身のタイマー割り込みで実現してRTC不要にしました. Swordfishはタイマー割り込みも簡単に書けました. 昔のアセンブラでやってたころの苦労は何だったんだ...

// Clock and Thermometer(A/D) (2010.02.14)
Device = 18F2550
Clock = 48
#option org_reset = $800 // for UBW firmware
#option vector_isr_hi = $800
#option vector_isr_lo = $818
// LCD DMC16117A (16 x 1)
// Thermo-Sensor LM61BIZ (-30 .. +100 degree centigrade)
#option LCD_DATA = PORTB.4 // LCD DB.4-DB.7 ==> PORTB.4-PORTB.7
#option LCD_RS = PORTB.3 // LCD RS => PORTB.3 (LCD R/W => GND)
#option LCD_EN = PORTB.2 // LCD EN => PORTB.2 (LCD Vo => GND)

Include "LCD.bas"
Include "ADC.bas"
Include "utils.bas"
Include "Convert.bas"
Include "ISRTimer.bas"
Const Timer1 = 0

Dim hh As Byte, mm As Byte, ss As Byte, tt As Word
Dim counter As LongWord

Event OnTimer1() // 0.1sec
counter = counter + 1
// 24hour * 60min * 60sec * 10 = 86400
If (counter = 864000) Then
counter = 0
EndIf
End Event

Function TimeToStr(x As Byte) As String
If (x < 10) Then
TimeToStr = "0"+DecToStr(x)
Else
TimeToStr = DecToStr(x)
EndIf
End Function

Function Tempature(x As Word) As Word
Tempature = ((x + 1) * 25000 / 1024) - 6000
// Vref = 2.5V, 10bit=1024
// Thermo-Sensor Vo => PORTA.0 (t=(Vo-0.60)/0.001 degree)
End Function

SetAllDigital
TRISA.0 = 1 // configure AN0 as an input
ADCON1.7 = 1 // set analogue input on PORTA.0
ADCON1.4 = 1 // set Vref to PORTA.3
LCD.Cls
Timer.Initialize
Timer.Items(Timer1).Interval = 100 // 100ms
Timer.Items(Timer1).OnTimer = OnTimer1
Timer.Items(Timer1).Enabled = true
counter = 0
Timer.Start

Input(PORTC.1)
Input(PORTC.2)
// SW 1 => PORTC.1 for increment (Hour)
// SW 2 => PORTC.2 for increment (Minute)

While true
hh = counter / 36000
mm = (counter - (36000*hh)) / 600
ss = (counter - (36000*hh) - (600*mm)) / 10

If (PORTC.2=0) Then
While (PORTC.2=0)
DelayMS(10)
Wend
mm = (mm + 1) Mod 600
counter = (36000*hh) + (600*mm)
EndIf
If (PORTC.1=0) Then
While (PORTC.1=0)
DelayMS(10)
Wend
hh = (hh + 1) Mod 24
counter = (36000*hh) + (600*mm) + (10*ss)
EndIf
LCD.WriteAt(1,1,TimeToStr(hh)+":"+TimeToStr(mm)+":"+TimeToStr(ss))
tt = Tempature(ADC.Read(0))
LCD.WriteAt(2,1," "+DecToStr(tt / 100)+"."+DecToStr(tt Mod 100)+" C")
DelayMS(300)
Wend



as-192414 at 21:00コメント(0)トラックバック(0)生活 | 電子工作・無線 

トラックバックURL

コメントする

名前
URL
 
  絵文字
 
 
Visitors

Profile
QRコード
QRコード

レンタルサーバーなら使えるねっと

最新コメント
  • ライブドアブログ