Thanks to visit codestin.com
Credit goes to www.51hei.com

רע���Ӽ���ѧϰ���о�
��ǰλ�ã���Ƭ���̳��� >> �����̳� >> �������

Keil�̳�(4)

����:����   ï¿½ï¿½Ô´:��վԭ��   ï¿½ï¿½ï¿½ï¿½ï¿½:��  ï¿½ï¿½ï¿½ï¿½Ê±ï¿½ä£º2007��09��12��   �����壺�� �� ��

Keil �ĸ������ߺͲ��ݸ߼�����

��ǰ��ļ��������ǽ����˹��̵Ľ������������õĵ��Է���������֮�⣬Keil ���ṩ ��һЩ������������Χ�ӿڡ����ܷ�����������Դ�������������÷����ȣ����������˽�� �����ܡ����ҳ����е����ش��󣬿��ٲ鿴�����������Ϣ�ȣ���һ���н�����Щ�������� һ���ܣ����⻹������ Keil �IJ��ݸ߼����Լ��ɡ�

һ�� ��������

�ⲿ�ݹ��ܲ�����ֱ���������г�����Եģ������԰������ǽ��г���ĵ��ԡ������� �ܵķ�����ͬ����һЩ�����õĹ��ߡ�

1����Χ�ӿ�


Ϊ���ܹ��Ƚ�ֱ�۵��˽ⵥƬ���ж�ʱ�����жϡ�

���ж˿ڡ����ж˿ڵȳ��������ʹ�������Keil  ï¿½ï¿½ ����һЩ��Χ�ӿڶԻ���ͨ�� Peripherals �˵�ѡ�� �ò˵��������˵��������㽨����Ŀʱ��ѡ��  CPU �йأ������ѡ��� 89C51 ��һ�ࡰ��׼���� 51 ���� ������ Interrupt���жϣ���I/O Ports������ I/O �ڣ��� Serial�����пڣ���Timer����ʱ/�����������ĸ���Χ��

ͼ 1  ��Χ�豸֮���ж˿�


���˵�������Щ�Ի����г�����Χ�豸�ĵ�ǰʹ�����������־λ������ȣ��������� Щ�Ի�����ֱ�۵ع۲�͸��ĸ���Χ�豸�����������

��������ͨ��һ�������ӿ�һ�����ж˿ڵ���Χ�豸�Ի����ʹ�á��� 4��

 

MOV

A,#0FEH

LOOP:

MOV

P1,A

 

RL

A

 

CALL

DELAY   ;��ʱ 100 ����

 

JMP

LOOP

������ʱ 100 ������ӳ��������б�д��

��   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½   ï¿½ï¿½ Peripherals->I/O-Ports->Port  1 �ò¿ª£ï¿½ï¿½ï¿½Í¼ 1 ��ʾ��ȫ���� �У����Կ���������λ�Ĺ��ڲ��ϱ仯������������仯�� ���� View->Periodic Window Updata����������������� ��������ִ�еĽ����

ע������㿴���ı仯���죬��������̫�������ô ˵����ļ�������ܺã�ģ��ִ�е��ٶȿ죬��������� ���ӳ���ʱ�����ʱ���Է����ٶȡ�ģ�������ٶ���ʵ�� ���е��ٶ��޷���ͬ������ģ���һ���������㡣

��� Peripherals->I/O-Ports->Timer0 ������ͼ 2 ��ʾ ��ʱ/������ 0 ����Χ�ӿڽ��棬����ֱ��ѡ�� Mode ���� �������б���ȷ����ʱ/����������ʽ��0-3 ���ֹ�����ʽ��

ͼ 2  ��Χ�豸֮��ʱ��


�趨��ʱ��ֵ�ȣ����ѡ�� TR0��status ��� stop �ͱ���� run�����ȫ�����г��򣬴�ʱ

th0,tl0 ���ֵҲ���ٵؿ�ʼ�仯��ͬ��Ҫ�� Periodic Window Updata ����ѡ��״̬����ֱ�۵� ��ʾ�˶�ʱ/�������Ĺ����������Ȼ��������ij���δ�Դ�д�κδ��룬���Գ��򲻻�� �˶�ʱ/�������Ĺ������д�������

2�����ܷ���

Keil �ṩ��һ�����ܷ������ߣ����øù��ߣ����ǿ����˽��������Щ���ݵ�ִ��ʱ�� ������ô�����࣬�Ӷ��˽�Ӱ������������ִ���ٶȵ�ƿ��������ͨ��һ��ʵ������һ ������������ʹ�ã��� 5��

