搜索
bottom↓
回复: 124

最新制作:M8+NOKIA3110+DS1302多功能自行车码表

[复制链接]

出0入8汤圆

发表于 2011-3-25 15:11:16 | 显示全部楼层 |阅读模式
多功能码表可实现如下功能:
1、        即时速度
2、        平均速度
3、        最高速度
4、        单次骑行里程
5、        总里程(单次骑行里程累加存入M8的EEPROM中)
6、        单次骑行时间
7、        总骑行时间(单次骑行时间累加存入        M8的EEPROM中)
8、        实时时钟
9、        骑行速度对比提示(+/-)
10、        数据巡回显示
11、        轮胎周长设定
12、        电池低电量提醒
13、        LCD背光(ON/OFF)

码表采用两键结构,S1为功能键,S2为选择键
码表硬件主要由M8A贴片、NOKIA3110、DS1302及外围元件构成,速度传感器选用开关型霍尔元件CS3020,后因功耗较大(4ma)改用干簧管。
码表用一块500ma的锂电池供电,为了进一步降低功耗,晶体选用3.6864MHZ,整机工作电流小于5ma,可连续工作100小时
这款多功能码表的原理图、印刷版图点击此处下载 ourdev_625353X2H2UJ.zip(文件大小:455K) (原文件名:多功能码表.zip)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入8汤圆

 楼主| 发表于 2011-3-25 15:13:17 | 显示全部楼层
上图片:
(原文件名:20110312524.jpg)

出0入8汤圆

 楼主| 发表于 2011-3-25 15:14:27 | 显示全部楼层

(原文件名:20110312527.jpg)

出0入0汤圆

发表于 2011-3-25 15:15:22 | 显示全部楼层
占位

出0入8汤圆

 楼主| 发表于 2011-3-25 15:15:24 | 显示全部楼层

(原文件名:20110312525.jpg)

出0入0汤圆

发表于 2011-3-25 15:19:27 | 显示全部楼层
不错,我也想做的,就是没有合适的外壳。真正装在车上,没有外壳不好安放,也容易被雨淋潮湿

出0入8汤圆

 楼主| 发表于 2011-3-25 15:24:39 | 显示全部楼层
代码用bascom编写:
$regfile = "m8def.dat"
$crystal = 3686400
$hwstack = 32
$swstack = 10
$framesize = 40
Config Timer1 = Timer , Prescale = 256 , Capture Edge = Falling , Noice Cancel = 0
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4       '硬件SPI配置
Declare Sub Kais                                            '开始操作
Declare Sub Fa(a As Byte)                                   '发送字节
Declare Sub Shou(at As Byte)                                '接收字节
Declare Sub Ting                                            '结束操作
Dim A As Byte , B As Byte , Aa As Byte , Q As Byte , J As Word , I As Byte
Dim X As Byte , Y As Byte , L As Word , Zc As Word , Xc As Word , Xl As Word
Dim Icp_a As Word , Icp_b As Word , Js As Word , , Jk As Byte , W As Word , Cc As Word
Dim T(7) As Byte , Ts(7) As String * 2 , F As String * 2 , Fs As String * 2 , F1 As String * 1 , F2 As String * 2 , F3 As String * 3 , F4 As String * 4 , Fx As String * 6
Dim S As Bit , Ss As Bit , S1 As Byte , Z As Byte
Dim Ax As Byte , Ad As Byte
Dim Shi As Byte , Fen As Byte , Miao As Byte
Dim Icp_x As Long , Icp_y As Long
On Icp1 Icp_isr
Enable Icp1
Enable Interrupts
Capture1 = 0
'/////////////初始化/////////////////////////////////////////////////////////
Ddrd.2 = 0
Ddrd.3 = 0
Portd.2 = 1
Portd.3 = 1
Ddrb.4 = 1
Ddrb.1 = 1
Portb.4 = 0
Ddrd.6 = 1
Portd.6 = 0
Waitus 10
Portb.4 = 1                                                 'LCD复位
Dc Alias Portb.1
Spiinit                                                     'SPI端口初始化
Gosub Lcdinit                                               'lcd初始化
Gosub Lcdcls                                                '清屏子程序
J = 0
B = 0
S = 0
L = 0
W = 0
S1 = 0
Xc = 0
Zc = 0
Js = 0
Shi = 0
Fen = 0
Miao = 0
Ax = 126
Ad = 127
Icp_a = 0
Icp_b = 0
Icp_x = 0
Icp_y = 0
Readeeprom Cc , 2
Waitms 10

'////////////////////////主程序段////////////////////////////////////////////////////////////////
Do

  If S = 0 Then                                             '时钟未启动时
     Select Case S1                                         '自行车周长设定
             Case 0 To 3
                  Restore N4
                  X = 140
                  Y = 67
                  Gosub Xie12
                  Restore Zhou
                  Gosub Xie12
                  Gosub Xie6
                  F4 = Str(l)
                  F4 = Format(f4 , "0000")
                  Z = Len(f4)
                  For I = 1 To Z
                       F1 = Mid(f4 , I , 1)
                       Gosub Xie3110
                  Next I
                  If S1 = 0 Then X = X - 6
                  If S1 = 1 Then X = X - 12
                  If S1 = 2 Then X = X - 18
                  If S1 = 3 Then X = X - 24
             Case 4 To 7
                   If S1 = 4 Or S1 = 5 Then Restore N1      '设定年
                   If S1 = 6 Then Restore N2                '设定月
                   If S1 = 7 Then Restore N3                '设定日
                   X = 152
                   Gosub Xie12
                   Gosub Xie6
                   F2 = Str(l)
                   F2 = Format(f2 , "00")
                   Gosub Zfx
                   If S1 = 4 Or S1 = 6 Or S1 = 7 Then X = X -6
                   If S1 = 5 Then X = X -12
             Case 8
                   Restore N4                               '设定星期
                   X = 152
                   Gosub Xie12
                   Gosub Xie6
                   F1 = Str(l)
                   F1 = Format(f1 , "0")
                   Gosub Xie3110
                   X = X - 6
             Case 9 To 11
                   If S1 = 9 Then Restore N5                '设定小时
                   If S1 = 10 Then Restore N6               '设定分
                   If S1 = 11 Then Restore N7               '设定秒
                   X = 152
                   Gosub Xie12
                   Gosub Xie6
                   F2 = Str(l)
                   F2 = Format(f2 , "00")
                   Gosub Zfx
                   X = X - 6
             Case 12                                        '将设定好的时钟数据写入DC1302
                   For J = 1 To 7
                       Ax = Ax + 2
                       A = Ax
                       Call Kais                            '开始操作
                       Call Fa(a)                           '写入读取数据的地址
                       A = Makebcd(t(j))                    '数据转换
                       Call Fa(a)                           '写入数据
                       Call Ting                            '结束操作
                       Set S
                       S1 = 0
                   Next J
     End Select
     Gosub Tiaod
