Home

experiência 8: linguagem de alto nível “c” para 8051 e

image

Contents

1. EXPERI NCIA 8 LINGUAGEM DE ALTO N VEL C PARA 8051 E GRAVA O DE PROGRAMAS EM EPROM Autores Prof Dr Andr Riyuiti Hirakawa e Prof Dr Carlos Eduardo Cugnasca Vers o 3 0 2009 1 OBJETIVO Esta experi ncia tem como objetivo complementar o aprendizado de elabora o de programas em linguagem de alto n vel apresentando os aspectos do acesso a perif ricos a sinais de controle e a interrup es Al m da programa o do microprocessador em linguagem de alto n vel essa experi ncia prev a grava o do programa execut vel em mem ria EPROM que dever substituir a mem ria com o Programa Monitor da Placa Experimental 2 INTRODU O Os compiladores s o ferramentas poderosas para a produ o de software por traduzirem programas escritos em linguagem de alto n vel para programas escritos em linguagem de m quina Entretanto a intera o da linguagem de alto n vel com as opera es sobre o hardware opera es de entrada e sa da em alguns casos n o s o previstas na linguagem Nos programas executados em computadores as opera es de entrada e sa da s o executadas pelo sistema operacional atrav s de systems calls Nos equipamentos desprovidos de sistema operacional necess rio que o programador crie os programas b sicos de entrada e sa da escritos usualmente em linguagem assembly para que apresentem um bom grau de otimiza o minimizando o tempo de sua execu o Eles
2. c gt sdcc code loc 0xA000 xram loc 0x8000 progr c d Passagem de Par metros e Retorno de Valores em Subrotinas Alguns registradores s o utilizados tanto para a passagem de par metros como para o retorno de valores Um byte DPL dois bytes DPL DPH tr s bytes DPL DPH B e quatro bytes DPL DPH B e A Para os par metros seguintes caso a subrotina seja n o reentrante os par metros s o passados pela mem ria em caso de subrotinas reeentrantes pela pilha para maiores detalhes consultar documenta o do SDCC item 3 14 1 Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS 6 Laborat rio de Processadores l Experi ncia 8 e Declara o de uma Fun o Escrita em Linguagem Assembly Presente em um Arquivo Externo Exemplo rotina no arquivo rot asm extern tipo retorno nome fun o tipo parametrol tipo parametro2 Os nomes dos par metros n o devem ser passados Na rotina deve ser declarado que a rotina de uso global e que o c digo reloc vel Exemplo globl delay area CSEG delay RET Observa o n o se utiliza a pseudo instru o END No caso de a subrotina possuir por exemplo um par metro o mesmo deve ser declarado Exemplo 101 delay PARAM 1 globl delay area CSEG delay RET Observa o n o se utiliza a pseudo instru o END Deve se primeiramente chamar o montador para gerar o c
3. o encontrados em implementa es especificas para a gera o de c digo para determinados microprocessadores por exemplo 8080 8085 Z80 8086 8088 68000 etc Com o advento do microcomputador pessoal surgiram compiladores C espec ficos para essas m quinas com bibliotecas de rotinas de manipula o dos seus perif ricos t picos teclado v deo disco etc e gerando o programa execut vel compat vel com elas e que nem sempre permitem que o mesmo possa ser utilizado para a gera o de programas para sistemas diferentes baseados no mesmo processador por exemplo baseados no 8086 8088 Tais sistemas costumam apresentar reas de mem ria especificas diferente dos computadores pessoais exigindo compiladores e outras ferramentas de gera o de programa com capacidade de aloca o de programas para qualquer regi o de mem ria escolhida pelo programador Os manuais espec ficos de cada compilador devem sempre ser consultados observando se as restri es existentes os recursos de biblioteca dispon veis os mecanismos de gera o de c digo e demais conven es adotadas O Ap ndice I apresenta as principais caracter sticas do compilador C a ser utilizado 1 Informa es gen ricas a respeito da linguagem C podem ser obtidas em 4 5 6 e 7 4 PARTE EXPERIMENTAL 4 1 Planejamento O planejamento dever apresentar e Descri o do projeto relacionando suas caracter sticas principais e O estudo do manuseio de
4. ser o utilizados por outros programas escritos em linguagem de alto n vel ou mesmo em linguagem assembly e s o comumente agrupados em bibliotecas Esses programas s o escritos na forma de subrotinas e altamente conveniente que sejam respeitados os padr es de passagem de par metros e devolu o de resultados definidos pelo compilador que se pretende utilizar visando as suas chamadas dentro de programas escritos em linguagem de alto n vel Esse conjunto de subrotinas b sicas deve ser anexado ao programa que as utilize na fase de liga o aloca o Cada subrotina deve portanto ser declarada como p blica para que sejam satisfeitas as chamadas geradas pelo programa em linguagem de alto n vel que a declarar como externa De forma an loga pode se desenvolver rotinas em C e cham las em programas elaborados em linguagem assembly 2 Laborat rio de Processadores I Experi ncia 8 3 CARACTER STICAS DO COMPILADOR C Cada compilador costuma apresentar caracter sticas pr prias para a gera o das instru es em linguagem de m quina tais como passagem de par metros para subrotinas devolu o de resultados de fun es tratamento de interrup es etc Assim compiladores de fabricantes diferentes que geram c digo para um mesmo processador n o necessariamente adotam as mesmas conven es Tamb m muitos recursos existentes em uma implementa o convencional de C utilizada em microcomputadores nem sempre s
5. 1 1 Outros Recursos O cap tulo 8 de 1 apresenta uma s rie de comandos teis ao programador como por exemplo deslocamento e rota o de bits otimiza es etc Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS 9 Laborat rio de Processadores l Experi ncia 8 AP NDICE II GRAVA O DE EPROM 27256 VIA PC UTILIZANDO O MPT 2000 Passos a serem seguidos para a grava o de mem rias do tipo EPROM 1 Ligar o equipamento de grava o de dispositivos MPT 2000 ele executar automaticamente um auto teste 2 Selecionar tipo do dispositivo neste caso uma EPROM para selecionar uma fun o qualquer basta pressionar a tecla TEST Mover o cursor at a op o 0 8 bit EPROM e pressionar TEST 4 Examinar a mem ria a gravar identificando o seu fabricante e seu tipo por exemplo Intel 27C256 Selecionar o fabricante da mem ria Selecionar o n mero do dispositivo neste caso 27256 ou 27C256 7 Pressione CHECK para verificar se o componente est realmente apagado uma mem ria EPROM considerada apagada quando todas as suas posi es apresentam o valor FFh Caso ela n o esteja apagada coloque a no Apagador de Mem rias por alguns minutos p Dv Opera o no PC Realizar o boot do PC no modo DOS tecla F8 pressionada durante o boot 8 Inserir disco MPT 2000 ou selecionar o diret rio do disco r gido do microcomputador que possua os progra
6. a o e Sistemas Digitais PCS 8 Laborat rio de Processadores l Experi ncia 8 Uma vez que o microcontrolador 8051 permite o uso de mem rias ROM e RAM internas ou externas foram previstos dos modelos se compila o que permitem aos projetistas alocar as instru es e rea de dados de forma compat vel com o previsto no projeto Maiores informa es cap tulo 3 17 de 1 No comando de compila o pode ser acrescentada uma das op es model large e model small default j Subrotinas de Interrup o Uma subrotina de tratamento de interrup o deve ser declarada de forma semelhante da subrotina abaixo espec fica para o Timer 0 do 8051 void timer0 int void interrupt 1 using 1 i O n mero da interrup o atribu do da seguinte forma N da interrup o Descri o Endere o do vetor Endere o de desvio na Placa Experimental 0 Interrup o Externa O 0x0003 OxFFFO 1 Timer 0 0x000B OxFFF3 2 Interrup o Externa 1 0x0013 OxFFF6 3 Timer 1 0x001B OxFFF9 4 Canal Serial 0x0023 OxFFFC 5 Timer 2 8052 0x002B O comando using especifica o banco de registradores a ser utilizado na subrotina de tratamento de interrup o Maiores informa es cap tulo 3 8 de 1 k Bibliotecas O SDCC disp e de bibliotecas prontas para uso cap tulo 3 16 de 1 Tamb m permite que o programador crie as suas pr prias bibliotecas cap tulos 3 13 e 3 14 de
7. digo da fun o e depois o compilador para gerar o c digo do programa que invoca a fun o e lig lo com o c digo deste Exemplo c gt asx8051 losg rot asm gera o arquivo rot rel c gt sdcc code loc 0xA000 xram loc 0x8000 progr c rot rel e a op o code loc 0xA000 aloca o c digo a partir do endere o A000H e a op o xram loc 0x8000 aloca a rea de vari veis externas a partir do endere o 8000H e al m do rot rel outros arquivos reloc veis escritos em linguagem assembly C que j foram montados compilados poderiam ser acrescentados inclusive bibliotecas prontas ou criadas pelo usu rio ele ser ligado ao programa progr c que est sendo compilado atrav s deste comando e o resultado ser alocado gerando o programa absoluto progr ihx no formato hexadecimal Intel a ser transferido para aplaca experimental Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS 7 Laborat rio de Processadores I Experi ncia 8 outros arquivos rel poderiam ser colocados neste comando sendo que o primeiro da lista no caso progr c deve necessariamente contero main f Includes O SDCC permite que includes sejam utilizados no in cio de cada programa visando simplificar a sua escrita sendo que um deles sempre utilizado pois cont m as declara es dos registradores portas e demais recursos do 8051 que o arquivo 8051 h Exemplos ftinclude lt MCS51 8051
8. e Engenharia de Computa o e Sistemas Digitais PCS 3 Laborat rio de Processadores I Experi ncia 8 AP NDICE I ALGUMAS CARACTER STICAS DO SMALL DEVICE C COMPILER Recomenda se a leitura atenta do manual desse compilador A seguir ser o apresentadas algumas informa es de interesse ao programador Maiores informa es bem como o manual do compilador podem ser obtidos em http sdcc sourceforge net Em rela o aos exemplos apresentados na apostila h a necessidade de se realizar algumas altera es sugerindo se fortemente a leitura atenta do manual dispon vel no endere o acima A seguir s o apresentadas algumas recomenda es para seu uso a Declara es Para especificar reas de mem ria utilizar at Exemplo defini o da vari vel var na posi o 98H da rea SRF do 80C51 unsigned char near at 0x98 var b Uso de Linguagem Assembly dentro da Linguagem C Embora poss vel n o recomend vel pelos efeitos colaterais que pode causar por exemplo altera o de valores de registradores que o compilador tamb m utiliza asm lt c digo em linguagem assembly gt _endasm Observa o o da ltima instru o n o pode ser esquecido bem como o s mbolo _ c Chamada do Compilador Utilizar o comando SDCC em uma janela DOS colocando se as informa es de aloca o na mesma linha Exemplo compila o do programa progr c alocando a rea de c digo em A000H e a rea de dados em 8000H
9. ental e Utilize o c digo do sinal sonoro do terminal de v deo BEL para indicar a parada e o rein cio com bips de dura o diferente 5 BIBLIOGRAFIA 1 SDCC Small Device C Compiler http sdcc sourceforge net 2 Andrade Marco T lio Carvalho de Cugnasca Carlos Eduardo Hirakawa Andr Apostila da Experi ncia LINGUAGEM DE ALTO NIVEL C PARA 8051 E GRAVA O de programas EM EPROM Disciplina PCS 597 Laborat rio de Microprocessadores I 2001 3 Cugnasca Carlos Eduardo Zerbini ricardo Costa Apostila da Experi ncia Desenvolvimento de Programas em Linguagem de Alto N vel C Disciplina PCS 599 Laborat rio de Microprocessadores 1 995 4 LEVENTHAL L A 80804 8085 ASSEMBLY LANGUAGE PROGRAMMING McGraw Hill 1986 5 KERNIGHAN B W amp RITCHIE D M C A Linguagem de Programa o Padr o ANSI Rio de Janeiro Editora Campus 1990 289p 6 CUGNASCA C E Linguagem PL M Apostila FDTE S o Paulo 1986 7 PRESSMAN R S Engenharia de Software Makron Books 1995 8 PHILIPS 80C51 Based 8 Bit Microcontrollers Data Handbook IC20 Philips Electronics North America Corporation USA 1 997 9 ALFACOM M dulos Multi Matrix Manual de Utiliza o Editora rica Ltda 1 994 10 EasyCode http www easycode de ou http www blichfeldt dk ipabxwpp 11 Crimson Editor http www crimsoneditor com Escola Polit cnica da USP Departamento d
10. h gt Nesse caso o arquivo tipo texto 8051 h pode ser localizado por meio do caminho SDCC MCS51 8051 h Para o caso de o arquivo se encontrar no mesmo diret rio do programa que est sendo compilado tem se a op o include 8051 h g Tipos de Vari veis e Classes de Armazenamento O SDCC permite diversos tipos de vari veis como bit char 8bits 1 byte short e int 16 bits 2 bytes long 32 bits 4 bytes e float 4 bytes padr o IEEE As vari veis do tipo bit s o armazenadas na mem ria RAM interna endere os de 0x20 a 0x2f J as demais vari veis podem ser armazenadas na RAM interna data ou near na RAM externa xdata ou far ou na rea de c digo code O SDCC especifica outras classes de armazenamento al m das especificadas pelo Padr o ANSI para adequar a linguagem s particularidades de cada microcontrolador que ele suporta Para o 8051 tem se item 3 4 1 de 1 data near code xdata far pit idata sfr sbit pdata ponteiros h Ponteiros O SDCC permite alguns tipos de ponteiros como por exemplo e ponteiro armazenado na mem ria RAM interna apontando para dados na mem ria RAM externa xdata unsigned char data p e ponteiro armazenado na mem ria RAM externa apontando para dados na mem ria RAM interna data unsigned char xdata Pp Para maiores detalhes consultar item 3 4 1 8 do manual do SDCC i Modelos de Compila o Escola Polit cnica da USP Departamento de Engenharia de Comput
11. interrup es em linguagem C apresentado em 1 e Utiliza o do Diagrama Estruturado de Nassi Schneirderman ou Carta de Nassi Schneirderman 10 e Especifica o do programa a ser testado com diagramas estruturados e linhas de programas com explica o sobre qual a fun o da execu o de cada comando Planejamento sem esta documenta o n o ser aceito e Edi o do arquivo fonte existem editores que facilitam a edi o de programas bem como a impress o da listagem associada como por exemplo o Crimson Editor 11 Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS 3 Laborat rio de Processadores l Experi ncia 8 4 2 Atividades a Refazer o programa do rel gio da Experi ncia 5 em linguagem C Utilize as rotinas auxiliares da experi ncia anterior para depura o do programa Veja as informa es do Ap ndice I para a utiliza o da interrup o em Linguagem C especialmente a partir do item j OBS Como os programas em linguagem C costumam criar programas execut veis de tamanhos significativamente maiores do que se fossem desenvolvidos em linguagem assembly o tempo dispon vel para o tratamento de interrup o se torna mais cr tico Assim deve se evitar a coloca o de muitas instru es dentro de subrotinas de tratamento de interrup es b Gerar uma vers o execut vel do programa anterior para ser gravada em EPROM Procure segui
12. mas do equipamento MPT 2000 e digitar MAIN C CDILAMIAMINIPAMAIN 9 Digitar ENTER duas vezes 10 Digitar l para carregar arquivo do disco 11 Selecionar o formato do arquivo por exemplo INTEL HEX 12 Especificar nome do arquivo a ser carregado por exemplo c Mestelexp5 hex 13 ENTER 14 Digitar F 15 ENTER 16 ENTER selecionar op o PC gt SU1 17 ENTER MEMORY BUFFER 18 ENTER START Obs executar os passos 20 21 e 22 preparar terminal antes de finalizar 19 ENTER END Opera o do terminal MPT 2000 20 Pressionar a tecla FUNC 21 Selecionar op o B up down load data 22 Selecionar op o 1 download PC gt SU1 Os passos executados anteriormente armazenam o programa no buffer do MPT 2000 Para que este seja transferido para a EPROM basta digitar a tecla PROG do equipamento de grava o Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS
13. quisa em manuais e sites de fabricantes de mem ria e ou livros especializados e coloque no relat rio uma pesquisa a respeito do funcionamento de uma mem ria EPROM e seu processo de grava o e de apagamento n o esquecer de citar as fontes de consulta Responda ainda s seguintes quest es e Qual o tempo t pico de grava o e de apagamento de uma mem ria e O que uma mem ria do tipo OTP e Quais s o as diferen as entre as mem rias do tipo ROM PROM EPROM EEPROM E PROM e FLASH d Refazer o programa experi ncia IMPLEMENTA O DE REL GIO DIGITAL COM INTERRUP O EM LINGUAGEM C O cron metro deve possuir pelo menos uma tecla para disparar e parar a contagem A implementa o das teclas de RESET e LAP normalmente encontradas nos rel gios digitais opcional Utilize as subrotinas de depura o e apresenta o Escola Polit cnica da USP Departamento de Engenharia de Computa o e Sistemas Digitais PCS 4 Laborat rio de Processadores I Experi ncia 8 no display desenvolvidos na experi ncia anterior e o m dulo de identifica o de teclado reescrito em linguagem C e Envie a informa o apresentada no display tamb m no terminal de v deo f Gerar uma vers o execut vel do programa anterior para ser gravada em EPROM e test la g Opcionais n o necess rio gravar novamente a EPROM e Altere o programa para que o teclado de terminal de v deo substitua o teclado da Placa Experim
14. r as recomenda es abaixo e O endere o inicial do programa gerado deve ser 0000H e Uma das tarefas do Programa Monitor inicializar os registradores e os perif ricos do 80C51 Com a retirada desse programa isso n o mais ser feito Portanto o programa do rel gio nesta vers o deve inicializar adequadamente alguns dos registradores de configura o do microcontrolador por exemplo PSW IE IP e SP Descubra no manual do compilador como essa quest o pode ser resolvida e coloque no relat rio e Deve se tomar cuidado com os par metros usados no processo de compila o e liga o aloca o por exemplo par metros de otimiza o e modelo small large veja Ap ndice 1 e Interrup es o Programa Monitor possui instru es de desvio LIMP para o final da mem ria RAM externa para cada posi o do seu vetor de interrup es redefinindo o assim Assim permite se que sejam colocadas subrotinas de tratamento de interrup es em qualquer local sem a necessidade de se alterar o conte do da mem ria EPROM A tabela abaixo apresenta o novo vetor dispon vel Contudo neste item tal caracter stica n o ser utilizada Interrup o Endere o original Endere o na Placa Experimental IEO Interrup o externa 0 0003H FFFOH TFO Timer Contador 0 000BH FFF3H IE1 Interrup o externa 1 0013H FFF6H TF1 Timer Contador 1 001BH FFF9H RI TI Canal Serial 0023H FFFCH c Efetue uma pes

Download Pdf Manuals

image

Related Search

Related Contents

Agilent 53310A Modulation Domain Analyzer  Sony SCD-777ES CD Player  Rollei Bullet HD Lite 2  Bulletin officiel des armées - Les écoles de Saint  175.2 KB  Viewsonic E2 Series 19" A SERIES LCD DISPLAY  

Copyright © All rights reserved.
Failed to retrieve file