您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 数字集成电路参数测试仪源程序
Filename:main.c**LastmodifiedDate:2004-09-16**LastVersion:1.0**Descriptions:Themain()functionexampletemplate****------------------------------------------------------------------------------------------------------**Createdby:lls**Createddate:2006-09-16**Version:1.0**Descriptions:Theoriginalversion****------------------------------------------------------------------------------------------------------**Modifiedby:**Modifieddate:2006-09-21**Version:**Descriptions:***********************************************************************************************************功能:**上位机使用EasyARM软件全仿真的DOS窗口观察。**说明:**通讯波特率115200,8位数据位,1位停止位,无奇偶校验。*******************************************************************************************************#includeconfig.h#includestdio.h#includemath.huint32DA_OUT,DCT;uint32value[6][7];/*数组:六个参数的标准值(比较错误时用)*/uint32biaozhunzhi[6]={0.8*413,//VIL2.0*413,//VIH2.7*413,//VOH0.5*413,//VOL4*1024/2480,//IIL8*1024/2480};//IOL/*数组:继电器使用情况*/uint32a[6][3]={(18)|(117),(18),(117),//J1J7(19)|(118),(19),(118),//J2J8(110)|(119),(110),(119),//J3J9(112)|(120),(112),(120),//J4J10(113)|(123),(113),(123),//J5J11(116)|(127),(116),(127)};//J6J12uint8ay[7]={1,2,3,4,5,6,7};//数组:六个参数的名称uint8fm1,fm2,fm3,fm4,fm5,fm6;//非门编号uint8zj_flag;//三角波过顶标志uint8rcv_buf[18];uint8rcv_dat0;/*实际电路中各参数要修正的偏差系数*/constfloatad01x=1.905;//AD0.1测VOHconstfloatad03x=1.905;//AD0.3测VIHconstfloatad05x=0.500;//AD0.5测IILconstfloatad15x=0.500;//AD1.5测VILconstfloatad16x=0.500;//AD1.6测VOLconstfloatad17x=1.900;//AD1.7测IOL(看为高电平)/*模拟开关CD4051GPIO口*/#defineA0116//P1.16IO1DIR#defineA1117//P1.17IO1DIR#defineA2124//P1.24IO1DIR/*继电器GPIO口*/#defineJ118//P0.8IO0DIR非门1(左)#defineJ219//P0.9IO0DIR非门2#defineJ3110//P0.10IO0DIR非门3#defineJ4112//P0.12IO0DIR非门4#defineJ5113//P0.13IO0DIR非门5#defineJ6116//P0.16IO0DIR非门6#defineJ7117//P0.17IO0DIR非门1(右)#defineJ8118//P0.18IO0DIR非门2#defineJ9119//P0.19IO0DIR非门3#defineJ10120//P0.20IO0DIR非门4#defineJ11123//P0.23IO0DIR非门5#defineJ12127//P0.27IO0DIR非门6/*LED灯GPIO口*/constuint32LED1=(118);//P1.18IO1DIR控制LED1低电平点亮constuint32LED2=(119);//P1.19IO1DIR控制LED2低电平点亮constuint32LED3=(120);//P1.20IO1DIR控制LED3低电平点亮constuint32LED4=(121);//P1.21IO1DIR控制LED4低电平点亮constuint32LED5=(122);//P1.22IO1DIR控制LED5低电平点亮constuint32LED6=(123);//P1.23IO1DIR控制LED6低电平点亮/*key1UART0SPIBEEPDACGPIO口*/#defineUART00x05//P0.0P0.1控制UART0,发送到PC机显示#defineSPI0x00005500//P0.4P0.5P0.6P0.7连接SPI,数码管显示用#defineDAC218//P0.25连接到DAC#definekey1125//P1.25连接到按键key1/*ADGPIO口*/#defineAD01124//P0.28连接到AD0.1测VOH#defineAD03128//P0.30连接到AD0.3测VIH#defineAD05120//P0.26连接到AD0.5测IIL#defineAD15330//P0.15连接到AD1.5测VIL#defineAD16210//P0.21连接到AD1.6测VOL#defineAD17112//P0.22连接到AD1.7测IOL#defineUART_BPS115200//通讯波特率115200#defineHC595_CS(129)//P0.29口为74HC595的片选uint32IODIR0;/**********************************************************************************************************函数名称:DelayNS()**函数功能:长软件延时**入口参数:dly延时参数,值越大,延时越久**出口参数:无********************************************************************************************************/voidDelayNS(uint32dly){uint32m;for(;dly0;dly--)for(m=0;m5000;m++);}/**********************************************************************************************************函数名称:UART0_Init()**函数功能:初始化串口0:波特率115200,8位数据位,1位停止位,无奇偶校验。**入口参数:无**出口参数:无********************************************************************************************************/voidUART0_Init(void){uint16Fdiv;U0LCR=0x83;//DLAB=1Fdiv=(Fpclk/16)/UART_BPS;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}/************************************************************************************************************函数名称:UART0_GetByte()**函数功能:从串口接收1字节数据,使用查询方式接收。**入口参数:无**出口参数:接收到的数据**********************************************************************************************************/uint8UART0_GetByte(void){uint8rcv_dat;while((U0LSR&0x01)==0);rcv_dat=U0RBR;rcv_dat0=rcv_dat-48;return(rcv_dat);}/************************************************************************************************************函数名称:UART0_GetStr()**函数功能:从串口接收**入口参数:s指向接收数据数组的指针**n接收的个数**出口参数:无**********************************************************************************************************/voidUART0_GetStr(uint8*s,uint32n){uint8i=0;for(;n0;n--){*s++=UART0_GetByte();rcv_buf[i++]=rcv_dat0;}biaozhunzhi[0]=(rcv_buf[0]*100+rcv_buf[1]*10+rcv_buf[2])/100;biaozhunzhi[1]=(rcv_buf[3]*100+rcv_buf[4]*10+rcv_buf[5])/100;biaozhunzhi[2]=(rcv_buf[6]*100+rcv_buf[7]*10+rcv_buf[8])/100;biaozhunzhi[3]=(rcv_buf[9]*100+rcv_buf[10]*10+rcv_buf[11])/100;biaozhunzhi[4]=(rcv_buf[12]*100+rcv_buf[13]*10+rcv_buf[14])/100;biaozhunzhi[5]=(rcv_buf[15]*100+rcv_buf[16]*10+rcv_buf[16])/100;}/**********************************************************************************************************函数名称:UART0_SendByte()**函数功能:向串口发送字节数据,并等待数据发送完毕。**入口参数:data要发送的数据**出口参数:无*****************************************************************************************
本文标题:数字集成电路参数测试仪源程序
链接地址:https://www.777doc.com/doc-5868818 .html