Else                                                        '开启时钟
  For J = 1 To 7
      Ad = Ad + 2
      A = Ad
      Call Kais
      Call Fa(a)                                            '写入读取数据的地址
      Call Shou(b)                                          '读取数据
      Call Ting                                             '结束操作
      B = Makedec(b)                                        '取数,bcd2dec转换
      Ts(j) = Str(b)
  Next J
  If Icp_a = 0 And Icp_b = 0 Then Gosub Shiz                '显示日历
  If Js = 1 Then                                            '第一次触发时清屏
     Gosub Lcdcls
     Icp_b = Icp_a
     F = Ts(1)                                              '读入秒数值
     S1 = 0
  Elseif Js > 1 Then                                        '第二次触发
          If Icp_a <> Icp_b Then
             Icp_x = 3600 * Zc
             W = Icp_a - Icp_b                              '两次触发间隔周期
             Icp_b = Icp_a
             'W = W - 8
             Icp_y = W * 7                                  '时间转换
             Icp_y = Icp_x / Icp_y                          '即时速度计算
             X = 156                                        '显示即时速度
             Y = 64
             F3 = Str(icp_y)
             F3 = Format(f3 , "000")
             Z = Len(f3)
             For I = 1 To Z
                 F1 = Mid(f3 , I , 1)
                 If I < 3 Then
                    Select Case F1
                        Case "0" : Restore B0
                        Case "1" : Restore B1
                        Case "2" : Restore B2
                        Case "3" : Restore B3
                        Case "4" : Restore B4
                        Case "5" : Restore B5
                        Case "6" : Restore B6
                        Case "7" : Restore B7
                        Case "8" : Restore B8
                        Case "9" : Restore B9
                    End Select
                    For Q = 1 To 16
                        Gosub Xie1
                    Next Q
                 Else
                     X = 189
                     Y = 65
                     Gosub Xie3110
                     Restore Km
                     For I = 1 To 12
                         Gosub Xie
                     Next I
                 End If
              Next I
              Fs = Ts(1)                                    '再次读入秒数值
              If Fs <> F Then                               '单次骑行时间计算
                 Incr Miao                                  '记录秒数值
                 If Miao > 59 Then
                    Incr Fen                                '记录分数值
                    Miao = 0
                    If Fen > 59 Then
                       Incr Shi                             '小时记录
                       Fen = 0
                       Miao = 0
                    End If
                 End If
              End If
              F = Fs
              Xl = Jk * Zc
              If Jk > 4 Then
                 Incr Xc                                    '记录单次行程
                 Jk = 0
              End If
          End If

          Select Case S1
                  Case 0                                    '显示时钟
                       X = 153
                       Y = 68
                        For J = 3 To 1 Step -1
                            F2 = Ts(j)
                            F2 = Format(f2 , "00")
                            Gosub Zfx
                            If J <> 1 Then Gosub Xie6
                        Next J
                  Case 1                                    '显示单次行程
                       X = 153
                       Y = 68
                       Fx = Str(xc)
                       Fx = Format(fx , "000.00")
                       Z = Len(fx)
                       For I = 1 To Z
                            F1 = Mid(fx , I , 1)
                            Gosub Xie3110
                       Next I
                  Case 2                                    '显示单次骑行时间
                       For J = 1 To 3
                           If J = 1 Then F2 = Str(shi)
                           If J = 2 Then F2 = Str(fen)
                           If J = 3 Then F2 = Str(miao)
                           F2 = Format(f2 , "00")
                           X = 153
                           Y = 68
                           Gosub Zfx
                           If J <> 3 Then Gosub Xie6
                       Next J
                  Case 3                                    '显示总行程
                  Case 4
                  Case 5 : S1 = 0
          End Select

          If Pind.2 = 0 Then
             Waitms 20
             If Pind.2 = 0 Then
                Incr S1
                Bitwait Pind.2 , Set
             End If
          End If
          If Pind.3 = 0 Then                                '背光
             Waitms 20
             If Pind.3 = 0 Then
                Ss = Not Ss
                Portd.6 = Ss
                Bitwait Pind.3 , Set
             End If
          End If
  End If
End If



Ax = 126
Ad = 127
Loop
End

Lcdcls:                                                     '清屏子程序
   Dc = 1
   For J = 1 To 4032
   Aa = 0 : Spiout Aa , 1
   Next J
Return

Lcdinit:                                                    'lcd初始化
   Dc = 0
   Aa = 33 : Spiout Aa , 1
   Aa = 144 : Spiout Aa , 1
   Aa = 34 : Spiout Aa , 1
   Aa = 12 : Spiout Aa , 1
Return

Xie:
Dc = 0
X = X + 1
Spiout X , 1
Spiout Y , 1
Dc = 1
Read Aa
Spiout Aa , 1
Read Aa
Spiout Aa , 1
Return

Xie1:
Dc = 0
X = X + 1
Spiout X , 1
Spiout Y , 1
Dc = 1
Read Aa
Spiout Aa , 1
Read Aa
Spiout Aa , 1
Read Aa
Spiout Aa , 1
Read Aa
Spiout Aa , 1
Return


Xie6:
Restore Maoh
For I = 1 To 6
    Gosub Xie
Next I
Return

Xie12:
For I = 1 To 12
    Gosub Xie
Next I
Return

Zfx:
  For I = 1 To 2
      F1 = Mid(f2 , I , 1)
      Gosub Xie3110
  Next I
Return

Xie3110:
Select Case F1
         Case "0" : Restore A0
         Case "1" : Restore A1
         Case "2" : Restore A2
         Case "3" : Restore A3
         Case "4" : Restore A4
         Case "5" : Restore A5
         Case "6" : Restore A6
         Case "7" : Restore A7
         Case "8" : Restore A8
         Case "9" : Restore A9
         Case "." : Restore Di
End Select
         For Q = 1 To 6
             Gosub Xie
         Next Q
Return



Tiaod:
   For I = 1 To 40
   Waitms 20
   Gosub Key
   If I = 20 Then
      Restore Kongg
      For J = 1 To 7
          Gosub Xie
      Next J
   End If
   Next I
Return

Shiz:
For J = 7 To 1 Step -1                                      '显示时钟子程序
    If J <> 6 Then
       Ts(j) = Format(ts(j) , "00")
       F2 = Ts(j)
    End If
    Select Case J
            Case 7
                 X = 128
                 Y = 64

                 F2 = Ts(j)
                 Gosub Zfx
                 Restore N1
                 Gosub Xie12
            Case 6
                 X = 152
                 Y = 66
                 Restore Xingq
                 For I = 1 To 24
                      Gosub Xie
                 Next I
                 Select Case Ts(j)
                         Case "1" : Restore D1
                         Case "2" : Restore D2
                         Case "3" : Restore D3
                         Case "4" : Restore D4
                         Case "5" : Restore D5
                         Case "6" : Restore D6
                         Case "7" : Restore N3
                 End Select
                 Gosub Xie12
            Case 5
                 X = 156
                 Y = 64
                 Gosub Zfx
                 Restore N2
                 Gosub Xie12
            Case 4
                 Gosub Zfx
                 Restore N3
                 Gosub Xie12
                 X = 138
            Case 2 To 3
                  Y = 68
                  Gosub Zfx
                  Gosub Xie6
            Case 1 : Gosub Zfx
    End Select
Next J
Return

Icp_isr:
Icp_a = Capture1
Incr Js
Incr Jk
Return

Sub Fa(a As Byte )                                          '发送数据子程序
   Local At1 As Byte , At2 As Byte , P As Byte
   Ddrd.0 = 1
   Portd.0 = 0
   Ddrd.1 = 1
   Portd.1 = 0
   For P = 0 To 7
      Portd.0 = 0
      At1 = 2 ^ P
      At2 = A And At1
      If At2 = 0 Then
         Portd.1 = 0
         Else
         Portd.1 = 1
      End If
      Portd.0 = 1
   Next P
End Sub

Sub Shou(at As Byte )                                       '接收数据的子程序
   Local At1 As Byte , At2 As Byte , P As Byte
   Ddrd.0 = 1
   Portd.0 = 1
   At = 0
   At1 = 0
   Ddrd.1 = 0
   Portd.1 = 1
   For P = 0 To 7
      Portd.0 = 1                                           '高电位换数据
      Portd.0 = 0
      If Pind.1 = 1 Then
         At2 = 2 ^ P
         At1 = At1 + At2
         Elseif Pind.1 = 0 Then
         At2 = 0
      End If
   Next P
   At = At1
   Portd.0 = 0
End Sub

Sub Ting                                                    '结束操作子程序
   Ddrd.0 = 1
   Portd.0 = 0
   Ddrd.4 = 1
   Portd.4 = 0
End Sub

Sub Kais                                                    '开始操作子程序
   Ddrd.4 = 1
   Portd.4 = 1
   Ddrd.0 = 1
   Portd.0 = 0
End Sub

Key:
If Pind.3 = 0 Then
   Waitms 70
   If Pind.3 = 0 Then
      If S1 = 0 Then
          L = L + 1
          If L > 9 Then L = 0
      Elseif S1 = 1 Then
              L = L + 10
              If L > 99 Then L = L - 100
      Elseif S1 = 2 Then
              L = L + 100
              If L > 999 Then L = L - 1000
      Elseif S1 = 3 Then
              L = L + 1000
              If L > 9999 Then L = L - 10000
      Elseif S1 = 4 Then                                    '设置年个位
              L = L + 1
              If L > 9 Then L = 0
      Elseif S1 = 5 Then                                    '设置年十位
              L = L + 10
              If L > 99 Then L = L - 100
      Elseif S1 = 6 Then                                    '设置月0-12
              L = L + 1
              If L > 12 Then L = 0
      Elseif S1 = 7 Then                                    '设置日0-31
              L = L + 1
              If L > 31 Then L = 0
      Elseif S1 = 8 Then                                    '设置周1-7
              L = L + 1
              If L > 7 Then L = 0
      Elseif S1 = 9 Then                                    '设置小时0-24
              L = L + 1
              If L > 24 Then L = 0
      Elseif S1 = 10 Or S1 = 11 Then                        '设置分或秒0-59
              L = L + 1
              If L > 59 Then L = 0
      End If
   End If
End If

If Pind.2 = 0 Then
   Incr S1
   Bitwait Pind.2 , Set
   If S1 = 4 Then
       Zc = L
       L = 0
       Gosub Lcdcls
   Elseif S1 = 6 Then
           T(7) = L
           L = 0
   Elseif S1 = 7 Then
           T(5) = L
           L = 0
   Elseif S1 = 8 Then
           T(4) = L
           L = 1
   Elseif S1 = 9 Then
           T(6) = L
           L = 0
   Elseif S1 = 10 Then
           T(3) = L
           L = 0
   Elseif S1 = 11 Then
           T(2) = L
           L = 0
   Elseif S1 = 12 Then
           T(1) = L
           L = 0
           Start Timer1
           Gosub Lcdcls
   End If
