EC1019A PROCESSOR LAB LABORATORY MANUAL SEMESTER V

  EC1019A PROCESSOR LAB    LABORATORY MANUAL    SEMESTER V                              DEAPRTMENT OF  ELECTRONICS AND COMMUNICATION ENGINEERING  S...
Author: Joel Gilmore
67 downloads 1 Views 594KB Size
 

EC1019A PROCESSOR LAB    LABORATORY MANUAL    SEMESTER V                             

DEAPRTMENT OF  ELECTRONICS AND COMMUNICATION ENGINEERING 

SRM UNIVERISTY  (Under SECTION 3 of the UGC Act, 1956) 

S.R.M. NAGAR, KATTANKULATHUR – 603203.   

            Department of Electronics and Communication Engineering     

EC1019A 

Processor Lab       Laboratory Manual        June 2015   

Mr. R.Prithiviraj. and course committee

2

 

 









EC1019A 

PROCESSOR LAB 









 

Prerequisite : nil 

 

 

 

 

 

PURPOSE :    This  laboratory  will  provide  the  students  a  perfect  introduction  to  the  world  of  Microprocessors    and    to    provide    hands‐on    experience    essential    to    the    real  understanding    of    microprocessors    architecture    and    it’s    interfacing    to    the  peripheral  devices. The experiments are designed to provide the students with the  design  principles   of  microprocessor  systems  and real  time  programming. The  course  accomplishes  this  by   using  microprocessor  kits,  simulators  and software development systems.  INSTRUCTIONAL OBJECTIVES    1.To demonstrate programming proficiency using the various addressing modes and data  transfer instructions of the target microprocessor.        2.To apply knowledge of the microprocessor’s internal registers and operations by use of a PC based  microprocessor simulator.                  3.To interface the processor to external devices   

LIST OF EXPERIMENTS  S.No .  1  2  3 

Lab Experiments  Introduction to microprocessor and microcontroller kit.  Introduction to registers , Instruction sets, arithmetic operators of 8086  Introduction to General purpose registers, addressing modes, logical operators of  8086 



Interfacing of 8255 PPI with 8086 



Interfacing of 8279 keyboard and display with 8086 



Introduction to registers , Instruction sets, arithmetic operators of  8051 



Introduction to General purpose registers, addressing modes, logical operators of  8051 



Interfacing of 8254 timer with 8051 Microcontroller 



Interfacing of Stepper motor control with 8051 Microcontroller 

10 

Implementation of Seven segment display from ‘0000’ to ‘9999’ using Nuvoton  board 

11 

Implementation of Seven segment display for ADC input using Nuvoton board 

12 

Implementation of  UART using Nuvoton board 

13 

Implementation of temperature sensor using Nuvoton board 

14 

Linear convolution using TMS320C6713 kit 

15 

Circular convolution using TMS320C6713 kit 

3

  EC1019A – Processor Lab  Course designed by  Program  1  outcome 









Department of Electronics & Communication Engineering  b  c  d  e  f  g  h  i  j  k    X  X   X   X            X    Engineering   Sciences  Basic   Professional   General  and  Sciences  Subjects(P)  (G)  Category  Technical  (B)  Arts(E)        X  Broad area  Communication Signal Processing Electronics  VLSI  Embedded  (for          X  ‘P’category)  Staff  Mr. A.V.M Manikandan  responsible  Mr. Selvakumar  for    preparing  the syllabus  Date of  May 2014  preparation  A   

                     

 

4

S.R.M University  Faculty of Engineering and Technology  Department of Electronics and Communication Engineering    Sub Code: EC1019A            Semester       : V  Sub Title: Processor Lab           Course Time: Jul–Dec’15  Pre‐requisite       :  NIL  Co‐requisite        :  EC1016A Microprocessors & Microcontrollers 

  Program Outcome      c. Graduate will demonstrate the ability to design and conduct experiments, analyze and  interpret data  Experiment 1 to Experiment no. 15 (Please refer Expt. list)  d. Graduate will demonstrate the ability to design a system, component or process as per  needs and specification  Experiment  4:  To  interface  8255  Programmable  Peripheral  Interface  with  8086  microprocessor and to test mode 0 operation  Experiment 5: To interface Keyboard /Display to 8086 micro controller and to read key and  display data in leds.  Experiment 8: To interface 8254  programmable timer with 8051 controller and to test the  mode 0 operation.  Experiment 9: To interface a stepper motor with a 8051 kit and to make it run a) clockwise  b) anti clockwise 

e. an ability to identify, formulate, and solve engineering problems   Experiment 1 to Experiment no. 15 (Please refer Expt. list)  f.  Graduate  will  demonstrate  the  skills  to  use  modern  engineering  tools,  software’s  and  equipment to analyze problems  Experiment 2: Using 8086 emulator  add, subtract, multiply and divide two 16 bit numbers  stored in the memory and save the results of the operation in the memory.  Experiment 3: To find the largest and the smallest of the given array of numbers stored in  memory using 8086.  Experiment 3: To sort the given array of numbers stored in memory location into ascending  and descending order using 8086.  Experiment 10: Perform seven segment display from “0000” to “9999’ in Keil IDE  Experiment 11: Perform seven segment display fetching data from the potentiometer using  Keil IDE 

(j) a knowledge of contemporary issues   Experiment 1 to Experiment no. 15 (Please refer Experiment list) 

 

  5

S.R.M University  Faculty of Engineering and Technology  Department of Electronics and Communication Engineering    Sub Code : EC1019A          Semester       : V  Sub Title  : Processor Lab         Course Time : Jul–Dec’15  Pre_requisite       :  NIL  Co_requisite        :  EC01016A Microprocessors & Microcontrollers   

 Program Educational Objectives Vs Program Outcome   

Program  Educational  Objective    Student  Outcomes     

c  d  e  f  j 

PEO1: 

PEO2:

PEO3:

PEO4: 

 

 

 

 

Graduates will  perform as a  successful  Professional  engineer in  related fields of  Electronics and  Communication  Engineering. 

Graduates  will pursue  higher  education  and/or  engage  themselves in  continuous  professional  development  to meet  global  standards. 

Graduates will  work as a team  in diverse fields  and gradually  move into  leadership  positions. 

Graduates will  understand  current  professional  issues, apply  latest  technologies  and come out  with  innovative  solutions for  the  betterment of  the nation and  society. 

√ 

 

 

√ 

√ 

 

√ 

√ 

√ 

 

 

√ 

√ 

√ 

√ 

√ 

√ 

√ 

 

√ 

     

 

 

6

S.R.M University  Faculty of Engineering and Technology  Department of Electronics and Communication Engineering    Sub Code : EC1019A          Semester       : V  Sub Title  : Processor Lab                     Course Time : Jul–Dec’15  Pre_requisite       :  NIL  Co_requisite        :  EC1016A Microprocessors & Microcontrollers   

Instructional Objective and Program Outcome  S.No  Instructional   Objective  1  To demonstrate  program  proficiency using  the various  addressing modes  and data transfer  instructions of the  target  microprocessor.     

Program Outcome  

Experiment Details 

  1.Introduction to microprocessor  and microcontroller kit.    2.Introduction to registers ,  Instruction sets, arithmetic  e. an ability to identify,  operators of 8086  formulate, and solve    engineering problems   f.  Graduate  will  3. Introduction to General  demonstrate  the  skills  to  purpose registers, addressing  use  modern  engineering  modes, logical operators of 8086  tools,  software’s  and  equipment  to  analyze  problems 

d.  Graduate  will  demonstrate  the  ability  to  design  a  system,  component  or  process  as  per needs and specification 

j. a knowledge of  contemporary issues 



To apply  knowledge of the  microprocessor’s  internal registers  and operations by  use of a PC based  microprocessor  simulator. 

c. Graduate will  demonstrate the ability to  design and conduct  experiments, analyze and  interpret data  d.  Graduate  will  demonstrate  the  ability  to  design  a  system,  component  or  process  as  per needs and specification 

    6.Introduction to registers ,  Instruction sets, arithmetic  operators of  8051    e. an ability to identify,    formulate, and solve  7.Introduction to General  engineering problems   f.  Graduate  will  purpose registers, addressing  demonstrate  the  skills  to  modes, logical operators of 8051  use  modern  engineering  tools,  software’s  and  equipment  to  analyze  problems  c. Graduate will 

7



To interface the  processor to  external devices. 

demonstrate the ability to  design and conduct  experiments, analyze and  interpret data  d.  Graduate  will  demonstrate  the  ability  to  design  a  system,  component  or  process  as  per needs and specification 

e. an ability to identify,  formulate, and solve  engineering problems   f. Graduate will  demonstrate the skills to  use modern engineering  tools, software’s and  equipment to analyze  problems

j. a knowledge of  contemporary issues      

4.8255 PPI using 8086      5.8279 keyboard and display  using 8086    8.8254 timer using 8051  Microcontroller    9.Stepper motor control using  8051 Microcontroller    10.Seven segment display using  NUVOTON board.    11.ADC using NUVOTON board.    12. UART using NUVOTON board.   13. Temperature sensor using  NUVOTON board    14. Linear convolution using  TMS320C6713 kit.    15. Circular convolution using  TMS320C6713 kit 

           

 

 

8

S.R.M University  Faculty of Engineering and Technology  Department of Electronics and Communication Engineering    Sub Code : EC0321          Semester       : V  Sub Title: Processor Lab         Course Time : Jul–Dec’14  Pre_requisite       :  NIL  Co_requisite        :  EC0309 Microprocessors & Microcontrollers 

  EXPERIMENTS DETAILS  S.No.  Experiments Detail 

1  2  3 

4  5 

6  7 

8  9  10  11  12  13 

14  15 

Equipments  Required  I.Programming in 8086  Introduction to microprocessor and  8086 Trainer Kit   microcontroller kit.  Introduction to registers , Instruction sets,  8086 Trainer Kit  arithmetic operators of 8086  Introduction to General purpose registers,  8086 Trainer Kit  addressing modes, logical operators of 8086  II. 8086 Interfacing  Interfacing of 8255 PPI using 8086  8086 Trainer Kit,  8255  Interfacing of 8279 keyboard and display  8279 module,   using 8086  8051 kit 

Components  Required  Power Cables  Power Cables  Power Cables 

Power Cables  Power Cables  Add on card  connector bus. 

