⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sincos.bas

📁 82 sample programs written in BASCOM-8051 for 8051 developement
💻 BAS
字号:
'-----------------------------------------------------------------------
'                  math example for SIN, COS and TAN
'                       (c) 2000 MCS Electronics
'-----------------------------------------------------------------------
'This demo shows how to implement the SIN , COS and TAN functions
'They will be implemented later in ASM.
$large
Dim _s As Single , S1 As Single , S2 As Single , S3 As Single


 _s = .1
Gosub Sin                                                     'get SIN of _s
Print _s

_s = 0
Gosub Cos                                                     'get COS of _s
Print _s

_s = 1
Gosub Tan
Print _s

_s = 1.1
Gosub Log
Print _s

_s = 1.1
Gosub Log10
Print _s
End

'sin function , assumes _s in radians
Sin:
  S1 = _s
  _s = _s * _s
  S2 = _s
  _s = _s * 0.01388888899236917                               ' 1/72
  _s = _s - 1
  _s = _s * S2
  _s = _s * 0.02380952425301075                               '1/42
  _s = _s + 1
  _s = _s * S2
  _s = _s * .05                                               '1/20
  _s = _s - 1
  _s = _s * S2
  _s = _s * 0.1666666716337204                                '1/6
  _s = _s + 1
  _s = _s * S1
Return

'cos function , assumes _s in radians
Cos:
  _s = _s * _s                                                'angle squared
  S1 = _s                                                     'save

  _s = _s * 0.01785714365541935                               '1/56
  _s = _s - 1

  _s = _s * S1
  _s = _s * 0.03333333507180214                               '1/30
  _s = _s + 1
  _s = _s * S1

  _s = _s * 0.0833333358168602                                '1/12
  _s = _s - 1
  _s = _s * S1

  _s = _s * .5                                                '1/2
  _s = _s + 1
Return

'tan function , assumes _s in radians
Tan:
  S3 = _s
  Gosub Sin                                                   'get sinus
  S2 = _s                                                     'store in s2
  _s = S3                                                     'get original value back
  Gosub Cos
  _s = S2 / _s
Return

Log:
 Dim Ch As Byte
 Dim J As Byte
 S1 = _s - 1.0
 S3 = S1
 S2 = S1
 Ch = 0
 For J = 2 To 10                                              'increase J for better result
    S2 = S2 * S1
    S2 = S2 / J
    If Ch.0 = 1 Then
      S3 = S3 + S2
    Else
      S3 = S3 - S2
    End If
    Incr Ch
  Next
  _s = S3
Return

Log10:
   Gosub Log
   _s = _s * 0.43429
Return

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -