好文档 - 专业文书写作范文服务资料分享网站

计算机测控设计与总结报告

天下 分享 时间: 加入收藏 我要投稿 点赞

软件设计

#include #include

#define uchar unsigned char #define uint unsigned int void delay(unsigned int); void s_delay(void);

void delay10ms(unsigned char);

void write7279(unsigned char, unsigned char); void send_byte(unsigned char);

uchar a,b, j, k; uint i,tmr; //变量及IO口定义 sbit cs=P2^2; sbit clk=P2^1; sbit dat=P2^0; sbit key=P3^2;

//****** HD7279A指令 ******

#define CMD_RESET 0xa4 //7279复位指令 #define CMD_TEST 0xbf //7279灯测控指令 #define DECODE1 0xc8 //方式1译码 //主程序

/*void delay(void) //延时0.2秒子程序 {

unsigned char i,j,k; //定义3个无符号字符型数据。 for(i=20;i>0;i--) //作循环延时 for(j=200;j>0;j--)

6

for(k=248;k>0;k--);

}*/ void main() {

PX1=1; //设定外部中断1为最高优先级

IT1=1; //外部中断触发方式 EA=1; //开总中断 EX1=1; //外部中断 cs=1;

delay(0x100);

send_byte(CMD_RESET); //7279复位指令发送 k=0x01;

while(1) {

delay(10000);

j=_crol_(k,1); k=j; P0=j;

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

{ }

write7279(DECODE1,i); //译码方式1 delay(500000); delay(500000);

}

}

void delay10ms()

{

7

for(a=100;a>0;a--)

for(b=225;b>0;b--);

}

void delay(uint t) { uint i;

for(i=0;i

}

void send_byte(uchar out_byte) { uchar i; cs=0; delay10ms();

for(i=0;i<8;i++) //发送命令,高位在前数据到7279中 { if(out_byte&0x80) //高位在前 { dat=1;

} else { dat=0; }

s_delay(); clk=1;

//发生脉冲

s_delay(); clk=0;

s_delay();

8

一个时钟脉冲,送一位 out_byte<<=1; //左移一位

}

dat=0; delay(0x04); cs=1;

}

void s_delay(void) { uchar t; t=0;

}

//向7279中写入带数据的指令

void write7279(uchar out_cmd, uchar out_byte) //送数据 { uint i; cs=0; delay(0x04); for(i=0;i<8;i++) { if(out_cmd&0x80) { dat=1;

} else { dat=0; }

s_delay();

9

先发送指令,再发 clk=1; s_delay(); clk=0; s_delay(); out_cmd<<=1;

}

s_delay(); for(i=0;i<8;i++) { if(out_byte&0x80) { dat=1;

} else { dat=0; }

s_delay(); clk=1; s_delay(); clk=0; s_delay(); out_byte<<=1;

} dat=0; delay(0x04); cs=1; delay(0x04);

}

10

计算机测控设计与总结报告

软件设计#include#include#defineucharunsignedchar#defineuintunsignedintvoiddelay(unsignedint);voids_delay(void);voiddelay10ms(unsignedchar)
推荐度:
点击下载文档文档为doc格式
561bb84rfw0daes3z43g
领取福利

微信扫码领取福利

微信扫码分享