#include "reg51.h"

sbit P1_0=P1^0;                       //���� P1.0

void mDelay(unsigned char DelayTime)

{     unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{   for(j=0;j<125;j++)    {;}     }

}

void mDelay1(unsigned char DelayTime)

{     unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{        for(j=0;j<125;j++)                         {;}             }


}

void main()

{     unsigned int i;

for(;;){              mDelay(10);                    // ��ʱ  10

����

i++;

if(i==10)

{       P1_0=!P1_0; i=0; mDelay1(10);}

} }

�������ӡ��������״̬��ʹ�ò˵� View->Performance Analyzer Window�������ܷ� ���Ի��ò£¬½ï¿½ï¿½ï¿½Ã¶Ô»ï¿½ï¿½ï¿½ï¿½Ö»ï¿½ï¿½Ò»ï¿½ï¿½ unspecified��������Ҽ����ڿ�ݲ˵���ѡ�� Setup PA �������ܷ������öԻ��ò£¬¶ï¿½ï¿½ï¿½ C ���Գ��ò£¬¸Ã¶Ô»ï¿½ï¿½ï¿½ï¿½Ò²ï¿½Ä¡ï¿½Function  Symbol���µ� �б�������������ţ�˫��ijһ���ţ��÷��ż������� Define Performance Analyzer �µı� �����У�ÿ����һ���������֣���� Define  ï¿½ï¿½Å¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ãºï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ÏµÄ·ï¿½ï¿½ï¿½ï¿½Ð±ï¿½ï¿½ò¡£¶ï¿½ �ڻ������Դ����Function  Symbol  ï¿½Âµï¿½ï¿½Ð±ï¿½ï¿½ï¿½ï¿½Ð²ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ó³ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ö±ï¿½ï¿½ï¿½Ú±à¼©ï¿½ï¿½ �������ӳ���������� Close �رմ��ڣ��ص����ܷ������ڣ���ʱ���ڹ��� 4 ��ѡ�ȫ�� ִ�г��ò£¬¿ï¿½ï¿½Ô¿ï¿½ï¿½ï¿½ mDelay �� mDelay1 �����һ����ɫָʾ�����������ı�߿���ֱ�� �ؿ���ÿ������ռ����ִ��ʱ��ı����������Ӧ�ĺ������������ڸô��ڵ�״̬�������� ��ϸ�����ݣ����и���ĺ������£�

Min���öγ���ִ����������ʱ�䣻Max���öγ���ִ��������ʱ�䣻Avg���� �γ���ִ������ƽ��ʱ�䣻Total���öγ���ĿǰΪĿ�ܹ�ִ�е�ʱ�䣻%��ռ����ִ��ʱ ��İٷֱȣ�count�������õĴ�����

�������У����� mDelay �� mDelay1 ÿ�α����ö�����ͬ����ʱ�䣬������ Min��Max��

�� Avg  ï¿½ï¿½ï¿½ï¿½ï¿½å£¬Êµï¿½ï¿½ï¿½Ï£ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ä±ä»¯ï¿½ï¿½Ä³Ð©ï¿½ï¿½ï¿½ï¿½Ö´ï¿½Ðµï¿½Ê±ï¿½ä²»Ò»ï¿½ï¿½ï¿½ï¿½Ò»ï¿½ï¿½ï¿½Ì¶ï¿½ï¿½ï¿½Öµï¿½ï¿½ ��������Щ��Ϣ�����ԶԳ����и���ϸ���˽⡣���潫 mDelay1 ���������޸���һ��ʾ��

void mDelay1(unsigned char DelayTime)

{     static unsigned char k;

unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{   for(;j<k;j++)

{;}

}     k++; }

�����ж�����һ����̬���� K��ÿ�ε��øñ����� 1���� j ��ѭ�������� k �Ĵ�С�йأ�


��ʹÿ��ִ�иó���������ʱ�䲻һ�������롢ִ�иó����ٴι۲����ܷ������ڣ�����

���� Min��Max��Avg �����塣

3��������Դ���

�ô������ڹ۲�����б��������й���Ϣ����ñ���������һ�������б����塢������ �����ã������ֶ��ٴεȡ��� Source Browse �������ṩ�����ƵĹ�������������������� ���ű�����г��������ı����������Զ���Щ������  Class���飩��Type�����ͣ���Space

