测控技术与仪器测控技术实验报告内容摘要:

于 */ sbit CLK=P1^5。 /*HD7279A 的 CLK 连接于 */ void SEND(void)。 //调用 SEND(void)函数 void LONG_DELAY(void)。 //调用 LONG_DELAY(void)函数 void SHORT_DELAY(void)。 //调用 SHORT_DELAY(void)函数 void RECEIVE(void)。 //调用 RECEIVE(void)函数 void main(void) //定义主函数 { START: _nop_()。 /*空操作 ,就是不进行任何操作的延时 ,作用一般就是用作延时用 */ P1=0xDB。 /*1101 1011 处于无效状态 */。 TIMER=50。 /*计时器初值 */ START_DELAY: TIMER1=255。 /*开延时 */ START_DELAY1: TIMER1。 /*开延时 */ if(TIMER10) //如果 TIMER10 goto START_DELAY1。 //跳至 START_DELAY1 TIMER。 //计时器自减 1 if(TIMER0) //判断计时器的值是否大于 0,使进 START_DELAY goto START_DELAY。 DATA_OUT=0xA4。 SEND()。 /*发送 */ CS=1。 /*片选无效 */ MAIN1: if(KEY==1) goto MAIN1。 /*键没有按下,循环 */ DATA_OUT=0x15。 /*将 0001 0101 赋值给 DATA_OUT*/ SEND()。 /*发送 */ RECEIVE()。 /*接收 */ CS=1。 /*片选无效 */ AA=DATA_IN。 /*把输入数据复制给 AA*/ if(AA==6) BB=1。 /*数码管显示 0000 0110*/ if(AA==5) BB=2。 /*0000 0101*/ if(AA==4) BB=3。 /*0000 0100*/ if(AA==14) BB=4。 /*0001 0100*/ if(AA==13) BB=5。 /*0001 0011*/ if(AA==12) BB=6。 /*0001 0010*/ if(AA==22) BB=7。 /*0010 0010*/ if(AA==21) BB=8。 /*0010 0001*/ if(AA==20) BB=9。 /*0010 0000*/ if(AA==30) BB=11。 /*0011 0000*/ if(AA==29) BB=0。 /*0010 1001*/ if(AA==28) BB=12。 /*0010 1000*/ TEN=0。 /*MOV TEN,A*/ DATA_OUT=0xA1。 /*MOV DATA_OUT,1010 0001B*/ SEND()。 /*CALL SEND*/ DATA_OUT=0xA1。 /*MOV DATA_OUT,1010 0001B*/ SEND()。 /*CALL SEND*/ DATA_OUT=0x81。 /*MOV DATA_OUT,1000 0001B*/ SEND()。 /*CALL SEND*/ DATA_OUT=TEN。 /*MOV DATA_OUT,TEN*/ SEND()。 /*CALL SEND*/ DATA_OUT=0x80。 /*MOV DATA_OUT,1000 0000B*/ SEND()。 /*CALL SEND*/ DATA_OUT=BB。 /*MOV DATA_OUT,B*/ SEND()。 /*CALL SEND*/ CS=1。 /*片选无 效 */ WAIT: if(KEY==0)/*有键按下 */ goto WAIT。 /*跳到 WAIT 函数 */ goto MAIN1。 /*跳到 WAIT1 函数 */ } void SEND(void) /*定义 SEND(void)函数 */ { BIT_COUNT=8。 /*位数为 8*/ CS=0。 /*片选有效 */ LONG_DELAY()。 /*长延时 */ SEND_LOOP:CY=data_out7。 /*将 data_out7 赋值给 cy,为进位的位, cy复位即 cy=0*/ DAT=CY。 /*将进位赋值给 DAT*/ CLK=1。 /*时钟高电平,它变成高电平以后, HD7279 延时 T6 才输出数据 */ AA=DATA_OUT。 /*将输出数据复制给 AA*/ AA=_crol_(AA,1)。 /*循环左移 */ DATA_OUT=AA。 /*将左移后的数据输出 */ SHORT_DELAY()。 /*短延时 */ CLK=0。 /*CLK 变低电平 */ SHORT_DELAY。 /*延时 T7*/ BIT_COUNT。 /*位数自 减一 */ if(BIT_COUNT0)/*判断位数是不是 0*/ goto SEND_LOOP。 /*DJNZ /*跳至 SEND_LOOP*/ BIT_COUNT,SEND_LOOP。 /**/ DAT=0。 /**/ } void LONG_DELAY(void)/*定义长延时函数 */ { TIMER=25。 /*计数初值 25*/ DELAY_LOOP:TIMER。 /*延时循环 自减一 */ if(TIMER0) goto DELAY_LOOP。 }/*RET*/ void SHORT_DELAY(void)/*定义短延时函数 */ { TIMER=4。 /*MOV TIMER,4。 /*计数初值为 4*/ DELAY_LOOP1:TIMER。 /*延时循环 自减一 */ if(TIMER0)/**/ goto DELAY_LOOP1。 /*跳至 DELAY_LOOP1*/ } void RECEIVE(void) /*定义 RECEIVE(void)函数 */ { BIT_COUNT=8。 /*MOV BIT_COUNT,8*/ DAT=1。 / *SETB DAT*/ LONG_DELAY()。 /*CALL LONG_DELAY*/ RECEIVE_LOOP:CLK=1。 /*SETB CLK*/ SHORT_DELAY()。 /*CALL SHORT_DELAY*/ AA=DATA_IN。 /*MOV A,DATA_IN*/ AA=_crol_(AA,1)。 /*RL AA*/ DATA_IN=AA。 /*MOV DATA_IN,A*/ CY=DA。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。