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 �����壬ʵ���ϣ����������ı仯��ijЩ����ִ�е�ʱ�䲻һ����һ���̶���ֵ�� ��������Щ��Ϣ�����ԶԳ����и���ϸ���˽⡣���潫 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 ��Ԫ�С