测试程序说明

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测试顺序

1.电源测试

2.串口测试

3.ZLG7289测试

4.RAM测试

5.片选测试

6.中断模块测试

7.时钟芯片测试

8.LCD测试

9.打印机测试

10.AD参考电压测试

11.MAX197测试

12.TLC2543测试

13.DAC0832测试

14.逻辑开关和发光二极管测试

15.CPLD测试

测试平台:PC机,串口线,并口线,单片机开发版

软件:Keil51 SLISP 串口调试助手

1.在测试电源部分之前,我们需要先用万用表检查电源和地之间是否有短路现象。然后上电,观察三个指示电源的发光二极管是否正常点亮,然后用万用表测量电源电压,看是否是+5V,+12V,-12V

2.对单片机进行测试,首先必须测试人机交互的一些接口是否正常,这样才可以对单片机的运行情况调试,我们首先测试串口。

我们使用Keil51建立一个工程,添加“串口.C”文件,如下图所示

测试程序的源代码如下:

#include

#include

unsigned char dat;

main()

{

/*串口程序,当收到0x55时,发送Hello I am cc.*********************/

while(1)

{

SCON=0x52;

TMOD=0x20;

TH1=0xFD; // 波特率为9600,晶振=11.0592M

TR1=1;

while(!RI);

dat = SBUF;

if (dat == 0x55)

{

printf("Hello I am cc. \n");

}

/*串口程序END***************************************************/

}

}

然后选择Options for Target选项,如下图所示,在Output一栏里,选择Create HEX File

功能,如下图所示,然后按“F7”编译工程,则会在工程目录下生成一个“串口.hex”文件

打开SLISP软件,如下图所示

软件配置如上图所示,并行端口选择LPT1,下载模式选择TURBO,器件选择A T89S52,在“FLASH存储器”一栏中,我们选择刚才编译好的“串口.hex”文件,单击“编程”,则会把程序直接烧写到单片机的FLASH里去(程序烧写进去之后,程序会直接运行,不需要复位),烧写成功后如下图所示

接下来我们需要打开“串口调试助手”,如下图所示

我们把波特率设置为9600,8位数据,1位停止位,无校验位。这样我们便可以和单片机进行通信了。如图所示,选择“十六进制发送”,数据栏里填写“55”,这样,我们每点击一次“手动发送”,PC机就会向单片机发送0x55,当单片机接收到0x55时,便会向PC机发送字符串“Hello I am cc.”,如图所示。

3.接下来我们测试数码管和键盘,首先我们需要在INT区把KEY用跳线冒跳到INT0,其余四个跳到VCC,程序编译和下载的过程和上面类似,这里不在赘述,原程序如下

#include

#include

#include

typedef unsigned char uchar;

sbit CS=P1^4;

sbit CLK=P1^7;

sbit DIO=P1^6;

sbit KEY=P3^2;

//需要在INT区把KEY用跳线冒跳到INT0,其余四个跳到VCC

//这样,P3^2就相当于直接连接到key

uchar half_hign;

uchar half_low;

bdata uchar com_data;

sbit mos_bit=com_data^7;

sbit low_bit=com_data^0;

void delay_50us()

{

uchar i;

for (i=0; i<6; i++){;}

}

void delay_8us()

{

uchar i;

for (i=0; i<1; i++){;}

}

void delay_50ms()

{

uchar i,j;

for(j=0;j<50;j++)

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

}

void delay_5s()

{

uchar i = 100;

while(i--)

delay_50ms();

}

void send(uchar sebuf)

{

uchar i;

com_data=sebuf;

CLK=0;

CS=0;

delay_50us();

for(i=0;i<8;i++)

{

delay_8us();

DIO=mos_bit;

CLK=1;

delay_8us();

com_data=com_data<<1;

CLK=0;

}

DIO=0;

}

uchar receive(void)

{

相关文档
最新文档