End If
Return



B0:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &HFF , &H01 , &H00 , &HE0 , &HFF , &H0F , &H00 , &HF8 , &H00 , &H3E , &H00 , &H1C , &H00 , &H70 , &H00 , &H04 , &H00 , &H40 , &H00 , &H02 , &H00 , &H80 , &H00 , &H02 , &H00 , &H80 , &H00 , &H02 , &H00 , &H80 , &H00 , &H02 , &H00 , &H80 , &H00 , &H04 , &H00 , &H40 , &H00 , &H1C , &H00 , &H70 , &H00 , &HF8 , &H00 , &H3E , &H00 , &HE0 , &HFF , &H0F , &H00 , &H00 , &HFF , &H01 , &H00 , &H00 , &H00 , &H00 , &H00       '00
B1:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H08 , &H00 , &H00 , &H00 , &H08 , &H00 , &H80 , &H00 , &H08 , &H00 , &H80 , &H00 , &H08 , &H00 , &H80 , &H00 , &H0C , &H00 , &HC0 , &H00 , &HFC , &HFF , &HFF , &H00 , &HFE , &HFF , &HFF , &H00 , &H00 , &H00 , &HC0 , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &H00 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00       '11
B2:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HC0 , &H00 , &HF0 , &H00 , &HF0 , &H00 , &HF8 , &H01 , &HC8 , &H00 , &HC4 , &H00 , &HC4 , &H00 , &H04 , &H00 , &HC2 , &H00 , &H02 , &H00 , &HC1 , &H00 , &H02 , &H80 , &HC0 , &H00 , &H02 , &H60 , &HC0 , &H00 , &H02 , &H30 , &HC0 , &H00 , &H06 , &H18 , &HC0 , &H00 , &H0C , &H0E , &HC0 , &H00 , &HF8 , &H07 , &HE0 , &H00 , &HF0 , &H01 , &H18 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '22
B3:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H3C , &H00 , &H70 , &H00 , &H7C , &H00 , &H78 , &H00 , &H7C , &H00 , &H7C , &H00 , &HC0 , &H00 , &H06 , &H08 , &H80 , &H00 , &H02 , &H08 , &H80 , &H00 , &H02 , &H08 , &H80 , &H00 , &H02 , &H08 , &H80 , &H00 , &H02 , &H14 , &HC0 , &H00 , &H06 , &H14 , &H40 , &H00 , &H0C , &H23 , &H70 , &H00 , &HF8 , &HC1 , &H3F , &H00 , &HF0 , &H80 , &H0F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '33
B4:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H02 , &H00 , &H00 , &H80 , &H03 , &H00 , &H00 , &H40 , &H02 , &H00 , &H00 , &H30 , &H02 , &H00 , &H00 , &H0C , &H02 , &H00 , &H00 , &H02 , &H02 , &H00 , &H80 , &H01 , &H82 , &H00 , &H60 , &H00 , &H82 , &H00 , &H10 , &H00 , &H82 , &H00 , &HFC , &HFF , &HFF , &H00 , &HFE , &HFF , &HFF , &H00 , &H00 , &H00 , &H82 , &H00 , &H00 , &H00 , &H82 , &H00 , &H00 , &H00 , &H82 , &H00 , &H00 , &H00 , &H02 , &H00       '44
B5:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1C , &H00 , &HFE , &H1F , &H3C , &H00 , &H06 , &H0C , &H7C , &H00 , &H06 , &H04 , &H40 , &H00 , &H06 , &H02 , &H80 , &H00 , &H06 , &H02 , &H80 , &H00 , &H06 , &H02 , &H80 , &H00 , &H06 , &H02 , &H80 , &H00 , &H06 , &H06 , &HC0 , &H00 , &H06 , &H0C , &H60 , &H00 , &H06 , &H1C , &H70 , &H00 , &H06 , &HF8 , &H1F , &H00 , &H00 , &HE0 , &H0F , &H00 , &H00 , &H00 , &H00 , &H00       '55
B6:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &HFE , &H03 , &H00 , &HC0 , &HFF , &H1F , &H00 , &HF0 , &H21 , &H38 , &H00 , &H18 , &H10 , &H60 , &H00 , &H0C , &H08 , &H40 , &H00 , &H04 , &H08 , &H80 , &H00 , &H02 , &H04 , &H80 , &H00 , &H02 , &H04 , &H80 , &H00 , &H02 , &H04 , &H80 , &H00 , &H06 , &H04 , &HC0 , &H00 , &H3E , &H0C , &H60 , &H00 , &H3C , &H38 , &H30 , &H00 , &H18 , &HF0 , &H1F , &H00 , &H00 , &HC0 , &H0F , &H00 , &H00 , &H00 , &H00 , &H00       '66
B7:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H70 , &H00 , &H00 , &H00 , &H1E , &H00 , &H00 , &H00 , &H0E , &H00 , &H00 , &H00 , &H06 , &H00 , &HF8 , &H00 , &H06 , &H00 , &HFF , &H00 , &H06 , &HC0 , &H7F , &H00 , &H06 , &HF0 , &H00 , &H00 , &H06 , &H1C , &H00 , &H00 , &H06 , &H06 , &H00 , &H00 , &H86 , &H01 , &H00 , &H00 , &H66 , &H00 , &H00 , &H00 , &H1E , &H00 , &H00 , &H00 , &H06 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '77
B8:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H1F , &H00 , &HF0 , &H81 , &H3F , &H00 , &H08 , &H43 , &H70 , &H00 , &H04 , &H26 , &H40 , &H00 , &H02 , &H1C , &HC0 , &H00 , &H02 , &H0C , &H80 , &H00 , &H02 , &H08 , &H80 , &H00 , &H02 , &H18 , &H80 , &H00 , &H02 , &H1C , &H80 , &H00 , &H06 , &H3C , &H80 , &H00 , &H0C , &H73 , &H40 , &H00 , &HFC , &H61 , &H40 , &H00 , &HF0 , &HC0 , &H30 , &H00 , &H00 , &H80 , &H0F , &H00 , &H00 , &H00 , &H00 , &H00       '88
B9:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H07 , &H00 , &H00 , &HF0 , &H1F , &H38 , &H00 , &H18 , &H30 , &H78 , &H00 , &H04 , &H60 , &HF0 , &H00 , &H06 , &H40 , &HC0 , &H00 , &H02 , &H80 , &H80 , &H00 , &H02 , &H80 , &H80 , &H00 , &H02 , &H40 , &H80 , &H00 , &H02 , &H40 , &H40 , &H00 , &H04 , &H20 , &H60 , &H00 , &H0C , &H10 , &H30 , &H00 , &H38 , &H08 , &H1E , &H00 , &HF0 , &HFF , &H07 , &H00 , &H80 , &HFF , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '99

Zhou:
Data &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &HFF , &H0F , &H28 , &H04 , &H28 , &H02 , &HE4 , &H00 , &H24 , &H01 , &H22 , &H02 , &H22 , &H04 , &H20 , &H04 , &H00 , &H00       '长0
N1:
Data &H10 , &H01 , &H08 , &H01 , &HE7 , &H01 , &H24 , &H01 , &H24 , &H01 , &H24 , &H01 , &HFC , &H0F , &H24 , &H01 , &H24 , &H01 , &H24 , &H01 , &H04 , &H01 , &H00 , &H00       '年0
N2:
Data &H00 , &H08 , &H00 , &H06 , &HFE , &H01 , &H92 , &H00 , &H92 , &H00 , &H92 , &H00 , &H92 , &H00 , &H92 , &H08 , &H92 , &H08 , &HFE , &H0F , &H00 , &H00 , &H00 , &H00       '月1
N3:
Data &H00 , &H00 , &HFE , &H0F , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &HFE , &H0F , &H00 , &H00 , &H00 , &H00       '日2
N4:
Data &H00 , &H08 , &H00 , &H04 , &HFF , &H03 , &H21 , &H00 , &HA9 , &H03 , &HA9 , &H02 , &HBD , &H02 , &HA9 , &H02 , &HA9 , &H0B , &H21 , &H08 , &HFF , &H0F , &H00 , &H00       '周3
N5:
Data &HFE , &H07 , &H22 , &H02 , &H22 , &H02 , &HFE , &H07 , &H00 , &H00 , &H08 , &H00 , &H48 , &H00 , &H88 , &H09 , &H08 , &H08 , &HFF , &H0F , &H08 , &H00 , &H00 , &H00       '时4
N6:
Data &H20 , &H00 , &H10 , &H08 , &H2C , &H04 , &H23 , &H03 , &HE0 , &H00 , &H20 , &H08 , &H20 , &H08 , &H23 , &H08 , &HEC , &H07 , &H10 , &H00 , &H20 , &H00 , &H00 , &H00       '分5
N7:
Data &H12 , &H01 , &HD2 , &H00 , &HFE , &H0F , &H91 , &H00 , &H40 , &H08 , &H38 , &H08 , &H00 , &H04 , &HFF , &H04 , &H00 , &H02 , &H04 , &H01 , &HB8 , &H00 , &H00 , &H00       '秒6