III.Programming in 8051  Introduction to registers , Instruction sets,  8051 Trainer kit  Power Cables  arithmetic operators of  8051  Introduction to General purpose registers,  8051 Trainer kit  Power Cables  addressing modes, logical operators of 8051  IV.8051 Interfacing  Interfacing of 8254 timer using 8051  8253 module,   Power Cables  Microcontroller  8051 kit  Interfacing of Stepper motor control using  Stepper motor ,  Power Cables  8051 Microcontroller  8051 kit  V. Programming in Nuvoton Board  Implementation of Seven segment display  Nuvoton kit  Power Cables  from ‘0000’ to ‘9999’using Nuvoton board  Implementation of Seven segment display for  Nuvoton kit,  Power Cables  ADC input using Nuvoton board  Potentiometer  Implementation of  UART using Nuvoton  Nuvoton kit  Power Cables  board  Implementation of temperature sensor using  Nuvoton kit  Power Cables  Nuvoton board  VI. Programming in TMS320C6713 Digital signal processor  Linear convolution using TMS320C6713 kit  TMS320C6713  Power Cables  kit  Circular convolution using TMS320C6713 kit  TMS320C6713  Power Cables  kit 

9

Academic Course Description  SRM University Faculty of Engineering and Technology  Department of Electronics and Communication Engineering   

EC1019A Processor lab  Fifth Semester, 2015‐16 (OddSemester)    Course (catalog) description 

This  Microprocessor  is  a  required  course  for  under‐graduate  students  in  the  ECE  program.  The  purpose  of  this  course  is  to  teach  students  the  fundamentals of microprocessor and microcontroller systems. The student will be  able to incorporate these concepts into their electronic designs for other courses  where control can be achieved via a microprocessor/controller implementation.   Topics  include  Semiconductor  memory  devices  and  systems,  microcomputer  architecture,assembly  language  programming,  I/O  programming,  I/O  interface  design,  I/O  peripheral  devices,  datacommunications,  and  data  acquisition  systems.  Several  laboratory  exercises  will  be  based  on  both  microprocessor (Intel 8086), microcontroller (Intel 8051) and ARM (nuvoTon‐ Nu‐ LB‐LUC140)).  Compulsory/Elective course: Compulsory  Credit hours:  2 credits  Laboratory  Digital signal processing  Laboratory (TP9L3) , Computing Laboratory (TP10L1), RF  Laboratory (TP13L4)   Course coordinator(s)  R.PRITHIVIRAJ, Assistant Professor (Ordinary Grade), Department of ECE 

INSTRUCTOR(S)  Name of the  instructor 

Class  handling

Office  location 

Office  Email phone (@ktr.srmuniv.ac.in) 

Mrs. R. Manohari 

X1 

TP9S4 

Mr. R. Prithiviraj 

X2 

TP10S4 

‐‐ 

prithiviraj.r 

Dr.Diwakar.R.marur 

X3 

TP1003A

‐‐ 

Diwakar.r 

Mr. S. Yuvaraj 

X4 

TP10S4 

‐‐ 

yuvaraj.s 

Mr. A. Joshua Jafferson 

X5 

TP1206A

2067  joshua.j 

Ms.D. Vijayalakshmi 

Y1 

TP1203A

2064  vijayalakshmi.d 

Mr. K. Ramesh 

Y2 

TP1106A

2063  ramesh.kr 

Mrs. J. K. KasthuriBha 

Y3 

TP10S8 

2055  manohari.r 

2070  kasthuribha.jk 

Consultations  Day 5‐12.45PM to  1.20PM  Day 5‐12.45PM to  1.20PM   Day 5‐12.45PM to  1.20PM   Day 5‐12.45PM to  1.20PM .  Day 5‐12.45PM to  1.20PM .  Day 5‐12.45PM to  1.20PM   Day 5‐12.45PM to  1.20PM .  Day 5‐12.45PM to  1.20PM . 

10

Name of the  instructor 

Class  handling

Office  location 

Y4 

TP10S4 

Y5 

TP10S8 

2061  ferentskoni.k 

Y6 

TP103A 

2065  sriram.a 

Mr. M. Maria Dominic  Savio  Mrs. K. Ferents Koni  Jiavana  Mr. A.Sriram 

Office  Email phone (@ktr.srmuniv.ac.in) 

‐‐ 

Consultations 

mariadominicsavio Day 5‐1.45PM to  3.20PM .  .m  Day 5‐12.45PM to  1.20PM .  Day 5‐3.45PM to  4.40PM . 

 

RELATIONSHIP TO OTHER COURSES  Pre‐requisites    :   NIL  Following courses  :  Nil  Text book(s) and/or required materials:   Lab manual; additional materials posted on SRM web.  References 

 

1. Processor Lab MANUAL, Department of ECE, SRM University   2. Ray.A.K  and  Bhurchandi.K.M,  “Advanced  Microprocessors  and  Peripherals”,  Tata  McGraw‐Hill, 2006.   3. Muhammad Ali Mazidi and Janice Gillispie Mazidi, Rolin D. McKinlay, “The 8051  – Microcontroller and Embedded Systems: Using Assembly and C”, 2nd Edition,  Pearson Education, 2011.   4. Nuvoton (NUC100/140 series Board Schematics manual, nuvoTon (NUC100/140)  series Educational sample codes), www.nuvoton.com  

Computer usage  Students  are  expected  to  use  the  computer  to  write  and  assemble  assembly  language  programs  and  also  run  them  by  downloading  them  to  the  target microprocessor. Students will also use a microprocessor software simulator  that  runs  on  the  personal  computer.  Students  will  also  prepare  lab  reports  and  conduct out‐of‐class assignments using the computer.   

Class / Lab schedule :  one 100 minutes lab session per week, for 10‐14 weeks    Group  X1  X2  X3  X4  X5  Y1  Y2  Y3  Y4  Y5  Y6 

Schedule  DAY 1 – 7, 8 &  DAY 2 ‐ 3,4  DAY 1 – 7, 8 &  DAY 4 – 1,2  DAY 3 – 7, 8 &  DAY 5 ‐ 3,4  DAY 2 – 3, 4 &  DAY 3 ‐ 7,8  DAY 2 – 3, 4 &  DAY 5 ‐ 7,8  DAY 2 – 7, 8 &  DAY 5 ‐ 3,4  DAY 2 – 7, 8 &  DAY 3 ‐ 3,4  DAY 3 – 3, 4 &  DAY 4 ‐ 7,8  DAY 3 – 3, 4 &  DAY 5 ‐ 7,8  DAY 4 – 7, 8 &  DAY 5 ‐ 3,4  DAY 1 – 7, 8 &  DAY 4 ‐ 1,2 

      11

Professional component    General            Basic Sciences           Engineering sciences & Technical arts    Professional subject       

‐  ‐  ‐  ‐ 

0%  0%  0%  100% 

Broad area:  Communication | Signal Processing | Electronics | VLSI | Embedded 

Mapping of Instructional Objectives with Program Outcome  This course provides the foundation education in Microprocessor and  microcontroller. Through lecture, laboratory, and out‐of‐class  assignments, students are provided learning experiences that enable  them to: 

1. To demonstrate program proficiency using the various addressing  modes and data transfer instructions of the target microprocessor.  2. To apply knowledge of the microprocessor’s internal registers and  operations by use of a PC based microprocessor simulator.

3. To interface the processor to external devices. 

Correlates to  Student  Outcome  H 





c, d 



 j 

c, d 





c, d 



f,j 

H: High correlation,  M: Medium correlation,  L: Low correlation 

Course Learning Outcomes  1. Students  should  be  able  to  solve  basic  binary  math  operations  using  the  microprocessor / microcontroller  2. Students  should  be  able  to  demonstrate  programming  proficiency  using  the  various  addressing  modes  and  data  transfer  instructions  of  the  target  microprocessor / microcontroller.  3. Students  should  be  able  to  program  using  the  capabilities  of  the  stack,  the  program  counter,  and  the  status  register  and  show  how  these  are  used  to  execute a machine code program.  4. Students  should  be  able  to  apply  knowledge  of  the  microprocessor’s  internal  registers and operations by use of a PC based microprocessor simulator.  COURSE TOPICS  S.No.  1  2  3  4  5  6  7  8  9 

Lab Experiments  Introduction to microprocessor and microcontroller kit.  Introduction to registers , Instruction sets, arithmetic operators  of 8086  Introduction to General purpose registers, addressing modes,  logical operators of 8086  Interfacing of 8255 PPI with 8086  Interfacing of 8279 keyboard and display with 8086  Introduction to registers , Instruction sets, arithmetic operators  of  8051  Introduction to General purpose registers, addressing modes,  logical operators of 8051  Interfacing of 8254 timer with 8051 Microcontroller  Interfacing of Stepper motor control with 8051 Microcontroller 

Sessions  1  2  3  4  5  6  7  8  9 

12

10  11  12  13 

Seven segment display using Nuvoton board  8 bit ADC using Nuvoton board  Design of UART using Nuvoton board  Design of thermistor using Nuvaton board 

10  11  12  13 

 

Mapping of Instructional Objective with experiments:  List of Experiments  IO#1  Introduction to microprocessor and microcontroller  kit.  Introduction to registers , Instruction sets, arithmetic  operators of 8086  Introduction to General purpose registers,  addressing modes, logical operators of 8086  8255 PPI using 8086  8279 keyboard and display using 8086  Introduction to registers , Instruction sets, arithmetic  operators of  8051  Introduction to General purpose registers,  addressing modes, logical operators of 8051  8254 timer using 8051 Microcontroller  Stepper motor control using 8051 Microcontroller  Seven segment display using Nuvoton board  8 bit ADC using Nuvoton board  Design of UART using Nuvoton board  Design of Thermistor using Nuvoton board 

  EVALUATION METHODS  Internal Assessment Marks: 60   

Carrying out lab work &  Report  Mini Project  Attendance  Model Exam        Prepared by:   



25 

:  :  : 

10  05  20 

 

X  X  X      X  X             

IO#2 

IO#3 

 

 

 

 

 

 

X  X   

X  X   

    X  X  X  X  X  X 

  X  X  X  X  X  X 

End Semester Examination Marks: 40        Aim & Procedure  :  05  Flowchart & Diagram  :  10  Program  :  15  Result  :  05  Viva‐Voce  :  05 