�����ڿռ䣩��Use�����ô��������򣬵���������������ڴ��ڵ��Ҳ࿴���ñ������ĸ� ��ϸ����Ϣ��

4���������÷�Χ����

����д�ij����У���Щ���������Զ���ᱻִ�е���������Ч�Ĵ��룩��Ҳ��һЩ���� ����������һ����������ܱ�ִ�е��������ڴ��뷶Χ�������ߣ����Կ��ٵ��˽�����ִ �������

������Ժ�ȫ�����У�Ȼ��ֹͣ��ť��ͣ�����󣬿��Կ�����Դ��������������� ��ɫ���ҡ����Һ��̣����е�����ָ���в����ǿ�ִ�д��룬������������塢ע���е� �ȣ�����ɫ���ǿ�ִ�е���δִ�й��Ĵ��룬����ɫ������ִ�й��ij����С�ʹ�õ��Թ��� ���ϵ� Code Coverage Window �ɴ򿪴������÷�Χ�����ĶԻ��������и���ģ�����ִ ������ĸ���ϸ�ķ���������㷢��ȫ�����к���һЩδ��ִ�е��Ĵ��룬��ô��Ҫ��ϸ�� ������Щ���뾿������Ч�Ĵ��뻹����Ϊ����û�������û�б�ִ�е���

�������ݸ߼����Լ���

Keil ������һ�׵������ԣ��ܶ�߼����Լ�������йأ�����ȫ��ѧϰ�������Բ����� ʵ���ⲻ����ô�������ؿ���ʤ�εģ���������ܲ��ݽ�Ϊʵ�õĹ��ܣ���Ҫ��ø���ϸ�� ��Ϣ����ο� Keil �Դ��İ����ļ� GS51.PDF��

1�����д�����ʵ��Ӳ������

Keil �Ĵ��д��ڳ�����ģ�⴮�пڵ��������������⻹������ PC ����ʵ�ʵĴ����� �������ܴ�����������ݣ���������͵����ڡ�����Ҫ�� Keil  ï¿½Ð½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ã¡ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ ������ڵ� Command ҳ�� MODE �������ô��ڵĹ�����ʽ��Ȼ���� ASSIGN ������� ������ʵ�ʵĴ������������������ͨ��һ��ʵ����˵����β������� 6��


ORG       0000H JMP START

ORG       3+4*8     ;��������

JMP SER_INT START:

MOV      SP,#5FH    ;��ջ��ʼ��

CALL    SER_INIT ;���пڳ�ʼ�� A SETB              EA   ;


SETB      ES   ;

JMP $                ;�����òµ½´Ë½ï¿½ï¿½ï¿½

SER_INT:

JBC      RI,NEXT  ; ������ڽ��յ��� ����ת

JMP              SEND                     ;����ת���ʹ���

NEXT:

MOV            A,SBUF                ;�� SBUF ��ȡ�ַ�



MOV    SBUF,A    ;���͵����� SBUF ��

JMP   OVER SEND:

clr   ti

OVER:

reti

SER_INIT:                 ;�жϳ�ʼ��

MOV                       SCON,#50H


ORL         TMOD,#20H

ORL         PCON,#80H

MOV         TH1,#0FDH ;�趨������ SETB TR1      ;��ʱ�� 1 ��ʼ���� SETB        REN     ;��������

SETB       SM2

RET END


�������ʹ�����жϷ�ʽ��д���п�����/����������Ĺ����ǽ��Ӵ��п��յ����� �����ͣ�����ͨ�����пڷ��ͳ�ȥ��

��ȷ����Դ�ļ����������̡���������û�д��󣬿ɽ��е��ԣ�ʹ�� Keil  ï¿½Ô´ï¿½ï¿½Ä´ï¿½ï¿½ï¿½ ���ڲ��Թ����Ƿ���ȷ�������ȷ�����Խ�����һ�����������顣

Ϊ��ʵ�ã����Dz�������������Ӳ���������� PC ���ϵ��������ڻ������ݣ��� COM1 ���� COM2 ���գ��� COM2 �������� COM1 ���գ�Ϊ�ˣ���Ҫ��һ�������߽����������� �������������ܼ򵥣����������Բ��� PC �����ڵ� DIN9 ������ĸ����Ȼ����һ�� 3 о�߽� ���������������ߵķ����ǣ�

2����3

3����2

5����5