D1:
Data &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H00 , &H00       '一0
D2:
Data &H00 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H00 , &H04 , &H00 , &H00       '二1
D3:
Data &H00 , &H08 , &H02 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H02 , &H08 , &H00 , &H08 , &H00 , &H00       '三2
D4:
Data &H00 , &H00 , &HFE , &H0F , &H02 , &H05 , &H82 , &H04 , &H7E , &H04 , &H02 , &H04 , &H02 , &H04 , &H7E , &H04 , &H82 , &H04 , &H82 , &H04 , &HFE , &H0F , &H00 , &H00       '四3
D5:
Data &H02 , &H08 , &H22 , &H08 , &H22 , &H0E , &HE2 , &H09 , &H3E , &H08 , &H22 , &H08 , &H22 , &H08 , &H22 , &H08 , &HE2 , &H0F , &H02 , &H08 , &H00 , &H08 , &H00 , &H00       '五4
D6:
Data &H10 , &H08 , &H10 , &H04 , &H10 , &H03 , &HD0 , &H00 , &H11 , &H00 , &H16 , &H00 , &H10 , &H00 , &H50 , &H00 , &H90 , &H00 , &H10 , &H03 , &H10 , &H0C , &H00 , &H00       '六5
Xingq:
Data &H00 , &H09 , &HDF , &H08 , &H95 , &H0A , &H95 , &H0A , &H95 , &H0A , &HF5 , &H0F , &H95 , &H0A , &H95 , &H0A , &H95 , &H0A , &H9F , &H08 , &H00 , &H08 , &H00 , &H00       '星0

Data &H04 , &H09 , &HFF , &H05 , &H54 , &H01 , &H54 , &H01 , &HFF , &H05 , &H04 , &H09 , &H00 , &H08 , &HFE , &H07 , &H92 , &H00 , &H92 , &H08 , &HFE , &H0F , &H00 , &H00       '期1

A0:
Data &H00 , &H00 , &HFC , &H01 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &HFC , &H01       '00
A1:
Data &H00 , &H00 , &H00 , &H00 , &H04 , &H02 , &HFE , &H03 , &H00 , &H02 , &H00 , &H00       '11
A2:
Data &H00 , &H00 , &H0C , &H03 , &H82 , &H02 , &H42 , &H02 , &H22 , &H02 , &H1C , &H01       '22
A3:
Data &H00 , &H00 , &H04 , &H01 , &H22 , &H02 , &H22 , &H02 , &H22 , &H02 , &HDC , &H01       '33
A4:
Data &H00 , &H00 , &HC0 , &H00 , &HB0 , &H00 , &H8C , &H02 , &HFE , &H03 , &H80 , &H02       '44
A5:
Data &H00 , &H00 , &H3E , &H01 , &H12 , &H02 , &H12 , &H02 , &H12 , &H02 , &HE2 , &H01       '55
A6:
Data &H00 , &H00 , &HFC , &H01 , &H12 , &H02 , &H12 , &H02 , &H12 , &H02 , &HE4 , &H01       '66
A7:
Data &H08 , &H00 , &H06 , &H00 , &H02 , &H00 , &HC2 , &H03 , &H32 , &H00 , &H0E , &H00       '77
A8:
Data &H00 , &H00 , &HDC , &H01 , &H22 , &H02 , &H22 , &H02 , &H22 , &H02 , &HDC , &H01       '88
A9:
Data &H00 , &H00 , &H3C , &H01 , &H42 , &H02 , &H42 , &H02 , &H42 , &H02 , &HFC , &H01       '99

Kongg:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       ' 0

Maoh:
Data &H00 , &H00 , &H00 , &H00 , &H08 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       ':0

Jia:
Data &H20 , &H00 , &H20 , &H00 , &HFC , &H01 , &H20 , &H00 , &H20 , &H00 , &H00 , &H00       '+0

Jian:
Data &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H00 , &H00       '-0
Di:
Data &H00 , &H00 , &H00 , &H02 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '.0

Km:
Data &H00 , &H00 , &HFE , &H01 , &H20 , &H00 , &HD0 , &H00 , &H00 , &H01 , &H00 , &H00       'k0

Data &HF0 , &H01 , &H10 , &H01 , &HF0 , &H01 , &H10 , &H01 , &HF0 , &H01 , &H00 , &H00       'm1


$eeprom
$eepromhex
Shuzu:
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

出0入8汤圆

 楼主| 发表于 2011-3-25 15:34:33 | 显示全部楼层
代码还没有写完,遇到了点问题,编译时提示:error :344 line:658 progran will overwrite bootloader[78 too long],大致意思是好像是程序启动时覆盖了LONG数据类型地址,怀疑是代码量已经超过了8K,这可杯具了,我还有几大功能没有实现呢?难道要外加存储芯片?

出0入0汤圆

发表于 2011-3-25 16:04:20 | 显示全部楼层
回复【7楼】jianjun42
代码还没有写完,遇到了点问题,编译时提示:error :344 line:658 progran will overwrite bootloader[78 too long],大致意思是好像是程序启动时覆盖了long数据类型地址,怀疑是代码量已经超过了8k,这可杯具了,我还有几大功能没有实现呢?难道要外加存储芯片?
-----------------------------------------------------------------------

用M168,16K的flash

出0入0汤圆

发表于 2011-3-25 18:12:04 | 显示全部楼层
支持使用bascom的~~

出0入0汤圆

发表于 2011-3-25 20:51:27 | 显示全部楼层
又见jianjun42的作品,很不错,顶一个

出0入0汤圆

发表于 2011-3-25 20:53:03 | 显示全部楼层
3110->5110

出0入8汤圆

 楼主| 发表于 2011-3-25 20:54:42 | 显示全部楼层
应该是5110

出0入0汤圆

发表于 2011-3-25 21:19:51 | 显示全部楼层
楼主

如果是代码超了一些 可以打开优化试一下

如果超了比较多 建议换mega168吧

出0入8汤圆

 楼主| 发表于 2011-3-26 08:44:58 | 显示全部楼层
正在调试解决中,我可以将两个长整形LONG类型数据重新定位,bascom中DIM语句在定义变量数据类型时有个可选项AT,可以将变量的存储位置进行定位,我已经将代码中用到的两个长整形变量定位在EEPROM中,然后在简化一下代码,应该没有问题,另外谢谢楼上的建议

出0入0汤圆

发表于 2011-3-26 10:45:01 | 显示全部楼层
LZ的设计不错,已经制作的LZ的LCR Meter。天津的帮顶啊!

出0入0汤圆

发表于 2011-3-26 11:44:55 | 显示全部楼层
哈哈!正是我需要的。支持!

出0入8汤圆

 楼主| 发表于 2011-3-26 17:21:17 | 显示全部楼层
做了才知道小小一个码表代码量竟然这么大,我先精简一下,看看是否能压缩到8K以内,如果还不行只能舍掉汉字显示部分,总之是软件能解决的暂时不用硬件解决(换M168)

出0入8汤圆

 楼主| 发表于 2011-4-9 14:52:15 | 显示全部楼层
死了N多个脑细胞后终于搞定了,对代码进行了优化,压缩到8K以内,去除了年月日和星期的汉字显示(日历功能,对于自行车码表来说不是很实用),不多说了,上图:
(原文件名:DSC01542.JPG)
这是自行车周长设定

出0入8汤圆

 楼主| 发表于 2011-4-9 14:53:55 | 显示全部楼层

(原文件名:DSC01543.JPG)
设定好后,我的自行车周长是2105mm

出0入8汤圆

 楼主| 发表于 2011-4-9 14:54:52 | 显示全部楼层

(原文件名:DSC01544.JPG)
设定年

出0入8汤圆

 楼主| 发表于 2011-4-9 14:56:10 | 显示全部楼层

(原文件名:DSC01545.JPG)
设定好后

出0入8汤圆

 楼主| 发表于 2011-4-9 14:57:48 | 显示全部楼层

(原文件名:DSC01550.JPG)

设定好月

出0入8汤圆

 楼主| 发表于 2011-4-9 14:58:51 | 显示全部楼层

(原文件名:DSC01552.JPG)
设定好日

出0入8汤圆

 楼主| 发表于 2011-4-9 15:00:06 | 显示全部楼层