Mr. R.Prithiviraj, Assistant Professor (OG), Department of ECE  Dated:  26 june 2015  Revision No.:  00                          Date of revision:  NA                  Revised by:  NA   

 

 

    Course Coordinator         Academic Coordinator          Professor In‐Charge                HOD/ECE  (R.Prithiviraj)               (Mrs.N. Saraswathy)              (Dr.B. Ramachandran) (Dr.S.Malarvizhi) 

13

LABORATORY POLICIES AND REPORT FORMAT  Reports are due at the beginning of the lab period. The reports are intended to be  a complete documentation of the work done in preparation for and during the lab.  The  report  should  be  complete  so  that  someone  else  familiar  with  electronic  design could use it to verify your work. The prelab and postlab report format is as  follows:     1. A neat thorough prelab must be presented to your faculty Incharge at the  beginning of your scheduled lab period. Lab reports should be submitted  on A4 paper. Your report is a professional presentation of your work in the  lab. Neatness, organization, and completeness will be rewarded. Points will  be deducted for any part that is not clear.    2. In  this  laboratory  students  will  work  in  teams  of  three.  However,  the  lab  reports  will  be  written  individually.  Please  use  the  following  format  for  your lab reports.   a. Cover  Page:  Include  your  name,  Subject  Code,  Section  No.,  Experiment No. and Date.  b. Objectives:  Enumerate  3  or  4  of  the  topics  that  you  think  the  lab  will  teach  you.  DO  NOT  REPEAT  the  wording  in  the  lab  manual  procedures.  There  should  be  one  or  two  sentences  per  objective.  Remember,  you  should  write  about  what  you  will  learn,  not  what  you will do.  c. Design:  This  part  contains  all  the  steps  required  to  arrive  at  your  final  circuit.  This  should  include  diagrams,  tables,  equations,  explanations,  etc.  Be  sure  to  reproduce  any  tables  you  completed  for  the  lab.  This  section  should  also  include  a  clear  written  description  of  your  design  process.  Simply  including  a  circuit  schematic is not sufficient.  d. Questions: Specific questions (Prelab and Postlab) asked in the lab  should  be  answered  here.  Retype  the  questions  presented  in  the  lab and then formally answer them.    3. Your work  must be original and prepared independently. However, if you  need  any  guidance  or  have  any  questions  or  problems,  please  do  not  hesitate to approach your faculty incharge during office hours. Copying any  prelab/postlab  will  result  in  a  grade  of  0.  The  incident  will  be  formally  reported to the University and the students should follow the dress code in  the Lab session.    4. Each laboratory exercise (circuit) must be completed and demonstrated to  your faculty Incharge in order to receive working circuit credit. This is the  procedure to follow:  a. Circuit  works:  If  the  circuit  works  during  the  lab  period  (2  hours),  call your faculty incharge, and he/she will sign and date it.. This is  14

the  end  of  this  lab,  and  you  will  get  a  complete  grade  for  this  portion of the lab.  b. Circuit does not work: If the circuit does not work, you must make  use  of  the  open  times  for  the  lab  room  to  complete  your  circuit.  When your circuit is ready, contact your faculty incharge to set up a  time when the two of you can meet to check your circuit.    5. Attendance  at  your  regularly  scheduled  lab  period  is  required.  An  unexpected  absence  will  result  in  loss  of  credit  for  your  lab.  If  for  valid  reason a student misses a lab, or makes a reasonable request in advance of  the  class  meeting,  it  is  permissible  for  the  student  to  do  the  lab  in  a  different  section  later  in  the  week  if  approved  by  the  faculty  incharge  of  both the sections. Habitually late students (i.e., students late more than 15  minutes  more  than  once)  will  receive  10  point  reductions  in  their  grades  for each occurrence following the first. Student attendance less than 75%  is detention.     6. Final grade in this course will be based on laboratory assignments. All labs  have an equal weight in the final grade. Grading will be based on pre‐lab  work, laboratory reports, post‐lab and in‐lab performance (i.e., completing  lab, answering laboratory related questions, etc.,).The faculty Incharge will  ask pertinent questions to individual members of a team at random.  Labs  will be graded as per the following grading policy:  Attendance 

 

 

 

‐ 

05% 

Lab Performance 

 

‐ 

10% 

Prelab   

 

 

‐ 

05% 

Post Lab 

 

 

‐ 

05% 

Report  

 

 

‐ 

05% 

‐ 

 10% 

Student Contribution  Model Exam   

 

‐ 

20% 

Final exam 

 

‐ 

40% 

 

  7. Reports  Due  Dates:  Reports  are  due  one  week  after  completion  of  the  corresponding lab.    8. Systems of Tests: Regular laboratory class work over the full semester will  carry  a  weightage  of  60%.  The  remaining  40%  weightage will  be  given  by  conducting  an  end  semester  practical  examination  for  every  individual  student  if  possible  or  by  conducting  a  1  to  1  ½  hours  duration  common  written test for all students, based on all the experiment carried out in the  semester. 

15

ADDENDUM 

  ABET  Outcomes  expected  of  graduates  of  B.Tech  /  ECE  /  program  by  the  time  that  they  graduate:  

(a) an ability to apply knowledge of mathematics, science, and engineering   (b) an ability to design and conduct experiments, as well as to analyze and interpret   data   (c) an ability to design a system, component, or process to meet desired needs   within realistic constraints such as economic, environmental, social, political,   ethical, health and safety, manufacturability, and sustainability   (d) an ability to function on multidisciplinary teams   (e) an ability to identify, formulate, and solve engineering problems   (f) an understanding of professional and ethical responsibility   (g) an ability to communicate effectively   (h) the broad education necessary to understand the impact of engineering solutions   in a global, economic, environmental, and societal context   (i) a recognition of the need for, and an ability to engage in life‐long learning   (j) a knowledge of contemporary issues   (k) an ability to use the techniques, skills, and modern engineering tools necessary   for engineering practice.     Program Educational Objectives  PEO1:  Graduates  will  perform  as  a  successful  professional  engineer  in  related  fields  of  Electronics and Communication Engineering.   PEO2:  Graduates  will  pursue  higher  education  and/or  engage  themselves  in  continuous  professional development to meet global standards.  PEO3:  Graduates  will  work  as  a  team  in  diverse  fields  and  gradually  move  into  leadership  positions.  PEO4: Graduates will understand current professional issues, apply latest technologies and  come out with innovative solutions for the betterment of the nation and society. 

              16

  ATTESTATION FROM COURSE TEACHERS      NAME OF THE INSTRUCTOR 

SIGNATURE 

Mrs. R. Manohari 

 

Mr. R. Prithiviraj 

 

Dr.Diwakar.R.marur 

 

Mr. S. Yuvaraj 

 

Mr. A. Joshua Jafferson 

 

Ms.D. Vijayalakshmi 

 

Mr. K. Ramesh 

 

Mrs. J. K. KasthuriBha 

 

Mr. M. Maria Dominic Savio 

 

Mrs. K. Ferents Koni Jiavana 

 

Mr. A.Sriram 

 

       

    Course Coordinator   Academic Coordinator      Professor In‐Charge       HOD/ECE      (R.Prithiviraj)                (Mrs.N. Saraswathy)          (Dr.B. Ramachandran)   (Dr.S. Malarvizhi) 

     

 

  17

Lab 1  Ex.No.1: Introduction to registers, Instruction sets, arithmetic  operators of 8086    1.1(a) Introduction:  The purpose of this experiment is to learn about the registers, instruction sets, and  arithmetic operators of 8086 by addition and  subtraction of the given two 16 bit numbers  and store them in a memory location.     1.2(a) Hardware Requirement:    The 8086 Microprocessor kit, Power Supply.    1.3 (a) Program Logic:  The  add  instruction  requires  either  the  addend  or  the  augends  to  be  in  a  register,  unless  the  source  operand  is  immediate  since  the  addressing  modes  permitted  for  the  source  and  destination  are  register‐register,  memory  to  register,  register  to  memory,  register to immediate, and finally memory to immediate.   Hence one of the operands is initially moved to AX. Then using the add instruction,  16‐bit addition is performed.  The next arithmetic primitive is SUB. As discussed in ADD it permits the same modes  of addressing. Hence moving the minuend to a register pair is necessary. Then the result is  moved to a location in memory.    1.4 (a) Program       Introduction  of  general  purpose  registers,  arithmetic  operators  (add  &  sub),  immediate addressing, direct addressing:   Addition without carry:      LABEL         MNEMONICS           MOV AX, data         MOV BX, data         ADD AX,BX         MOV [1200],AX         HLT       Addition With Carry:      LABEL         MNEMONICS  MOV AX, data    MOV BX, data    MOV CX,0000    ADD AX,BX    JNC LOOP    INC CX    MOV [1200],AX  LOOP  MOV [1202],CX  HLT 

18

  Subtraction without borrow:      LABEL         MNEMONICS  MOV AX, data    MOV BX, data    SUB AX,BX    MOV [3580],AX    HLT      Subtraction with borrow      LABEL         MNEMONICS  MOV AX, data    MOV BX, data    MOV CX,0000    SUB AX,BX    JNB LOOP    INC CX    MOV [1200],AX  LOOP  MOV [1202],CX  HLT      1.5(a) Pre Lab Questions    1. Difference between Microprocessor & Microcontroller?  2. Define BUS and give the classification of Buses  3. What is an addressing mode?  4. How the Microprocessors can be categorized?    1.6(a) Post Lab Questions   1. Calculate the physical address for the given data. DS=1000h, BP=1234h   2. What is the purpose of HLT instruction?  3. What happens if the result is greater than 16bit? 

4. The  memory  address  starting  from  the  logical  address  0124h:0056h,  store  the numbers 0978h, CE45h, 45h and 7809h in consecutive locations. Draw a  diagram showing the physical address and the corresponding data stored.  5. Write a program, which address a constant correction factor to a temp, that  is stored in the data segment. The corrected segment should be stored in a  new location in memory.     

 

19