�Ӻ��߰�������ͷ�ֱ���� PC ���ϵĴ��� 1 �봮�� 2����һ�� PC ���ϵĴ����ն˵� ���������紮�ھ���֮�࣬���и����������úô��ڲ��������д���ѡ�� 2�����ڲ������� Ϊ��

19200��n��8��1 �京���Dz�����Ϊ 19200������żУ�飬8 λ���ݣ�1 λֹͣλ�� �� Keil ���Դ��ڵ� command ҳ�����룺

>mode com1 19200,0,8,1

>assign com1 <sin>sout

ע��������ǰ��ġ�>������ʾ������Ҫ���룬�ڶ����еġ�<���͡�>������С�ڡ��� �����ڡ����ţ��м������ĸ��s���͡�input����ǰ������ĸ���������ĸ��s���͡�output�� ��ǰ������ĸ��

��һ������崮�� 1 �IJ�����Ϊ 19200������żУ�飬8 λ���ݣ�1 λֹͣλ���ڶ� ���ǽ����� 1��com1����������д��ڡ�

ȫ�����г���Ȼ���л����ھ��飬��ʼ���ͣ��ῴ�����ͺ�����ݻ��������Ե����� �У�˵���ѽ��յ��˷��͹��������ݡ��л��� uVison���鿴���д��� 1���ῴ�������ȷ�� �յ��˴��ھ������������ݡ�

2���Ӷ˿������ź�

��������������Ҫ���ź����룬�������ݲɼ��������Ҫ����������ݣ����� Keil �ĵ�����ȫ��һ���������Թ��ߣ�û��Ӳ����֮���������Բ�����ֱ�ӻ�����ݣ�Ϊ�� �������һЩ����ķ��������磬ij��·�� P1 ����Ϊ���ݲɼ��ڣ���ô����ʹ�õ�һ�ַ� ����������Χ�ӿڣ��� PORT 1��������ڵ����Ӧ�˿�λ��ʹ���Ϊ�ߵ�ƽ��͵�ƽ�� �����������ݡ���Ȼ�����ַ�������Ҫ�������ݶ�������λ������˵̫�鷳�ˣ���һ�ַ� ����ֱ���� command ҳ���� port1=��ֵ��������һ��СС����֤������ 7��

LOOP:    MOV      A,P1


 

JZ          NEXT

MOV      R0,#55H JMP          LOOP

NEXT:    MOV      R0,#0AAH JMP        LOOP

END

��� P1 �ڻ�����ݣ���� P1 �ڵ�ֵ�� 0������ R0 ��ֵΪ 0AAH�������� R0 ��ֵΪ 55H������Դ���ò²¢½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ì£ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ôºï¿½ï¿½Ú¹Û²ì´°ï¿½Ú¼ï¿½ï¿½ï¿½ R0��Ȼ��ȫ�����г� ��ע��ȷ��  View->Periodic  Window  Updata  ï¿½ï¿½ï¿½ï¿½Ñ¡ï¿½ï¿½×´Ì¬ï¿½ï¿½È»ï¿½ï¿½ï¿½ï¿½  Command  ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ PORT1=0 �س�����Է��ֹ۲촰���е� R0 ��ֵ����� 0AAH��Ȼ�������� PORT1=1 ���� ������ֵ���� R0 ��ֵ���Ϊ 55H��

ͬ���ĵ����������� port0��port2��port3 �ֱ���˿� 0��2��3 �����źš�

3��ֱ�Ӹ����ڴ�ֵ

�ڳ��������У���һ���������ݵķ�����ֱ�Ӹ�����Ӧ���ڴ浥Ԫ��ֵ�����磬ij���� �ɼ�����ʹ�� 30H �� 31H ��Ϊ�洢��Ԫ���������������������Ԫ���棬��ô���Ǹ���

�� 30H �� 31H ��Ԫ��ֵ���൱��������ݲɼ�����ɼ��������ݣ���������ڴ洰����ֱ ���޸ģ��ο���һ������Ҳ����ͨ����������޸ģ��������ʽ�ǣ� _WBYTE (��ַ,����)��

���е� ַ�� ָ��д ���� �浥Ԫ �ĵ� ַ���� ���� ���Ǵ� д�� �õ�ַ ���� �ݡ��� ��

_WBYTE(0x30,11)�Ὣֵ 11 д���ڴ��ַʮ������ 30H ��Ԫ�С�

���رմ�����