(原文件名:DSC01554.JPG)

设定好周

出0入8汤圆

 楼主| 发表于 2011-4-9 15:01:45 | 显示全部楼层
然后是时、分、秒
(原文件名:DSC01555.JPG)


(原文件名:DSC01556.JPG)


(原文件名:DSC01557.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-9 15:03:31 | 显示全部楼层
好了,进入时钟显示
(原文件名:DSC01558.JPG)
左上角是电池容量图标

出0入8汤圆

 楼主| 发表于 2011-4-9 15:05:06 | 显示全部楼层
即时速度显示
(原文件名:DSC01559.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-9 15:06:24 | 显示全部楼层
回零显示
(原文件名:DSC01560.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-9 15:07:39 | 显示全部楼层
单次里程显示
(原文件名:DSC01561.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-9 15:17:04 | 显示全部楼层
最新代码:
$regfile = "m8def.dat"
$crystal = 3686400
$hwstack = 32
$swstack = 10
$framesize = 40
Config Timer1 = Timer , Prescale = 256 , Capture Edge = Falling , Noice Cancel = 0
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4       '硬件SPI配置
Config Adc = Single , Prescaler = Auto , Reference = Internal
Declare Sub Kais                                            '开始操作
Declare Sub Fa(a As Byte)                                   '发送字节
Declare Sub Shou(at As Byte)                                '接收字节
Declare Sub Ting                                            '结束操作
Dim A As Byte , X As Byte , Y As Byte , I As Byte , J As Byte , K As Byte
Dim Aa As Byte , Q As Byte
Dim L As Word , Zc As Word , Xc As Word , Xl As Word
Dim Icp_a As Word , Icp_b As Word , Js As Word , Jk As Byte , W As Word , Cc As Word
Dim T(7) As Byte , Ts(7) As String * 2 , F As String * 2 , Fs As String * 2 , F1 As String * 1 , F2 As String * 2 , F3 As String * 3 , F4 As String * 4 , Fx As String * 8
Dim S As Bit , Ss As Bit , S1 As Byte , Z As Byte
Dim Ax As Byte , Ad As Byte
Dim Shi As Byte , Fen As Byte , Miao As Byte , Mi As Byte , Kk As Byte
Dim Ix As Long , Iy As Long , Wl As Word
Dim Adc_v As Word
On Icp1 Icp_isr
Enable Icp1
Enable Interrupts
Capture1 = 0
Start Adc
'/////////////初始化/////////////////////////////////////////////////////////
Ddrd.2 = 0
Ddrd.3 = 0
Portd.2 = 1
Portd.3 = 1
Ddrb.4 = 1
Ddrb.1 = 1
Portb.4 = 0
Ddrd.6 = 1
Portd.6 = 0
Waitus 10
Portb.4 = 1                                                 'LCD复位
Dc Alias Portb.1
Spiinit                                                     'SPI端口初始化
Gosub Lcdinit                                               'lcd初始化
Gosub Lcdcls                                                '清屏子程序
J = 0
S = 0
L = 0
W = 0
S1 = 0
Xc = 0
Xl = 0
Zc = 0
Js = 0
Jk = 0
Shi = 0
Fen = 0
Miao = 0
Ax = 126
Ad = 127
Icp_a = 0
Icp_b = 0
Ix = 0
Iy = 0
Mi = 0
Wl = 0
Readeeprom Cc , 2
Waitms 10

'////////////////////////主程序段////////////////////////////////////////////////////////////////
Do
If S = 0 Then                                               '时钟未启动时
   Select Case S1                                           '自行车周长设定
           Case 0 To 3
                Restore N4
                X = 140
                Y = 66
                Q = 12
                Gosub Xie
                Restore Zhou
                Gosub Xie
                Q = 6
                Restore Maoh
                Gosub Xie
                F4 = Str(l)
                F4 = Format(f4 , "0000")
                Z = Len(f4)
                Gosub Xie3110
                If S1 = 0 Then X = X - 6
                If S1 = 1 Then X = X - 12
                If S1 = 2 Then X = X - 18
                If S1 = 3 Then X = X - 24
           Case 4 To 11
                If S1 = 4 Or S1 = 5 Then Restore N1         '设定年
                If S1 = 6 Then Restore N2                   '设定月
                If S1 = 7 Then Restore N3                   '设定日
                If S1 = 8 Then Restore N4                   '设定星期
                If S1 = 9 Then Restore N5                   '设定小时
                If S1 = 10 Then Restore N6                  '设定分
                If S1 = 11 Then Restore N7                  '设定秒
                X = 152
                Q = 12
                Gosub Xie
                Q = 6
                Restore Maoh
                Gosub Xie
                If S1 <> 8 Then
                   F2 = Str(l)
                   F2 = Format(f2 , "00")
                   Z = Len(f2)
                Else
                   F1 = Str(l)
                   F1 = Format(f1 , "0")
                   Z = Len(f1)
                End If
                Gosub Xie3110
                If S1 = 5 Then X = X -12 Else X = X -6
           Case 12                                          '将设定好的时钟数据写入DS1302
                For I = 1 To 7
                    Ax = Ax + 2
                    Call Kais                               '开始操作
                    Call Fa(ax)                             '写入读取数据的地址
                    A = Makebcd(t(i))                       '数据转换
                    Call Fa(a)                              '写入数据
                    Call Ting                               '结束操作
                Next I
                Set S
                S1 = 0
     End Select
     Gosub Tiaod
Else
    For I = 1 To 7
        Ad = Ad + 2
        Call Kais
        Call Fa(ad)                                         '写入读取数据的地址
        Call Shou(a)                                        '读取数据
        Call Ting                                           '结束操作
        A = Makedec(a)                                      '取数,bcd2dec转换
        Ts(i) = Str(a)
    Next I
    If Icp_a = 0 And Icp_b = 0 Then Gosub Shiz              '显示时钟
    If Js = 1 Then                                          '第一次触发时清屏
       F = Ts(1)
       Gosub Lcdcls                                         ' 读入秒信息
    Elseif Js > 1 Then                                      '第二次触发
          If Icp_a <> Icp_b Then
             Ix = 3600 * Zc
             W = Icp_a - Icp_b                              '两次触发间隔周期
             Icp_b = Icp_a
             Iy = W * 7                                     '时间转换
             Iy = Ix / Iy                                   '即时速度计算
             Wl = Iy + Wl
             Kk = Kk + 1
             If Kk > 10 Then
                Kk = 0
                Wl = Wl / 10
                If Iy > Wl Then Restore Jia Else Restore Jian
                X = 190
                Y = 64
                Q = 6
                Gosub Xie
             End If
             If Jk > 4 Then
                 Incr Xc                                    '记录单次行程
                 Jk = 0
             End If
             Xl = Cc + Xc
             Fs = Ts(1)                                     '再次读入秒数值
             Mi = 0
             If Fs <> F Then                                '单次骑行时间计算
                 Incr Miao                                  '记录秒
                 If Miao > 59 Then
                    Incr Fen                                '记录分
                    Miao = 0
                    If Fen > 59 Then
                        Incr Shi                            '小时记录
                        Fen = 0
                        Miao = 0
                    End If
                 End If
             End If
             F = Fs

          Else                                              '骑行停止3秒后即时速度回零
             Fs = Ts(1)
             If Fs <> F Then
                Incr Mi
                If Mi > 3 Then Iy = 0
             End If
             F = Fs
          End If
          X = 156                                           '显示即时速度
          Y = 64
          F3 = Str(iy)
          F3 = Format(f3 , "000")
          Z = Len(f3)
          For I = 1 To Z
              F1 = Mid(f3 , I , 1)
              If I < 3 Then
                 Select Case F1
                        Case "0" : Restore B0
                        Case "1" : Restore B1
                        Case "2" : Restore B2
                        Case "3" : Restore B3
                        Case "4" : Restore B4
                        Case "5" : Restore B5
                        Case "6" : Restore B6
                        Case "7" : Restore B7
                        Case "8" : Restore B8
                        Case "9" : Restore B9
                 End Select
                 Q = 16
                 Gosub Xie
              Else
                 X = 189
                 Y = 66
                 Z = 1
                 Gosub Xie3110
                 X = X + 1
                 Restore Km
                 Q = 12
                 Gosub Xie
              End If
          Next I

          Select Case S1
                  Case 0 : Gosub Shiz                       '显示时钟
                  Case 1                                    '显示单次行程
                       X = 160
                       Y = 68
                       Fx = Str(xc)
                       Fx = Format(fx , "  000.00")
                       Z = Len(fx)
                       Gosub Xie3110
                  Case 2                                    '显示单次骑行时间
                       X = 160
                       Y = 68
                       For Kk = 1 To 3
                           If Kk = 1 Then F2 = Str(shi)
                           If Kk = 2 Then F2 = Str(fen)
                           If Kk = 3 Then F2 = Str(miao)
                           F2 = Format(f2 , "00")
                           Z = Len(f2)
                           Gosub Xie3110
                           If Kk < 3 Then
                               Restore Maoh
                               Q = 6
                               Gosub Xie
                           End If
                       Next Kk

                  Case 3                                    '显示总行程
                       X = 160
                       Y = 68
                       Fx = Str(xl)
                       Fx = Format(fx , " 00000.0")
                       Z = Len(fx)
                       Gosub Xie3110
                  Case 4 : S1 = 0
          End Select
          If Mi > 180 Then                                  '骑行停止3分钟后
             Js = 0
             Icp_a = 0
             Icp_b = 0
             Set S
             Mi = 0
             Writeeeprom Xl , 2
             Gosub Lcdcls
          End If
          If Pind.2 = 0 Then
             Waitms 20
             If Pind.2 = 0 Then
                Incr S1
                Bitwait Pind.2 , Set
             End If
          End If
          If Pind.3 = 0 Then                                '背光
             Waitms 20
             If Pind.3 = 0 Then
                Ss = Not Ss
                Portd.6 = Ss
                Bitwait Pind.3 , Set
             End If
          End If
    End If
    Adc_v = Getadc(5)                                       '读ADC(pc5)数据
    If Adc_v > 920 Then Restore Dic Else Restore Dib        '如果电压大于3.68V显示满格电池,否则显示空格电池
    X = 128
    Y = 64
    For I = 1 To 12
    Dc = 0
    X = X + 1
    Spiout X , 1
    Spiout Y , 1
    Dc = 1
    Read Aa
    Spiout Aa , 1
    Next I
End If
Ax = 126
Ad = 127
Loop
End

Lcdcls:                                                     '清屏子程序
  Dc = 1
  For J = 1 To 48
      For I = 1 To 84
      Aa = 0
      Spiout Aa , 1
      Next I
  Next J
Return

Lcdinit:                                                    'lcd初始化
   Dc = 0
   Aa = 33 : Spiout Aa , 1
   Aa = 144 : Spiout Aa , 1
   Aa = 34 : Spiout Aa , 1
   Aa = 12 : Spiout Aa , 1
Return
Xie:
For J = 1 To Q
     Dc = 0
     X = X + 1
     Spiout X , 1
     Spiout Y , 1
     Dc = 1
     If Q < 13 Then
        Read Aa
        Spiout Aa , 1
        Read Aa
        Spiout Aa , 1
     Else
        Read Aa
        Spiout Aa , 1
        Read Aa
        Spiout Aa , 1
        Read Aa
        Spiout Aa , 1
        Read Aa
        Spiout Aa , 1
     End If
Next J
Return

Xie3110:
  For K = 1 To Z
      If Z = 1 Then F1 = Mid(f1 , K , 1)
      If Z = 2 Then F1 = Mid(f2 , K , 1)

      If Z = 4 Then F1 = Mid(f4 , K , 1)
      If Z = 8 Then F1 = Mid(fx , K , 1)
      Select Case F1
              Case "0" : Restore A0
              Case "1" : Restore A1
              Case "2" : Restore A2
              Case "3" : Restore A3
              Case "4" : Restore A4
              Case "5" : Restore A5
              Case "6" : Restore A6
              Case "7" : Restore A7
              Case "8" : Restore A8
              Case "9" : Restore A9
              Case "." : Restore Dian
              Case " " : Restore Kongg
      End Select
      Q = 6
      Gosub Xie
  Next K
Return

Tiaod:
   For I = 1 To 40
   Waitms 20
   Gosub Key
   If I = 20 Then
      Restore Kongg
      For J = 1 To 6
          Gosub Xie
      Next J
   End If
   Next I
Return

Shiz:
X = 160
Y = 68
For I = 3 To 1 Step -1                                      '显示时钟子程序
    F2 = Ts(i)
    F2 = Format(f2 , "00")
    Z = Len(f2)
    Gosub Xie3110
    If I <> 1 Then
       Restore Maoh
       Q = 6
       Gosub Xie
    End If
Next I
Return

Icp_isr:
Icp_a = Capture1
Incr Js
Incr Jk
Return

Sub Fa(a As Byte )                                          '发送数据子程序
   Local At1 As Byte , At2 As Byte , P As Byte
   Ddrd.0 = 1
   Portd.0 = 0
   Ddrd.1 = 1
   Portd.1 = 0
   For P = 0 To 7
      Portd.0 = 0
      At1 = 2 ^ P
      At2 = A And At1
      If At2 = 0 Then
         Portd.1 = 0
         Else
         Portd.1 = 1
      End If
      Portd.0 = 1
   Next P
End Sub

Sub Shou(at As Byte )                                       '接收数据的子程序
   Local At1 As Byte , At2 As Byte , P As Byte
   Ddrd.0 = 1
   Portd.0 = 1
   At = 0
   At1 = 0
   Ddrd.1 = 0
   Portd.1 = 1
   For P = 0 To 7
      Portd.0 = 1                                           '高电位换数据
      Portd.0 = 0
      If Pind.1 = 1 Then
         At2 = 2 ^ P
         At1 = At1 + At2
         Elseif Pind.1 = 0 Then
         At2 = 0
      End If
   Next P
   At = At1
   Portd.0 = 0
End Sub

Sub Ting                                                    '结束操作子程序
   Ddrd.0 = 1
   Portd.0 = 0
   Ddrd.4 = 1
   Portd.4 = 0
End Sub

Sub Kais                                                    '开始操作子程序
   Ddrd.4 = 1
   Portd.4 = 1
   Ddrd.0 = 1
   Portd.0 = 0
End Sub

Key:
If Pind.3 = 0 Then
   Waitms 70
   If Pind.3 = 0 Then
      Select Case S1
              Case 0
                   Incr L
                   If L > 9 Then L = 0
              Case 1
                   L = L + 10
                   If L > 99 Then L = L - 100
              Case 2
                   L = L + 100
                   If L > 999 Then L = L - 1000
              Case 3
                   L = L + 1000
                   If L > 9999 Then L = L - 10000
              Case 4                                        '设置年个位
                   Incr L
                   If L > 9 Then L = 0
              Case 5                                        '设置年十位
                   L = L + 10
                   If L > 99 Then L = L - 100
              Case 6                                        '设置月0-12
                   Incr L
                   If L > 12 Then L = 0
              Case 7                                        '设置日0-31
                   Incr L
                   If L > 31 Then L = 0
              Case 8                                        '设置周1-7
                   Incr L
                   If L > 7 Then L = 1
              Case 9                                        '设置小时0-24
                   Incr L
                   If L > 24 Then L = 0
              Case 10 To 11                                 '设置分或秒0-59
                   Incr L
                   If L > 59 Then L = 0
      End Select
   End If
End If

If Pind.2 = 0 Then
   Incr S1
   Bitwait Pind.2 , Set
   If S1 = 4 Then
       Zc = L
       L = 0
       Gosub Lcdcls
   End If
   If S1 = 6 Then T(7) = L
   If S1 = 7 Then T(5) = L
   If S1 = 8 Then
      T(4) = L
      L = 1
   End If
   If S1 = 9 Then T(6) = L
   If S1 = 10 Then T(3) = L
   If S1 = 11 Then T(2) = L
   If S1 = 12 Then
      T(1) = L
      Start Timer1
      Gosub Lcdcls
   End If
   If S1 > 5 And S1 <> 8 Then L = 0
End If
Return


B0:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &H18 , &H00 , &H00 , &H18 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '0
B1:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '1
B2:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HFE , &H07 , &H00 , &H00 , &HFE , &H07 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &HE0 , &H7F , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '2
B3:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '3
B4:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &H00 , &H80 , &H01 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '4
B5:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H00 , &H00 , &HFE , &H07 , &H00 , &H00 , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '5
B6:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H00 , &H00 , &HFE , &H07 , &H00 , &H00 , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '6
B7:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &H18 , &H00 , &H00 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '7
B8:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '8
B9:
Data &H00 , &H00 , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &HE0 , &H7F , &H00 , &H00 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &H18 , &H80 , &H01 , &H18 , &HE0 , &H7F , &HFE , &H07 , &HE0 , &H7F , &HFE , &H07 , &H00 , &H00 , &H00 , &H00       '9

Zhou:
Data &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &HFF , &H0F , &H28 , &H04 , &H28 , &H02 , &HE4 , &H00 , &H24 , &H01 , &H22 , &H02 , &H22 , &H04 , &H20 , &H04 , &H00 , &H00       '长0
N1:
Data &H10 , &H01 , &H08 , &H01 , &HE7 , &H01 , &H24 , &H01 , &H24 , &H01 , &H24 , &H01 , &HFC , &H0F , &H24 , &H01 , &H24 , &H01 , &H24 , &H01 , &H04 , &H01 , &H00 , &H00       '年0
N2:
Data &H00 , &H08 , &H00 , &H06 , &HFE , &H01 , &H92 , &H00 , &H92 , &H00 , &H92 , &H00 , &H92 , &H00 , &H92 , &H08 , &H92 , &H08 , &HFE , &H0F , &H00 , &H00 , &H00 , &H00       '月1
N3:
Data &H00 , &H00 , &HFE , &H0F , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &H22 , &H04 , &HFE , &H0F , &H00 , &H00 , &H00 , &H00       '日2
N4:
Data &H00 , &H08 , &H00 , &H04 , &HFF , &H03 , &H21 , &H00 , &HA9 , &H03 , &HA9 , &H02 , &HBD , &H02 , &HA9 , &H02 , &HA9 , &H0B , &H21 , &H08 , &HFF , &H0F , &H00 , &H00       '周3
N5:
Data &HFE , &H07 , &H22 , &H02 , &H22 , &H02 , &HFE , &H07 , &H00 , &H00 , &H08 , &H00 , &H48 , &H00 , &H88 , &H09 , &H08 , &H08 , &HFF , &H0F , &H08 , &H00 , &H00 , &H00       '时4
N6:
Data &H20 , &H00 , &H10 , &H08 , &H2C , &H04 , &H23 , &H03 , &HE0 , &H00 , &H20 , &H08 , &H20 , &H08 , &H23 , &H08 , &HEC , &H07 , &H10 , &H00 , &H20 , &H00 , &H00 , &H00       '分5
N7:
Data &H12 , &H01 , &HD2 , &H00 , &HFE , &H0F , &H91 , &H00 , &H40 , &H08 , &H38 , &H08 , &H00 , &H04 , &HFF , &H04 , &H00 , &H02 , &H04 , &H01 , &HB8 , &H00 , &H00 , &H00       '秒6


A0:
Data &HBC , &H07 , &H02 , &H08 , &H02 , &H08 , &H02 , &H08 , &H02 , &H08 , &HBC , &H07       '0
A1:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &HBC , &H07 , &H00 , &H00 , &H00 , &H00       '1
A2:
Data &H80 , &H07 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H3C , &H00       '2
A3:
Data &H00 , &H00 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &HBC , &H07       '3
A4:
Data &H3C , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &H40 , &H00 , &HBC , &H07       '4
A5:
Data &H3C , &H00 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H80 , &H07       '5
A6:
Data &HBC , &H07 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H80 , &H07       '6
A7:
Data &H00 , &H00 , &H02 , &H00 , &H02 , &H00 , &H02 , &H00 , &H02 , &H00 , &HBC , &H07       '7
A8:
Data &HBC , &H07 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &HBC , &H07       '8
A9:
Data &H3C , &H00 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &H42 , &H08 , &HBC , &H07       '9

Kongg:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       ' 0

Maoh:
Data &H00 , &H00 , &H00 , &H00 , &H08 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       ':0

Jia:
Data &H20 , &H00 , &H20 , &H00 , &HFC , &H01 , &H20 , &H00 , &H20 , &H00 , &H00 , &H00       '+0

Jian:
Data &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H20 , &H00 , &H00 , &H00       '-0

Km:
Data &H00 , &H00 , &HFE , &H07 , &HA0 , &H00 , &H10 , &H01 , &H08 , &H02 , &H04 , &H04 , &H00 , &H00 , &HC0 , &H07 , &H40 , &H00 , &HC0 , &H07 , &H40 , &H00 , &HC0 , &H07       'km
Dian:
Data &H00 , &H00 , &H00 , &H02 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00       '.0

Dic:
Data &H00 , &H3E , &H22 , &H3E , &H3E , &H22 , &H3E , &H3E , &H22 , &H3E , &H1C , &H00       '0
Dib:
Data &H00 , &H3E , &H22 , &H22 , &H22 , &H22 , &H22 , &H22 , &H22 , &H3E , &H1C , &H00       '1

$eeprom
$eepromhex
Shuzu:
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

出0入8汤圆

 楼主| 发表于 2011-4-9 15:41:33 | 显示全部楼层
在关键的即时速度采集上,我采用了M8的定时器1的输入捕获功能(ICP),对两次相邻的触发脉冲周期进行捕获,然后根据采用的晶振频率和分频系数计算出间隔时间,再根据车轮周长就可以计算出真正的即时速度了,详见这段代码:
Ix = 3600 * Zc                                 
W = Icp_a - Icp_b                              '两次触发间隔周期
Icp_b = Icp_a
Iy = W * 7                                     '时间转换
Iy = Ix / Iy                                   '即时速度计算

出0入8汤圆

 楼主| 发表于 2011-4-10 10:23:20 | 显示全部楼层
石沉大海都没有这么快,下面太冷清冒个泡先

出0入0汤圆

发表于 2011-4-11 10:22:14 | 显示全部楼层
不能让楼主沉了,顶起来...

出0入0汤圆

发表于 2011-4-11 10:23:05 | 显示全部楼层
不能让楼主沉了,顶起来...

出0入0汤圆

发表于 2011-4-11 10:34:03 | 显示全部楼层
很好,支持一下

出0入0汤圆

发表于 2011-4-11 10:51:47 | 显示全部楼层
手印

出0入0汤圆

发表于 2011-4-11 11:15:12 | 显示全部楼层
很不错的啊!也想做一个。

出0入4汤圆

发表于 2011-4-11 23:47:44 | 显示全部楼层
东西回来了就做一个

出0入8汤圆

 楼主| 发表于 2011-4-14 08:24:50 | 显示全部楼层
建议大家做的时候一定用ATMEGA168A,16K的,可以多做很多功能,我这个已经将代码精简了很多,没办法,手头没有168,准备在阿莫邮购部买一片

出0入8汤圆

 楼主| 发表于 2011-4-14 16:18:59 | 显示全部楼层
现在用bascom的越来越少了,下面我把程序的hex和eep文件传上来,做个备份点击此处下载 ourdev_630689KBD7XZ.rar(文件大小:7K) (原文件名:码表.rar)

出0入0汤圆

发表于 2011-4-16 18:48:11 | 显示全部楼层
这两天下载不了,做个记号。

出0入0汤圆

发表于 2011-4-16 21:08:08 | 显示全部楼层
楼主又出新作了!好帖顶起。

出0入0汤圆

发表于 2011-4-16 21:11:58 | 显示全部楼层
不知楼主的那个数控充电器第二版完成了没有?关注。。。

出0入0汤圆

发表于 2011-4-16 21:46:49 | 显示全部楼层
好东西啊,口水流了一地,哈哈,就是不会bascom……哪位做些pcb出来玩啊

出0入8汤圆

 楼主| 发表于 2011-4-17 16:42:33 | 显示全部楼层
码表上车调试通过,请看
(原文件名:DSC01565.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-17 16:44:24 | 显示全部楼层

(原文件名:DSC01566.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-17 16:45:19 | 显示全部楼层

(原文件名:DSC01567.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-17 16:47:24 | 显示全部楼层

(原文件名:DSC01569.JPG)
没有合适的外壳,先裸体作业

出0入8汤圆

 楼主| 发表于 2011-4-17 16:48:35 | 显示全部楼层
看看我的车
(原文件名:DSC01563.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-17 16:50:30 | 显示全部楼层
安装好码表后
(原文件名:DSC01564.JPG)

出0入8汤圆

 楼主| 发表于 2011-4-17 16:55:22 | 显示全部楼层
捷安特3500,也就是入门级的公路赛车,但是别小看它,它可是陪我参加过正式的铁人三项比赛,3小时04分,成绩一般

出0入8汤圆

 楼主| 发表于 2011-4-17 17:27:03 | 显示全部楼层
我看过一些自行车里程表的制作,速度采集大都是计数方式,就是在一定时间内采集传感器触发次数,然后计算车速,这样是不可能保证数据精确的(当然如果只是玩玩,也没有必要较真),而我采用的方式是采集两次触发的间隔时间,这就可以非常精确的计算出自行车的即时速度,在此公布采用输入捕获功能采集即时速度的计算公式d(速度km/h)=3600*ZC(自行车周长)/t(两次触发间隔时间ms),
而t=n(分频系数)/f(晶振频率)

出0入0汤圆

发表于 2011-4-17 19:16:23 | 显示全部楼层
好东西,收藏

出0入0汤圆

发表于 2011-4-18 20:27:10 | 显示全部楼层
楼主位的原理图打不开,能发个pdf图吗?

出0入8汤圆

 楼主| 发表于 2011-4-19 08:32:38 | 显示全部楼层

(原文件名:无标题.jpg)

出0入8汤圆

 楼主| 发表于 2011-4-19 08:36:16 | 显示全部楼层
【54楼】 a_zhi :楼主位的原理图打不开,能发个pdf图吗?
都说用AD10画的,低版本可能打不开,不好意思,我不会转换成PDF,上面的事JPG的

出0入0汤圆

发表于 2011-4-19 14:28:06 | 显示全部楼层
回复【56楼】jianjun42 沧海一粟
【54楼】 a_zhi :楼主位的原理图打不开,能发个pdf图吗?
都说用ad10画的,低版本可能打不开,不好意思,我不会转换成pdf,上面的事jpg的
-----------------------------------------------------------------------

谢谢!

出0入0汤圆

发表于 2011-4-19 15:53:24 | 显示全部楼层
流口水了
仿照一个
谢谢楼主提供的资料

出0入8汤圆

 楼主| 发表于 2011-4-20 17:35:54 | 显示全部楼层
这个制作的全部文件包括原理图、印刷版图、最新HEX和EEP文件以及原代码一并打包,点击此处下载 ourdev_632334ZVDZA2.rar(文件大小:460K) (原文件名:码表.rar)

出0入0汤圆

发表于 2011-4-20 18:07:06 | 显示全部楼层
好东西,收藏了

出0入0汤圆

发表于 2011-4-20 21:13:08 | 显示全部楼层
收藏了

出0入0汤圆

发表于 2011-9-13 17:01:33 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-9-13 19:08:59 | 显示全部楼层
学习.

出0入0汤圆

发表于 2011-9-21 09:53:18 | 显示全部楼层
支持,MARK!

出0入0汤圆

发表于 2011-10-1 11:52:32 | 显示全部楼层
楼主,把单位改为m咋改,及时速度  单次行程 该车米 而不是千米的

出0入0汤圆

发表于 2011-10-1 12:00:20 | 显示全部楼层
有个想法:楼主,能不能加个功能,第一次的行程 和第二次的行程计算出矩形的面积  可以当做简单的面积测量器了

出0入0汤圆

发表于 2011-10-21 13:05:46 | 显示全部楼层
楼主呀 怎么不见你出现了

出0入0汤圆

发表于 2011-10-21 13:27:12 | 显示全部楼层
mark一下,回头来研究

出0入8汤圆

 楼主| 发表于 2011-10-28 08:35:28 | 显示全部楼层
【66楼】 zhaohongxian :
    楼主,把单位改为m咋改,及时速度  单次行程 该车米 而不是千米的
___________________________________________________________________________
回复:修改字模,我建的字模是Km,你重建一个M的字模就行了。


【67楼】 zhaohongxian :
有个想法:楼主,能不能加个功能,第一次的行程 和第二次的行程计算出矩形的面积  可以当做简单的面积测量器了
——————————————————————————————————————————————————————————
回复:可以的,第一次的行程已经记录在eeprom中了,你加一调计算代码用第二次的行程乘以第一次的行程就是面积了

出0入0汤圆

发表于 2011-10-28 09:07:58 | 显示全部楼层
请问楼主,用干簧管产生脉冲,在波形整形上没有处理吗?脉冲应该有毛刺吧,这个问题我想了很久,如果加器件处理波形,有累赘!

出0入0汤圆

发表于 2011-10-28 09:12:26 | 显示全部楼层
楼主厉害,老早想做一个,一直没行动!

出0入8汤圆

 楼主| 发表于 2011-10-28 10:17:27 | 显示全部楼层
【71楼】 xingkongyao :
请问楼主,用干簧管产生脉冲,在波形整形上没有处理吗?脉冲应该有毛刺吧,这个问题我想了很久,如果加器件处理波形,有累赘!
——————————————————————————————————————————————————————————
回复:如果采用干簧管就一定要加硬件的整形处理电路,这也是我最后用霍尔传感器的原因,因为我选用的霍尔元件内部自带整形电路,缺点是耗电稍大

出0入0汤圆

发表于 2011-10-30 23:05:59 | 显示全部楼层
增加一个减键在设置上会不会方便很多了,至少不会担心调过头了。

出0入8汤圆

 楼主| 发表于 2011-11-1 11:52:48 | 显示全部楼层
【74楼】 tonyone :
增加一个减键在设置上会不会方便很多了,至少不会担心调过头了。
——————————————————————————————————————
回复:没有问题,端口还有很多,我只是沿用了市面上大多数码表的两键结构

出0入0汤圆

发表于 2011-11-2 16:04:24 | 显示全部楼层
如果用51的就好了我不了解这种单片机,呵呵 c语言就更好了  学无止境呀

出0入0汤圆

发表于 2011-11-15 23:41:09 | 显示全部楼层
回复【楼主位】jianjun42 沧海一粟
-----------------------------------------------------------------------

我是新手,弱弱地问一下,怎么样查看元件清单?楼主可以发一下吗?

出0入8汤圆

 楼主| 发表于 2011-11-28 08:11:40 | 显示全部楼层
【77楼】 kubi


不好意思,实在没有时间整理元件清单,楼上有电路图,朋友自己看看吧,元件并不多

出0入8汤圆

发表于 2011-11-28 08:57:03 | 显示全部楼层
离的很近,今天才看到这个,很好的制作。

出0入0汤圆

发表于 2011-12-1 04:54:45 | 显示全部楼层
高手就是高手。学习了。

出0入0汤圆

发表于 2011-12-1 23:32:09 | 显示全部楼层
牛逼!不错的东东!

出0入0汤圆

发表于 2011-12-2 07:29:30 | 显示全部楼层
谢谢LZ分离哟

出0入0汤圆

发表于 2011-12-14 14:12:20 | 显示全部楼层
牛叉!

出0入0汤圆

发表于 2012-1-30 23:03:51 | 显示全部楼层
mark

出0入4汤圆

发表于 2012-8-10 17:53:11 | 显示全部楼层
哈哈  不错  有空我也做一个

出0入0汤圆

发表于 2012-8-15 23:40:03 | 显示全部楼层
楼主的干簧管在哪里有卖?

出0入0汤圆

发表于 2012-8-17 20:54:14 | 显示全部楼层
楼主牛人

出0入0汤圆

发表于 2012-8-17 21:19:50 | 显示全部楼层
老帖新看 温故知新!

出0入0汤圆

发表于 2012-9-4 22:57:26 | 显示全部楼层
干簧管捕捉信号不准,距离远了,信号时有时无,太近了,有增加碰撞几率!

出0入0汤圆

发表于 2012-9-5 01:34:55 | 显示全部楼层
楼主强人,顺便问一下bascom这编译器效率怎么样?

出0入0汤圆

发表于 2012-9-5 08:30:55 | 显示全部楼层
wblqx 发表于 2011-3-26 10:45
LZ的设计不错,已经制作的LZ的LCR Meter。天津的帮顶啊!

老乡!我来了。

出0入8汤圆

 楼主| 发表于 2012-9-5 09:08:51 | 显示全部楼层
hamipeter 发表于 2012-9-5 01:34
楼主强人,顺便问一下bascom这编译器效率怎么样?

bascom编译器的效率如何我还真没有测试过,刚接触单片机时用的就是这款编译器,容易上手而且代码可读性也较强,个人习惯而已,这么多年了,一直舍不得丢下它

出0入8汤圆

 楼主| 发表于 2012-9-5 09:12:38 | 显示全部楼层
Zdhtdps 发表于 2012-9-5 08:30
老乡!我来了。

谢谢老乡,不过你说的那个LC METER不是我的设计,是jun427的,后来做的都是上寨的,

出0入0汤圆

发表于 2012-9-5 09:55:53 | 显示全部楼层
不错,那个电池电量显示效果怎么做的啊?

出0入8汤圆

 楼主| 发表于 2012-9-7 10:09:52 | 显示全部楼层
avatar2008 发表于 2012-9-5 09:55
不错,那个电池电量显示效果怎么做的啊?

用字模软件做的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-6-16 20:44:12 | 显示全部楼层
谢谢分享

出0入4汤圆

发表于 2013-6-16 21:17:59 | 显示全部楼层
楼主界面做得好,我原来用stc+和你一样的屏幕,然后一个霍尔传感器(需要三根线的那个)

出0入0汤圆

发表于 2014-1-10 22:30:12 | 显示全部楼层
你好,请问是不是一定要用3.6864MHZ的晶体,如果用8M的需要更改程序么

出0入0汤圆

发表于 2014-1-10 22:33:48 | 显示全部楼层
jianjun42 发表于 2011-11-1 11:52
【74楼】 tonyone :
增加一个减键在设置上会不会方便很多了,至少不会担心调过头了。
————————— ...

你好,烧程序的熔丝怎么设置啊,谢谢

出0入0汤圆

发表于 2014-1-11 08:16:28 来自手机 | 显示全部楼层
谢谢分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 03:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表