Ex.No:1‐B (Multiplication and Division)  1.1.(b)Introduction  The purpose of this experiment is to learn about the registers, instruction sets, and  arithmetic operators of 8086 by multiplication and division of the given two 16 bit numbers  and store them in a memory location.  1.2 (b) Hardware Requirement  The 8086 Microprocessor kit, Power Supply.  1.3(b) Program Logic  The 8086 Processor provides both signed and unsigned multiply in their instruction  set to overcome the loss of efficiency in performing the repeated addition.  The MUL instruction can have both 16 and 8 bit operands and the multiplicand is AX  or AL, accordingly the result for a byte multiply is a 16 bit number in AX while that for a word  multiply is a 32 bit number, the lower word of which is in AX and the higher word in DX.  1.4(b) Program  Introduction of general purpose registers, arithmetic operators (mul & div), direct  addressing:  Multiplication:    LABEL             

         MNEMONICS  MOV AX,[1100]  MOV BX,[1102]  MUL BX  MOV [1200],AX  MOV [1202],DX  HLT 

  Division:    LABEL             

         MNEMONICS  MOV AX,[1100]  MOV BX,[1102]  DIV BX  MOV [1200],AX  MOV [1202],DX  HLT 

   

 

20

1.5(b) Pre‐Lab Questions  1. 2. 3. 4.

What is a Flag register?  What is a machine cycle?  What is a status signal?  What is minimum mode operation of 8086?   

1.6(b) Post‐Lab Questions (Refer the program to answer these questions)  1. 2. 3. 4. 5.

List out the type of addressing modes used in your program.  If result exceeds 32 bit where is it stored?  What is the name given to the register combination DX:AX?  What is the instruction used for signed division?  Explain what is done in the program:  . MODEL SMALL  . DATA    COSTP DB 55H    SELLP DB   ?  . CODE  . STARTUP    PROFIT EQU 25H    MOV AL,COSTP    ADD AL,PROFIT   MOV SELLUP,ALL  . EXIT    END 

6. State the typical application of logical instructions.

21

Lab 2  Ex.No.2: Introduction to General purpose registers, addressing modes,  logical operators of 8086    2.1 Introduction:  The  purpose  of  this  experiment  is  to  learn  about  the  general  purpose  registers,  instruction  sets,  addressing  modes  and  logical  operators  of  8086  by  finding  the  larger  and  the smaller numbers from an array which is stored in a memory location.    2.2 Hardware Requirement:    The 8086 Microprocessor kit,  Power Supply.    2.3 Program Logic:  To  find  the  largest  number  in  any  given  array,  the  contents  of  the  array  must  be  compared  with  an  arbitrary  biggest  number.  The  first  number  of  the  array  is  taken  in  a  register AL. The second number of the array is compared with the first one. If the first one is  greater than the second one, it is left unchanged. However if the second one is greater than  the  first,  the  second  number  replaces  the  first  one  in  the  AL  register.  The  procedure  is  repeated for every number in the array and thus it requires n iterations. At the end of nth  iteration the largest number will reside in the register AL.    For  smallest  number  the  above  said  logic  is  repeated  but,  If  the  first  number  is  smaller than the second one it is left unchanged. Otherwise the second number replaces the  first number in the AL register    2.4 Program:  Introduction  of  general  purpose  registers,  logical  operators,  indirect  addressing,  and loop instructions :    Smallest number:      LABEL         MNEMONICS            LOOP1          LOOP2 

   

MOV SI,1100  MOV CL,[SI]  INC SI  MOV AL,[SI]  DEC CL  INC SI  MOV BL,[SI]  CMP AL,BL  JC LOOP2  MOV AL,BL  DEC CL   JNZ LOOP1  MOV [1200],AL  HLT   

22

Largest number:   

  LABEL            LOOP1          LOOP2 

         MNEMONICS  MOV SI,1100  MOV CL,[SI]  INC SI  MOV AL,[SI]  DEC CL  INC SI  MOV BL,[SI]  CMP AL,BL  JNC LOOP2  MOV AL,BL  DEC CL   JNZ LOOP1  MOV [1200],AL  HLT 

  2.5 Pre‐Lab Questions:  1. Draw the flowchart to find the largest and smallest number of an array?  2. What is the similarity and difference between Subtract and Compare Instruction?  3. What are the addressing modes are used in our program?  4. Initialize register CX to value FFFF and register AX to value 0000, write a program to  exchange the contents of both these register?    2.6 Post‐Lab Questions:  1. What is the purpose of MOV DS, AX?  2. What will be the status of flags after executing the program?  3. What are the addressing modes are used in our program?  4. What is the difference between JUMP and LOOP instructions?  5. Write a program to find the factorial of a number N. for 8086, the maximum size of  an operand for multiplication is only a word. This places a limitation on the value of  N  that  can  be  used.  Hence  the  value  of  N  is  to  be  less  than  9.  Store  the  result  in  memory.    6. Find the values in the destination for each line of this program .  STC  MOV AX,5432H  RCR AL, 1  MOV CL,03  RCL AX,CL  MOV CL,05  ROR AX,CL  ROL AX,1  END 

       

  23

Ex.No.2‐b: Sorting of an array in ascending and descending series    2.1(b) Introduction:  The  purpose  of  this  experiment  is  to  learn  about  the  general  purpose  registers,  instruction sets, addressing modes and logical operators of 8086 by sorting the sequence of  numbers from the array stored in a memory location into ascending and descending series.    2.2(b) Hardware Requirement:    The 8086 Microprocessor kit, Power Supply.    2.3(b) Program Logic:    To arrange the given numbers in ascending and descending order, the bubble sorting  method is used. Initially the first number of the series is compared with the second one. If  the  first  number  is  greater  than  second,  exchange  their  positions  in  the  series  otherwise  leave the position unchanged. Then compare the second number in the recent form of the  series  with  third  and  repeat  the  exchange  part  that  you  are  carried  out  for  the  first  and  second number, and for  all the remaining number of the series. Repeat  this  procedure for  complete series (n‐1) times. After n‐1 iterations you will get the largest number at the end of  the series. Again start from the first number of the series. Repeat the same procedure right  from the first element to the last element. After n‐2 iteration you will get the second highest  number at the last but one place in the series. Repeat this till the complete series is arranged  in ascending order.    2.4(b) Program:  Introduction  of  general  purpose  registers,  logical  operators,  indirect  addressing,  and loop instructions, compare instruction, exchange instruction, increment & decrement  instruction:    Ascending order:      LABEL         MNEMONICS  MOV SI,1200    MOV CL,[SI]    DEC CL    MOV SI,1200  LOOP3  MOV CH,[SI]    DEC CH    INC SI    MOV AL,[SI]  LOOP2  INC SI    CMP AL,[SI]    JC LOOP1    XCHG AL,[SI]    XCHG [SI‐1],AL    DEC CH  LOOP1  JNZ LOOP2  DEC CL  JNZ LOOP3  HLT     

24

Descending order:        LABEL         MNEMONICS  MOV SI,1200    MOV CL,[SI]    DEC CL    MOV SI,1200  LOOP3  MOV CH,[SI]    DEC CH    INC SI    MOV AL,[SI]  LOOP2  INC SI    CMP AL,[SI]    JNC LOOP1    XCHG AL,[SI]    XCHG [SI‐1],AL    DEC CH  LOOP1  JNZ LOOP2  DEC CL  JNZ LOOP3  HLT      2.5(b) Pre‐Lab Questions:  1.

Draw  the  flow  chart  to  arrange  a  given  series  of  numbers  in  ascending  and  descending order. 

2.

Write a small program using DAA instruction? 

3.

Which type of jump instruction  (short, near or far) assembles for the following:  If the distance is 0210H bytes  If the distance is 0020H bytes 

If the distance is 100000H bytes      2.6(b) Post‐Lab Questions:   1. What is the purpose of XCHG instruction?  2. What is the use of PUSH and POP instruction?  3. Write  an  assembly  language  program  in  8086  to  sort  the  given  array  of  16‐bit  numbers in descending order.  4. What do square brackets means when they appear in an operand?  5. In a given program how many times DEC and JNZ instructions are executed? What  will be content in AX register after executing the program?  MOV AX, 00FF  MOV CL, 05  REPEAT: 

INC AX 

25

DEC CL  JNZ REPEAT  6. Explain  what  is  done  in  this  program.  Assume  sp  –  0310h,  when  the  stack  was  initialized.  .MODEL SMALL  .STACK 300H  .CODE  .STARTUP     MOV AX, 4567H     MOV BX, 0ACEH     PUSH AX     PUSH BX     POP AX     POP BX  .EXIT   END     

                                           

 

26

Part II‐8086 Microprocessor Interfacing  Lab 3  Interfacing of 8255‐ PROGRAMMABLE PERIPHERAL INTERFACE (PPI)  with 8086    3.1 Problem statement:                   Write  a  program  to  sense  switch  positions  sw0‐sw7.  The  sensed  pattern  to  be  displayed on port, to which 8 LED’s are connected. Use 8086 Processor.    3.2 Hardware requirements    The 8086 Microprocessor kit, 8255 Programmable Peripheral Interface add on card,  Interface cable and Power Supply.    3.3 Theory  The 8255 is a widely used, programmable, parallel I/O device.It can be programmed to  transfer data under various conditions, from simple I/O to interrupt I/O.   Features  • Three 8‐bit IO ports PA, PB, PC   • PA can be set for Modes 0, 1, 2. PB for 0,1 and PC for mode 0 and for BSR. Modes 1  and 2 are interrupt driven.   • PC has two 4‐bit ports: PC upper (PCU) and PC lower (PCL), each can be set  independently for Input or Output. Each PC bit can be set/reset individually in BSR  mode.   • PA and PCU are Group A (GA) and PB and PCL are Group B (GB)   • Address/data bus must be externally demultiplexed.   8255 can be operated in two modes   

BSR (Bit Set Reset ) mode or   i. I/O mode  ii. BSR mode 

Bit set/reset, applicable to PC only. One bit is S/R at a time.     Command word   D7 

D6 

D5 

D4 

D3 

D2 

D1 

D0 

0 (0=BSR) 







B2 

B1 

B0 

S/R (1=S,0=R) 

Bit select: (Taking Don't care's as 0)  B2  B1  B0  PC bit Control word (Set) Control word (reset) 0  0  0 



0000 0001 = 01h

0000 0000 = 00h 

0  0  1 



0000 0011 = 03h

0000 0010 = 02h 

0  1  0 



0000 0101 = 05h

0000 0100 = 04h 

0  1  1 



0000 0111 = 07h

0000 0110 = 06h 

1  0  0 



0000 1001 = 09h

0000 1000 = 08h 

1  0  1 



0000 1011 = 0Bh

0000 1010 = 0Ah 

1  1  0 



0000 1101 = 0Dh

0000 1100 = 0Ch 

1  1  1 



0000 1111 = 0Fh

0000 1110 = 0Eh 

27

