automatic control systems - ferdowsi university of...

Post on 15-Jun-2019

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Lecture 15

AUTOMATIC CONTROLAUTOMATIC CONTROLSYSTEMSSYSTEMSAli Karimpour

Associate ProfessorFerdowsi University of Mashhad

Ali Karimpour Dec 2012

Chapter 15

Lecture 15

The AVR Programming and Simulation

2

Ali Karimpour Dec 2012

Chapter 15

Contents

Bascom

CodeVision

ProteusThe Proteus provides detailed instructions on how to create new simulator models, using schematic techniques.

Programming a microcontroller through high level language(Basic)

Programming a microcontroller through high level language(C)

3

Ali Karimpour Dec 2012

Chapter 15A simple program that counts the cows in a field.

4

Suitable devices

Micro

LCD

Switches

Capacitors and resistors

Ali Karimpour Dec 2012

Chapter 15A simple program that counts the cows in a field.

5

Suitable devices

Micro

LCD

Switches

Capacitors and resistors

Ali Karimpour Dec 2012

Chapter 15

BascomAVR setup

6

$regfile = "M8535.dat“

Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.2

Config Lcd = 16 * 2

Locate 2 , 10Lcd “hello”

Config Debounce = 1000

Dim A As Byte

Declare Sub IncrementDeclare Sub Decrement

Ali Karimpour Dec 2012

Chapter 15

7

Cursor Off

A = 0

Do

Loop

End

…….

Debounce Pinb.0 , 1 , Decrement , SubDebounce Pind.5 , 1 , Increment , Sub

BascomAVR setup

Ali Karimpour Dec 2012

Chapter 15

8

Sub Increment

ClsIncr AIf A > 30 Then A = 0HomeLcd AReturn

End Sub Increment

Sub Decrement

ClsDecr AHomeLcd AReturn

End Sub Decrement

See example#1 for more information

BascomAVR setup

Ali Karimpour Dec 2012

Chapter 15

Proteus as a simulator

9

See example#1 for more information

Ali Karimpour Dec 2012

Chapter 15

Code Vision AVR setup

After opening Code Vision AVR click on:

Tools CodeWizardAVR

select you chip version and oscillator frequency

10

Ali Karimpour Dec 2012

Chapter 15

Set/clear the pins you want

11

Ali Karimpour Dec 2012

Chapter 15

LCD setup

Control LCD with port B:

Program Generate, save and exit

12

Ali Karimpour Dec 2012

Chapter 15

C code of project

13

/*****************************************************This program was produced by theCodeWizardAVR V2.05.0 EvaluationAutomatic Program Generator© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : Version : Date : 2012/12/21Author : Freeware, for evaluation and non-commercial use onlyCompany : Comments:

Chip type : ATmega8535Program type : ApplicationAVR Core Clock frequency: 8.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 128*****************************************************/

Ali Karimpour Dec 2012

Chapter 15

C code of project

14

#include <mega8535.h>

// Alphanumeric LCD Module functions#include <alcd.h>

// Declare your global variables here

void main(void){// Declare your local variables here

// Input/Output Ports initialization// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;DDRA=0x00;

Ali Karimpour Dec 2012

Chapter 15

C code of project

15

// Port B initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=T PORTB=0x00;DDRB=0xFE;

// Port C initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;DDRC=0x00;

// Port D initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;DDRD=0x00;

Ali Karimpour Dec 2012

Chapter 15

C code of project

16

……………………. Timer, watchdog,

// Alphanumeric LCD initialization// Connections specified in the// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:// RS - PORTB Bit 2// RD - PORTB Bit 3// EN - PORTB Bit 1// D4 - PORTB Bit 4// D5 - PORTB Bit 5// D6 - PORTB Bit 6// D7 - PORTB Bit 7// Characters/line: 16lcd_init(16);

while (1){// Place your code here}

}

Ali Karimpour Dec 2012

Chapter 15

C code of project

17

top related