Descriere generala

Scopul proiectului este realizarea unui calculator de buzunar care sa execute operatiile de adunare, scadere, inmultire si impartire asupra a doua numere.

Hardware Design

Piesele folosite:

  1. placuta de baza realizata pentru prima etapa a proiectului( cu microcontrollerul ATmega16 )
  2. un display LCD cu 2 linii si 16 coloane ,conectat direct la microcontroller
  3. o tastatura cu 16 taste ( 10 taste pentru cifre, o tasta pentru ” = ”, 4 taste pentru operatiile de adunare, scadere, inmultire si impartire si o tasta pentru reset )
  4. cablu prelungitor USB
  5. cablu serial
  6. fire de legatura

Alimentarea placutei de baza se face prin USB, de la portul USB al unui calculator.

Schema bloc:

Schema in Proteus:

Software Design

Implementarea codului a fost realizata in limbajul Bascom, utilizând mediul de dezvoltare Micro-IDE.

Codul sursa:

$regfile = "m16def.dat"
$crystal = 1000000

Config Kbd = Portd , Debounce = 30 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.3 , E = Portb.2

Dim A As Byte Dim B As Byte Dim Key As Byte Dim C As Byte Dim D As Byte Dim E As Byte Dim F As Byte

Cls Cursor Off Locate 2 , 1 Lcd “Calculator_alexia” E = 0 B = 0

Q: Waitms 200 'B = 0 A = Getkbd() If A > 15 Then

    Goto Q
 Else
  Key = Lookup(a , Dta)
  If Key <= 9 Then
      D = 0
      B = 10 * B
      B = B + Key
  If E = 0 Then C = B
  If E = 1 Then D = B
          Cls : Lcd B
    Elseif Key = 10 Then
          Cls
          F = 1
          E = 1
          B = 0
    Elseif Key = 11 Then
          Cls
          E = 1
          F = 2
          B = 0
    Elseif Key = 12 Then
          Cls
          E = 1
          F = 3
          B = 0
    Elseif Key = 15 Then
          Cls
          E = 1
          F = 4
          B = 0
    Elseif Key = 13 Then
          Cls
          E = 0
          B = 0
    Elseif Key = 14 Then
        If E = 1 Then
             Cls
           Select Case F
             Case 1 :
                B = C / D
             Case 2:
                B = C * D
             Case 3:
                B = C - D
             Case 4:
                B = C + D
          End Select
        Lcd B
     End If
   End If

End If Locate 2 , 1 Lcd “Calculator_alexia”

Goto Q End Dta: Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15

Imagini Proiect

Download

calculator_alexia.zip

Arhiva contine:

  • fisierul kbd.bas cu codul sursa
  • fisierul kbd.hex
  • schema in Proteus Calculator.DSN in folderul proteus

Bibliografie/Resurse

pm/prj2010/rtataroiu/calculator_buzunar.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0