I/O mode  The I/O mode is further divided into three modes:   Mode 0 : all ports function as simple I/O ports  Mode 1 : Hand shake mode whereby Ports A and/or B use bits from port C as  handshake signals  Mode 2. : Port A can be set up for bidirectional data transfer using handshaking  signals from Port C, and Port B can be set up either in Mode 0 or Mode 1.   Command word  D7 

D6 

D5 

D4 

D3 

1 (1=I/O)  GA mode select  PA  PCU  • D6, D5: GA mode select:   o 00 = mode0   o 01 = mode1   o 1X = mode2   • D4(PA), D3(PCU): 1=input 0=output   • D2: GB mode select: 0=mode0, 1=mode1   • D1(PB), D0(PCL): 1=input 0=output   Port Address   Register  Control word register  Port A  Port B  Port C 

D2 

D1 

D0 

GB mode select 

PB 

PCL 

Address  C6  C0  C2  C4 

 

3.4 Program 

1. Initialize port A as input port and port B as output port  in mode 0 , to input  the data at port A as set by the SPDT switches and to output the same data  to port B to glow the LED accordingly.  2. Initialize port A as input port and port c as output port  in mode 0 , to input  the data at port A as set by the SPDT switches and to output the same data  to port B to glow the LED accordingly.  3. Initialize port C as input port and port B as output port  in mode 0 , to input  the data at port A as set by the SPDT switches and to output the same data  to port B to glow the LED accordingly.    Mode 0, Port A input port, Port B output port    LABEL      

         MNEMONICS         MOV AL,90H         OUT C6,AL         IN AL,C0         OUT C2,AL         MOV [1200],AL         HLT   

28

Mode 0, Port A input port, Port C output port    LABEL      

         MNEMONICS         MOV AL,90H         OUT C6,AL         IN AL,C0         OUT C4,AL         MOV [1200],AL         HLT   

  Mode 0, Port C input port, Port B output port               LABEL         MNEMONICS              MOV AL,90H         OUT C6,AL         IN AL,C4         OUT C2,AL         MOV [1200],AL         HLT      3.5 Pre‐lab Questions  1. What is control word register?  2. Name the two operating modes of 8255  3. What is BSR mode?  4. Give control word format of BSR mode.  5. What is Input output mode?    3.6 Post‐lab Questions  1. 2. 3. 4.

Initialize the control word register for port C as input and Port B as output in mode0  Initialize 8255 for bidirectional data transfer Port A as input and port B as output.  Which control word is required to transfer a data  from Port B to Port C in mode 1  Interface an 8255 with 8086 to work as input/output port. Initialize port A as output  port, port B as input port and port C as output port. Port A address should be 0740h.  write a program for the above given data. 

 

29

Lab 4  Interfacing of 8279 Keyboard and display interface with 8086  processor.   

4.1 Problem statement:  Design  a  system  to  interface  sixteen  7  segment  display  units.  Write  a  program  to  display the string in right  entry mode.  For example, first  character will be displayed at  the  LSB  position,  then  it  will  be  shifted  to  the  next  left  display  and  so  on.  After  all  the  string  displayed, the display should be blanked, then the same procedure repeated continuously.     4.2 Hardware requirements    The 8051 Microcontroller kit, 8279 Interface add on card, Interface cable and Power  Supply.    4.3 Theory  The 8279 is a widely used for debouncing keys, coding of the keypad matrix and  refreshing the display elements in the microprocessor development system.  Features  A0: Selects data (0) or control/status (1) for reads and writes between micro and 8279.  BD: Output that blanks the displays  CLK: Used internally for timing. Max is 3 MHz.  CN/ST: Control/strobe, connected to the control key on the keyboard  CS: Chip select that enables programming, reading the keyboard, etc  DB7 – DB0 : Consists of bidirectional pins that connect to data bus on microcontroller  IRQ: Interrupt request, becomes 1 when a key is pressed, data is available.  OUT A0‐  A3/B3‐B0: Outputs that sends data to the most significant/least significant nibble of  display.  RD(WR): Connects to micro's IORCor RDsignal, reads data/status registers.  RESET: Connects to system RESET.  R: Return lines are inputs used to sense key depression in the keyboard matrix.  Shift: Shift connects to Shift key on keyboard.  SL3 – SL0: Scan line outputs scan both the keyboard and displays.   

Keyboard Interface of 8279  The keyboard matrix can be any size from 2x2 to 8x8. Pins SL2‐ SL0 sequentially scan  each column through a counting operation. The 74LS138 drives 0's on one line at a time. The  8279  scans  RL  pins  synchronously  with  the  scan.RL  pins  incorporate  internal  pull‐ups,  no  need for external resistor pull‐ups.    Display mode set up:    0   















 

30

DD‐ Display mode:   

00‐ 8  bit character display (left)  01‐ 16 ‐8 bit character display (left)  10‐ 8 bit character display (right)  11‐16 ‐8 bit character display (right)    KKK‐ Keyboard Interface   

000 –  Encoded Scan Keyboard – 2 key lock out  001‐   Decoded Scan Keyboard – 2 key lock out  010‐   Encoded Scan Keyboard – N key roll over  011‐   Decoded Scan Keyboard – N key roll over  100‐  Encoded Scan sensor matrix  101‐  Decoded Scan sensor matrix  110‐  Strobed input, Encoded display Scan   111‐  Strobed input, Decoded display Scan    4.4 Program to display “A”   

  LABEL                      NEXT 

         MNEMONICS  MOV AL,00  OUT C2,AL  MOV AL,CC  OUT C2,AL  MOV AL,90  OUT C2,AL  MOV AL,88  OUT C0,AL  MOV AL,FF  MOV CX,0005  OUT C0,AL  LOOP NEXT  HLT 

 

Program for Rolling Display: (Display message is “HELP US”)   

  LABEL  START                NEXT 

         MNEMONICS  MOV SI,1200  MOV CX,000F  MOV AL,10  OUT C2,AL  MOV AL,CC  OUT C2,AL  MOV AL,90  OUT C2,AL  MOV AL,[SI]  OUT C0,AL  CALL DELAY   INC SI  LOOP NEXT  JMP START 

31

DELAY:    LABEL  DELAY  LOOP1         

         MNEMONICS  MOV DX,A0FF  DEC DX  JNZ LOOP1  RET   

4.5 PreLab:  1. State the operating modes of 8279  2. What are the use of CS, A0, RD and WR lines?  3. What is N key lock out?  4. What is N key roll over?      4.6 Post Lab:  1.  Define Clock pre scaling.  2.  What is BD?  3. Find the program clock command word if external clock frequency is 2MHz.  4. Interface an 8x8 matrix keyboard to 8086 through 8279 in 2 key lockout mode and write  an  assembly  language  program  to  read  keycode  to  the  pressed  key.  The  external  clock  frequency is 2MHz. use input output mapped technique.                    

 

 

32

Lab 5  Ex.No.5: Introduction to registers, Instruction sets, arithmetic and  logical operators of  8051  5.1 Introduction:   The purpose of this experiment is to learn about the registers, instruction sets, and  arithmetic operators, logical operators of 8051 by doing the BCD to HEXADECIMAL and vice  versa of a given data using 8051 micro controller trainer kit.    5.2 Hardware Requirement:    The  8051 Microcontroller kit, Power supply.    5.3 Program Logic:  In this program, 8 bit two digit  Hexadecimal  number  system  into BCD number  system. The hexadecimal number system (also called base‐16) is a number system that uses  16 unique symbols to represent a particular value. Those symbols are 0‐9 and A‐F. 8 bit two  digit BCD  number system into Hexadecimal number  system.    Binary coded decimal 

(BCD)  is  a  system  of  writing  numerals  that  assigns  a  four‐digit  binary  code  to  each  digit 0 through 9 in a decimal (base‐10) numeral.     5.4 Program:  Intoduction  of  DPTR,  immediate  addressing,  logical,  increment  and  swap  instructions.    BCD to HEXADECIMAL:      LABEL         MNEMONICS      MOV DPTR,#4600    MOVX A,@DPTR    MOV R5,A    ANL A,#F0    SWAP A    MOV R1,A    MOV A,R5    ANL A,#0F    MOV R2,A    MOV A,R1    MOV B,#0A    MUL AB    ADD A,R2    INC DPTR    MOVX @DPTR,A                 SJMP HERE      HERE     

33

Hexadecimal to BCD        LABEL         MNEMONICS  MOV DPTR,#4600    MOVX A,@DPTR    MOV B,#64    DIV AB    INC DPTR    MOVX @DPTR,A    MOV A,B    MOV B,#0A    DIV AB    SWAP A    ADD A,B    INC DPTR    MOVX @DPTR,A                SJMP HERE                HERE    5.4 Pre‐Lab Questions:  1. Upon reset, all ports of the 8051 are configured as _____________ (output, input).  2. Which ports of the 8051 have internal pull‐up resistors?  3. Which ports of the 8051 require the connection of external pull‐up resistors in order to be  used for I/O?  Show the drawing for the connection.    5.5 Post‐Lab Questions:  1. How the DPTR register is classified, explain its functions?  2. What is the function of EA pin in 8051?  3. List out the special function registers in 8051.  4. Find the number of times the following loop is performed  MOV R6, #200  BACK:  MOV R5, #100  HERE:    DJNZ R5, HERE  DJNZ R6, BACK  5. Examine the following code then answer the following questions  A. Will it jump to NEXT?  B. What is in A after CJNE instruction is executed  MOV A, #55H  CJNE A, #99H, NEXT       

34

Lab 6  Ex.No.6: Introduction to General purpose registers, addressing modes,  logical operators of 8051   

6.1 Introduction:   The purpose of this experiment is to learn about the registers, instruction sets, and  arithmetic operators, logical operators of 8051 by doing the ASCII To Decimal and vice versa  of a given data using 8051 micro controller trainer kit.    6.2 Hardware Requirement:    The 8051 Microcontroller kit, Power supply.    6.3 Program Logic:  In this program, 8 bit two digit ASCII  number system into decimal number system.  Acronym for the American Standard Code for Information Interchange. Pronounced ask‐ee,  ASCII  is  a  code  for  representing  English  characters  as  numbers,  with  each  letter  assigned  a  number from 0 to 127 into decimal number and vice versa.   

6.4 Program:  Introduction of arithmetic, loop, registers of 8051   

