测试程序说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)
{