ASCII to DECIMAL:      LABEL         MNEMONICS  MOV DPTR,#4500    MOV A,#DATA    CLR C    SUBB A,#30    CLR C    SUBB A,#0A    JC STR    MOV A,#0FF    SJMP LOOP    ADD A,#0A  STR  MOVX @DPTR,A  LOOP               SJMP HERE  HERE  DECIMAL TO ASCII:    LABEL              HERE   

         MNEMONICS 

MOV DPTR,#4500 MOVX A,@DPTR  MOV R0,#30  ADD A,R0  INC DPTR  MOVX @DPTR,A  SJMP HERE  35

6.5 Pre‐Lab Questions:  1. What is the major difference between 8051 and 8086?  2. What is meant by the term immediate addressing?  3. There  is  no  stop  instruction  in  the  8051  instruction.  Describe  a  method  for  implementing a program stop.    6.6 Post‐Lab Questions:  1. Write an assembly language program to find one’s and two’s complement without  using CPL instruction.  2. What are the two registers in 8051 which are used for indirect addressing?  3. Assume  that  P1  is  an  input  port  connected  to  a  temperature  sensor.  Write  a  program to read the temperature and test it for the value 75. According to the test  results place the temperature value in to the registers indicated by the following.  If T = 75 then A = 75  If T  75 then R2 = T 

4. Find the contents of register A after executing the following code  CLR A  ORL A, #99H  CPL A 

5. In the absence of a SWAP instruction how would you exchange the nibbles?  Write a simple program to show the process.     

             

36

Ex.No.6 (b): Square Root Of A Given Data  6.1(b) Introduction:   

The purpose of this experiment is to learn about the registers, instruction sets, and 

arithmetic operators, logical operators, addressing modes of 8051 by doing the Square root  of a given data using 8051 micro controller trainer kit.    6.2 (b) Hardware Requirement:    The 8051 Microcontroller kit , Power supply.    6.3(b) Program Logic:    In  this  program,  the  square  root  of  a  number  can  be  found  out  by  division  and  subtraction method.     6.4(b) Program:    LABEL              LOOP                          RESULT          HERE   

         MNEMONICS  MOV DPTR,#5600  MOVX A,@DPTR  MOV R1,A  MOV R2,#01                MOV A,R1  MOV B,R2  DIV AB  MOV R3,A  MOV R4,B  SUBB A,R2  JZ RESULT  INC R2  SJMP LOOP   MOV DPTR,#5700  MOV A,R3  MOVX @DPTR,A                   SJMP HERE   

37

6.5(b) Pre‐Lab Questions:  1. Why are program counter and stack pointer are 16‐bit registers?  2. What are register banks?  3. Mention any 3 applications of microcontroller?  4. How to program the microcontroller 89C51?    6.6(b) Post‐Lab Questions:  1.

Explain power down mode of 8051. 

2.

Explain the function of RXD and TXD pins of 8051 microcontroller. 

3.

Explain the reset circuit in 8051. 

4.

What is the difference between power‐on reset and manual reset? 

5.

For a machine cycle of 1.085usec find the time delay in the following subroutine:  DELAY:                  MOV R2,#200  AGAIN:  MOV R3,#250  HERE:     NOP                   NOP                   DJNZ R3,HERE                   DJNZ R2,AGAIN                   RET 

6. Write  a  program  in  8051  to  transfer  letter  ‘A’  serially  at  4800  baud  rate,  continuously.   

 

     

       

 

38

 

Lab 7  Interfacing of 8254 programmable timer interface with 8051  Microcontroller.   

7.1 Problem Statement:  Write a program to generate waveform that has 50% duty cycle of 150KHz. Assume  that system clock available is 1.5MHz. Implement using 8051 Microcontroller.    7.2 Hardware requirements    The 8051Microcontroller kit, 8253 Interface add on card, Interface cable and Power  Supply.    7.3 Theory   

The main features of 8253 are as follows:  1. Three independent 16 bit counters  2. Input clock  3. Programmable counter modes  The clk0 can be connected either to the pclk or to the debounce circuit. Using the debounce  circuit we can generate a pulse and clock the timer. Similarly clock1 can be connected to pclk  and clock2 can be connected to either pclk or out0. In a microprocessor based application,  interrupting the processor after a time delay is essential which is achieved using a timer.    7.3. 1 MODES     Mode 0 – Interrupt on terminal count    The output will be initially low after mode set operation. After loading the counter,  the output will remain low while counting and on terminal count the output will become  high, until reloaded again. Channel 0 is in mode 0 and the program is executed. Output is  observed through a CRO.    Mode 1 – Programmable one shot  After loading  the counter, the output will remain low following the rising edge of  the gate input. The output will go high on the terminal count. It is retriggerable, hence the  output will remain low for the full count after the rising edge of the gate input.  Execute the program, give the clock pulses through the debounce logic and observe the  output at the CRO.    Mode 2 – Rate generator  It  is  a  divide  by  N  counter.  The  output  will  be  low  for  for  one  period  of  the  clock  input. The period from one output pulse to the next equals the number of input counts in  the count register. In the CRO observe the input at channel 1 and the output at out1.    Mode 3 – Square Wave Generator  It is similar to mode 2 except that the output will remain high for one half of the  count and go low for the other half for even number count.   If the count is odd, the output will remain high for (count‐1)/2 counts.     

39

Mode 4 – Software triggered strobe  In this method , the output is high after mode is set and also during counting. On  terminal count , the output will go low for one clock period and becomes high again. This  mode is used for interrupt generation.    7.4 Program    7.4.1 RATE GENERATOR      LABEL         MNEMONICS      MOV DPTR,#FFCE        MOV A,#74H        MOVX @DPTR,A        MOV A,#0A        MOV DPTR,#FFCA        MOVX @DPTR,A       MOV A,#00       MOVX @DPTR,A        SJMP  HERE  HERE    7.4.2 SQUARE WAVE GENERATOR      LABEL         MNEMONICS      MOV DPTR,#FFCE        MOV A,#76H        MOVX @DPTR,A        MOV A,#0A        MOV DPTR,#FFCA        MOVX @DPTR,A       MOV A,#00       MOVX @DPTR,A        SJMP  HERE  HERE      7.5 Pre Lab:  1. What is RS 232 and state the use of RTS and CTS?  2   What is the use of select counter SC in timer?  3   Draw the control word format of timer.    7.6 Post Lab:  1.  What is Debouncing of keys?  2.  Interface 8254 & 8086 at counter 0 address 7430h and write a program to call subroutine  after 100ms. Assume that the system clock available is 2MHz.  3. Design a pre‐settable alarm system using 8254 timer. Use switches to accept 4 digit values  in seconds. Alarm should last for 5 seconds. Do not use interrupt.               

40

Lab 8  Ex.No.8: Interfacing of Stepper motor with 8051 Microcontroller.   

8.1 Problem Statement:  Write an ALP to trigger a stepper motor with +5V, at an angle of 15 degree in each  step in both clockwise and anticlockwise with same speed and different speeds. Implement  using 8051 Microcontroller.    8.2 Hardware Requirement:    The 8051 Microcontroller kit, Stepper motor interface add on card, interface cable,  Power Supply.    8.3 Program Logic:  A  motor  in  which  the  rotor  is  able  to  assume  only  discrete  stationary  angular  position  is  a  stepper  motor.  The  rotor  motion  occurs  in  a  stepwise  manner  from  one  equilibrium position to the next. They are widely used in open and closed looped systems in  a variety of applications. It is either of reluctance type or permanent magnet type. The four  poles  structure  is  continuous  with  the  stator  frame  and  the  magnetic  field  passes  through  the  cylindrical  stator  annular  ring.  The  stator  poles  and  three  pairs  of  rotor  poles,  there  exists 12 possible positions in which a south pole of the rotor can lock with the north pole of  the stator. From this it can be noted that the step size is 360( in degrees)/ Ns x Nr  where Ns = number of stator poles    Nr = number of pair of rotor poles.   

There are three different stepping schemes for a stepper motor.  1. Wave scheme  2. 2‐ phase scheme  3. half stepping and mixed scheme   

8.3.1 Wave scheme  The stepper motor windings A1,A2,B1,B2 can be cyclically excited with a DC current  to run the motor in the clockwise direction. Consider the four rotor positions of the motor  along  with  the  stator  excitations.  The  switching  scheme  for  the  wave  mode  excitation  is  given as follows.   

Anti clockwise  Clockwise  Step   A1    A2    B1     B2  Step   A1   A2   B1     B2      1          1     0      0        0  1          1      0       0        0  2          0     0      1        0  2          0      0       0        1  3          0     1      0        0  3          0      1       0        0  4          0     0      0        1  4          0      0       1        0    8.3.2    2‐ Phase scheme:  In  this  scheme  the  two  adjacent  stator  windings  are  energized.  There  are  two  magnetic fields achieved in quadrature and none of the rotor pole  faces can be in a direct  alignment with the stator poles.    The switching scheme for the 2‐ phase  mode excitation is given as follows.     

41

Anti clockwise  Clockwise  Step   A1    A2    B1     B2  Step   A1   A2   B1     B2      1          1     0      1        0  1          1      0       0        1  2          0     1      1        0  2          0      1       0        1  3          0     1      0        1  3          0      1       1        0  4          1     0      0        1  4          1      0       1        0    8.3.3   Half stepping scheme  The previously discussed two schemes have a step size of 30 degrees for the stepper  motor  under  consideration.  However  there  is  a  offset  of  15  degrees  between  these  two  schemes.  By  interleaving  these  two  schemes  ,  the  step  size  can  be  reduced  to  15  degrees  there by improving the accuracy of the motor. This is called half stepping scheme.  The switching sequence is as follows.  1. 2. 3. 4. 5. 6. 7. 8. 9.

A1 on  A1 and B1 on  B1 on  B1 and A2 on  A2 on  A2 and B2 on  B2 on  B2 and A1 on  A1 on etc. 

  8.4 PROGRAM   

8.4.1 STEPPER MOTOR WITH VARYING ANGLES (CLOCKWISE AND      ANTICLOCKWISE)      LABEL         MNEMONICS  MOV R4,#FF    MOV DPTR,#4500  START  MOV R0,#04    MOVX A,@DPTR  J0  PUSH DPH    PUSH DPL    MOV DPTR,#FFC0    MOVX @DPTR,A    DJNZ R4,CALL    SJMP HERE  HERE  MOV R2,#03  CALL  MOV R1,#0FH    MOV R3,#0FH  DLY1  DJNZ R3,DLY  DLY  DJNZ R1,DLY1    DJNZ R2,DLY1    MOVX @DPTR,A   POP DPL  POP DPH  INC DPTR  DJNZ R0,JO  SJMP START 

42

8.4.2 STEPPER MOTOR WITH VARIABLE SPEED    LABEL  START    J0            DLY1  DLY       

         MNEMONICS  MOV DPTR,#4500  MOV R0,#04  MOVX A,@DPTR  PUSH DPH  PUSH DPL  MOV DPTR,#FFC0  MOV R2,#04H  MOV R1,#0FH  MOV R3,#0FH  DJNZ R3,DLY  DJNZ R1,DLY1  DJNZ R2,DLY1  MOVX @DPTR,A  POP DPL  POP DPH  INC DPTR  DJNZ R0,JO  SJMP START   

  8.5 Pre‐Lab Questions:   1   State applications of stepper motor in control systems  2   Draw  the  4  possible  rotor  positions  and  the  corresponding  stator  excitations  in  a  stepper motor  3   What  is  the  specific  property  of  the  stepper  motor  which  makes  it  compatible  to  interface        with the processor? 

4.

Can a single phase motor or a DC motor be interfaced with a 8086 processor?

5   6   7    

What is the operating voltage of a stepper motor?  What are the different types of stepper motor?  State any two applications of stepper motor interfaced with 8086. 

8.6 Post Lab:  1.   Write a program to run the stepper motor for any number of steps and to stop it.  2.   Justify the look up table listed in your program.  3.   What do you mean by the instruction out C0 in the program?  4.   What is the value of the delay element used in the program?  5.    Write  a  program  to  interface  the  stepper  motor  with  8051  and  make  it  run  in  clockwise and anti clock wise direction.  6.    Write an ALP to control coveyor belt using stepper motor and 8051 controller. Belt  moves  continuously  at  the  rate  of  1  step/sec,  but  stops  for  5secs,  when  external  interrupt occurs ant then continues to move.  7.    Design  a  stepper  motor  controller  and  write  an  ALP  to  rotate  shaft  of  a  4  phase  stepper motor.           (i) in clockwise 5 rotations.         (ii) in anticlockwise 5 rotations.   

43

Part IV – Nuvoton Processor  Lab 9  Ex.No.9: Implementation of Seven segment display from “0000” to  “9999” using Nuvoton board.    9.1 Problem Statement:    Write a program to display the number from 0000 to 9999. 4 LED’s that are in the  Nuvoton Nu‐LB‐NUC140 series Board should be used to display the number sequence.     9.2 Tool Requirement:    KEIL Uversion 4.0, Nuvoton CMSIS Library Files, DrvSYS Library Files, NUC140LB  Series ARM Target Board.    9.3 Program :  Smpl_7seg : counting from 0 to 9999 and display on 7‐segment LEDs  #include   #include "NUC1xx.h"  #include "DrvSYS.h"  #include "Seven_Segment.h"  // display an integer on four 7‐segment LEDs  void seg_display(int16_t value)  {  int8_t digit;  digit = value / 1000;  close_seven_segment();  show_seven_segment(3,digit);  DrvSYS_Delay(5000);  value = value ‐ digit * 1000;  digit = value / 100;  close_seven_segment();  show_seven_segment(2,digit);  DrvSYS_Delay(5000);  value = value ‐ digit * 100;  digit = value / 10;  close_seven_segment();  show_seven_segment(1,digit);  DrvSYS_Delay(5000); 

44

value = value ‐ digit * 10;  digit = value;  close_seven_segment();  show_seven_segment(0,digit);  DrvSYS_Delay(5000);  int32_t main (void)  {  int32_t i =0;  UNLOCKREG();  DrvSYS_Open(48000000);  LOCKREG();  while(iOFFD|=0x00800000; //Disable digital input path  SYS‐>GPAMFP.ADC7_SS21_AD6=1; //Set ADC function  /* Step 2. Enable and Select ADC clock source, and then enable ADC module */  SYSCLK‐>CLKSEL1.ADC_S = 2; //Select 22Mhz for ADC  SYSCLK‐>CLKDIV.ADC_N = 1; //ADC clock source = 22Mhz/2 =11Mhz;  SYSCLK‐>APBCLK.ADC_EN = 1; //Enable clock source  ADC‐>ADCR.ADEN = 1; //Enable ADC module  /* Step 3. Select Operation mode */  ADC‐>ADCR.DIFFEN = 0; //single end input  ADC‐>ADCR.ADMD = 0; //single mode  /* Step 4. Select ADC channel */  ADC‐>ADCHER.CHEN = 0x80;   

46

/* Step 5. Enable ADC interrupt */  ADC‐>ADSR.ADF =1; //clear the A/D interrupt flags for safe  ADC‐>ADCR.ADIE = 1;  // NVIC_EnableIRQ(ADC_IRQn);    /* Step 6. Enable WDT module */  ADC‐>ADCR.ADST=1;  }  void Delay(int32_t count)  {  while(count‐‐)  {  // __NOP;  }  }  void seg_display(int16_t value)  {  int8_t digit;  digit = value / 1000;  close_seven_segment();  show_seven_segment(3,digit);  Delay(5000);  value = value ‐ digit * 1000;  digit = value / 100;  close_seven_segment();  show_seven_segment(2,digit);  Delay(5000);  value = value ‐ digit * 100;  digit = value / 10;  close_seven_segment();  show_seven_segment(1,digit);  Delay(5000);  value = value ‐ digit * 10;  digit = value;  close_seven_segment();  show_seven_segment(0,digit); 

47

Delay(5000);  }  /*‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  MAIN function  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/  int32_t main (void)  {  int32_t adc_value;  UNLOCKREG();  SYSCLK‐>PWRCON.XTL12M_EN = 1; //Enable 12Mhz and set HCLK‐>12Mhz  SYSCLK‐>CLKSEL0.HCLK_S = 0;  LOCKREG();  InitADC();  while(1)  {  while (ADC‐>ADSR.ADF==0); // ADC Flag, wait till 1 (A/DC conversion done)  ADC‐>ADSR.ADF=1; // write 1 to ADF is to clear the flag  adc_value=ADC‐>ADDR[7].RSLT; // input 12‐bit ADC value  seg_display(adc_value); // display value to 7‐segment display  ADC‐>ADCR.ADST=1; // activate next ADC sample  // 1 : conversion start; // 0 : conversion stopped, ADC enter idle state  }  }    10.4 Pre Lab Questions:  1.What does ARM mean?  2. State the specifications of the Nuvoton processor?  3. Differentiate Nuvoton and 8086 trainer boards    10.5 Post Lab Questions  1. What is IDE and why it is needed?  2.  What is meant by in circuit programming?  3. Interface an ADC0804 with a processor, for the speech data is converted into digital data.  This data is stored in the array at sampling rate of 1/2048 of second. Then the sampled data  is sent to DAC0830 with same rate to reduce the speech signal. 

 

 

48

Lab 11  Implementation of UART using Nuvoton board.   

11.1 Problem Statement:                          Design a suitable mechanism  in the NuvotonNu‐LB‐NUC140 series Board for  full duplex communication, for the  baud rate of 9600 bps, 8 data bits, 1 stop bit  and 0  parity bit.     11.2 Tool Requirement:    KEIL Uversion 4.0, Nuvoton CMSIS Library Files, DrvSYS Library Files  NUC140LB Series ARM Target Board.    11.3 Program:  //  // Smpl_UART0  //  // Nu‐LB‐NUC140  // pin32 GPB0/RX0 to another board's UART TX  // pin33 GPB1/TX0 to another board's UART RX   

#include   #include "Driver\DrvUART.h"  #include "Driver\DrvGPIO.h"  #include "Driver\DrvSYS.h"  #include "NUC1xx.h"  #include "NUC1xx‐LB_002\LCD_Driver.h"    volatile uint8_t comRbuf[16] ={0x30};  volatile uint16_t comRbytes = 0;  volatile uint16_t comRhead  

= 0; 

volatile uint16_t comRtail  

= 0; 

  char TEXT1[16] = "TX: sending...  ";  char TEXT2[16] = "RX:             ";    /*‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/  /* UART Callback function                                                                            

   */ 

/*‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/  void UART_INT_HANDLE(void) 

49

{   

uint8_t i; 

 

uint8_t bInChar[1] = {0xFF}; 

   

while(UART0‐>ISR.RDA_IF==1)  

 



 

 

DrvUART_Read(UART_PORT0,bInChar,1); 

 

 

if(comRbytes =10) i = 0; 

 

 

sprintf(TEXT1+14,"%d",i); 

 

 

print_lcd(1,TEXT1); 

 

 

DrvSYS_Delay(5000000); 

 



 

//DrvUART_Close(UART_PORT0); 

}   

11.4 Pre lab:  1. What is meant by UART?  2. State applications of UART.  3. What is a sample and hold circuit?   

11.5 Post lab:       1. Write a program to receive a one character for the baud rate 110bps, data bits are  8, stop bit is 1 and parity bit is none.   

 

51

Lab 11  Implementation of temperature sensor using Nuvoton board.   

12.1 Problem Statement:  Design  a  temperature  sensor  (thermistor)  for    25  degree  in  the  NuvotonNu‐LB‐ NUC140 series Board. Assume that the clock source available is 22MHz and baud rate is 9600  bps.    12.2 Tool Requirement:    KEIL Uversion 4.0, Nuvoton CMSIS Library Files, DrvSYS Library Files  NUC140LB Series ARM Target Board.    12.3 Program:    //  // Smpl_ADC_Thermistor : Thermistor  //    // use ADC6 to read Thermistor resistance  // pin GPA6 : ADC6     // resistance = temperature  // NTSA0103JZ100  // R = 10K     ohm at 25 degree  // R = 3.496 K ohm at 50 degree    #include              

     

     

     

     

      

   

   

   

#include "NUC1xx.h"  #include "LCD_Driver.h"    void InitADC(void)  {   

/* Step 1. GPIO initial */  

 

GPIOA‐>OFFD|=0x00800000;   //Disable digital input path 

 

SYS‐>GPAMFP.ADC6_AD7=1;   //Set ADC function  

 

 

 

 

 

52

 

/* Step 2. Enable and Select ADC clock source, and then enable ADC module */           

 

SYSCLK‐>CLKSEL1.ADC_S = 2; 

//Select 22Mhz for ADC 

 

SYSCLK‐>CLKDIV.ADC_N = 1; 

//ADC clock source = 22Mhz/2 =11Mhz; 

 

SYSCLK‐>APBCLK.ADC_EN = 1;  //Enable clock source 

 

ADC‐>ADCR.ADEN = 1;   

 

//Enable ADC module 

   

/* Step 3. Select Operation mode */ 

 

ADC‐>ADCR.DIFFEN = 0;      

//single end input 

 

ADC‐>ADCR.ADMD   = 0;      

//single mode 

 

 

 

/* Step 4. Select ADC channel */ 

 

ADC‐>ADCHER.CHEN = 0x40;    // channel bit [7:0] 

 

 

 

/* Step 5. Enable ADC interrupt */ 

 

ADC‐>ADSR.ADF =1;        

 

ADC‐>ADCR.ADIE = 1; 

// 

NVIC_EnableIRQ(ADC_IRQn); 

 

 

 

/* Step 6. Enable WDT module */ 

 

ADC‐>ADCR.ADST=1; 

 

//clear the A/D interrupt flags for safe  

}    void Delay(int count)  {   

while(count‐‐); 

}    int32_t main (void)  {      uint32_t R = 9950;   // pullup resister   

uint32_t r;  

 

// thermister 

 

uint32_t adc_value; 

 

uint32_t temp; 

 

char TEXT0[16]="ADC6 ‐Thermistor"; 

 

char TEXT1[16]="ADC  :          "; 

 

char TEXT2[16]="r    :       ohm"; 

53

 

char TEXT3[16]="Temp.:        .C"; 

   

UNLOCKREG(); 

 

SYSCLK‐>PWRCON.XTL12M_EN = 1; //Enable 12Mhz and set HCLK‐>12Mhz 

 

SYSCLK‐>CLKSEL0.HCLK_S = 0; 

 

LOCKREG(); 

   

InitADC(); 

   

Initial_panel();  //call initial pannel function 

 

clr_all_panel(); 

 

 

 

print_lcd(0,TEXT0); 

 

print_lcd(1,TEXT1); 

 

print_lcd(2,TEXT2); 

 

print_lcd(3,TEXT3); 

 

 

 

 

while(1) 

 



 

 

while(ADC‐>ADSR.ADF==0); 

 

 

ADC‐>ADSR.ADF=1; 

 

 

adc_value = ADC‐>ADDR[6].RSLT & 0x0FFC; 

 

 

r = R * (4096 ‐ adc_value) / adc_value; 

 

 

// adc_value = 4096 * R / (R+r); 

 

 

sprintf(TEXT1+7,"%d", adc_value); 

 

 

print_lcd(1, TEXT1); 

 

 

sprintf(TEXT2+7,"%d", r); 

 

 

print_lcd(2, TEXT2); 

 

 

temp = 0; 

 

 

sprintf(TEXT3+7,"%s", "unknown"); 

 

 

print_lcd(3,TEXT3); 

 

 

 

 

 

 

  

 

 

    

 

  

 

 

 

 

 

 

54

 

 

Delay(1000); 

 

 

ADC‐>ADCR.ADST=1; 

 



    

}      12.4 Pre lab:    1. Define thermistor.  2. What is meant by data acquisition?      12.5 Post lab:    1. Design  a  thermistor  for  temperature  of  50  degree  in  the  NuvotonNu‐LB‐NUC140  series Board. Assume that the clock source available is 22MHz and baud rate is 9600.                                     

55

CODE COMPOSER STUDIO    INTRODUCTION TO CODE COMPOSER STUDIO   

Code Composer is the DSP industry's first fully integrated development environment  (IDE)  with  DSP‐specific  functionality.  With  a  familiar  environment  liked  MS‐based  C++TM,  Code  Composer  lets  you  edit,  build,  debug,  profile  and  manage  projects  from  a  single  unified  environment.  Other  unique  features  include  graphical  signal  analysis, injection/extraction of data signals via file I/O, multi‐processor debugging,  automated  testing  and  customization  via  a  C‐interpretive  scripting  language  and  much more.    CODE COMPOSER FEATURES INCLUDE:  •

IDE 



Debug IDE 



Advanced watch windows 



Integrated editor 



File I/O, Probe Points, and graphical algorithm scope probes 



Advanced graphical signal analysis 



Interactive profiling  



Automated testing and customization via scripting 



Visual project management system 



Compile in the background while editing and debugging 



Multi‐processor debugging 



Help on the target DSP 

 

To create a system configuration using a standard configuration file:  Step 1: Start CCS Setup by double clicking on the Setup CCS desktop icon.  Step 2: select Family 

 

Æ c67xx 

 

 Platform 

 

Æ simulator 

 

Endianness 

 

Æ little 

56

Step  3:  Click  the  Import  button  (File  Æ  import)  to  import  our  selection  (c67xx_sim.ccs)  to  the system configuration currently being created in the CCS Setup window.   Step 4: Click the Save and Quit button to save the configuration in the System Registry.  Step  5:  Click  the  Yes  button  to  start  the  CCS  IDE  when  we  exit  CCS  Setup.  The  CCS  Setup  closes and the CCS IDE automatically opens using the configuration we just created.   

57

PROCEDURE TO WORK ON CODE COMPOSER STUDIO   

Step 1: Creating a New Project   From the Project menu, choose New. 

In the Project Name field, type the name we want for our project. Each project we  create must have a unique name, and Click Finish. The CCS IDE creates a project file  called  projectname.pjt.  This  file  stores  our  project  settings  and  references  the  various files used by our project.  The Project Creation wizard window displays. 

   

 

 

 

Step 2: Creating a source file  Create a new source file using ‘File Ænew Æsource file ‘ pull down menu and save  the source file with .c extension  in the current project name directory. 

58

Save as type: c/c++ source file (*.c*)  Path: C:\CCStudio_v3.1\ MyProjects\Project Name\  Step 3: Add files to our project (source file\ library file\ linker file)  Source file: Add the source file in the project using      ‘ProjectÆadd files to project’  pull down menu.  Files of type: c/c++ source file (*.c*)  Path: C:\CCStudio_v3.1\ MyProjects\Project Name\file_name.c  Library file: Add the library file in the project using      ‘ProjectÆadd files to project’  pull down menu.  Files of type: Object and Library Files (*.o*,*.l*)  Path: C:\CCStudio_v3.1\ C6000\ cgtools\ lib \ rts6700.lib  Linker file: Add the linker file in the project using      ‘ProjectÆadd files to project’  pull down menu.  Files of type: Linker command Files (*.cmd*,*.lcf*)  Path: C:\CCStudio_v3.1\ tutorial\ dsk6711\ hello1 \ hello.cmd  Step 4: Building and Running the Program (compile\ Build\ Load Program\ Run)  Compile: Compile the program using the ‘Project‐compile’ pull down menu or by  clicking the shortcut icon on the left side of program window.  Build:  Build the program using the ‘Project‐Build’ pull down menu or by clicking the  shortcut icon on the left side of program window.  Load Program: Load the program in program memory of DSP chip using the ‘File‐ load program’ pull down menu.  Files of type:(*.out*)  Path: C:\CCStudio_v3.1\ MyProjects\Project Name\ Debug\ Project Name.out  Run: Run the program using the ‘Debug‐Run’ pull down menu or by clicking the  shortcut icon on the left side of program window. 

59

Step 5: observe output using graph   Choose View  ÆGraph

ÆTime/Frequency. 

 In the Graph Property Dialog, change the Graph Title, Start Address, and Acquisition  Buffer Size, Display Data Size, DSP Data Type, Auto scale, and Maximum Y‐    Value  properties to the values.       

60

EXP.No:14 

LINEAR CONVOLUTION USING TMS320C6713   

AIM: Verify the linear convolution operation Using DSK Code composer studio  EQUIPMENTS:  TMS 320C6713 Kit.  RS232 Serial Cable  Power Cord  Operating System – Windows XP  Software – CCStudio_v3.1    THEORY:  Convolution is a formal mathematical operation, just as multiplication, addition, and  integration.  Addition  takes  two  numbers  and  produces  a  third  number,  while  convolution  takes  two  signals  and  produces  a  third  signal.  Convolution  is  used  in  the  mathematics  of  many  fields,  such  as  probability  and  statistics.  In  linear  systems,  convolution  is  used  to  describe  the  relationship  between  three  signals  of  interest:  the  input  signal,  the  impulse  response, and the output signal.    In this equation, x(k), h(n‐k) and y(n) represent the input to and output from the system at  time n. Here we could see that one of the inputs is shifted in time by a value every time it is  multiplied with the other input signal. Linear Convolution is quite often used as a method of  implementing filters of various types.   

ALGORITHM    Step 1 Declare three buffers namely Input buffer, Temporary Buffer, Output Buffer.  Step 2 Get the input from the CODEC, store it in Input buffer and transfer it to the first                      location of the Temporary buffer.  Step 3 Make the Temporary buffer to point to the last location.  Step 4 Multiply the temporary buffer with the coefficients in the data memory and                 accumulate it with the previous output.  Step 5 Store the output in the output buffer.  Step 6 Repeat the steps from 2 to 5.     

ASSEMBLY PROGRAM TO IMPLEMENT LINEAR CONVOLUTION  conv.asm:    .global _main      X    .half 1,2,3,4,0,0,0,0     H    .half 1,2,3,4,0,0,0,0       

 

.bss   Y,14,2 

   

 

   

;input1, M=4  ;input2, N=4 

 

;OUTPUT, R=M+N‐1 

61

At the end of  input sequences  pad ‘M’ and ‘N’ no. of zero’s 

 

 

  _main:          MVKL    .S1 X,A4              MVKH    .S1 X,A4    ;POINTER TO X          MVKL    .S2 H,B4            MVKH  .  S2 H,B4     ;POINTER TO H          MVKL    S1 Y,A5          MVKH  .  S1 Y,A5     ;POINTER TO Y          MVK   .  S2  7,B2     ;R=M+N‐1    ;MOVE THE VALUE OF ‘R’TO B2 FOR DIFFERENT LENGTH OF I/P SEQUENCES          ZERO  .L1  A7             

    

 

 

ZERO  .L1  A3  

;I=0 

LL2:         LL1:          

     

     

  ZERO  .L1  A2  ZERO .L1  A8   

 

     

     

LDH  MV  SUB 

     

.D1 *A4[A8],A6  ; for(j=0;j

Suggest Documents