📄 dzkzqv11.lst
字号:
590 3 dis_red[x]=dis_red[x-1];
591 3 dis_grn[x]=dis_grn[x-1];
592 3 dis_blu[x]=dis_blu[x-1];
593 3 }
594 2 dis_red[0]=col7cr[x];
595 2 dis_grn[0]=col7cg[x];
596 2 dis_blu[0]=col7cb[x];
597 2
598 2 sendall();
599 2 delay1s(speed);
600 2 }
601 1 delay1s(speed);
602 1 for(j=0;j<256;j++)
603 1 {
604 2 rs=dis_red[XX-1];
605 2 gs=dis_grn[XX-1];
606 2 bs=dis_blu[XX-1];
607 2 for(x=XX-1;x>0;x--)
608 2 {
609 3 dis_red[x]=dis_red[x-1];
610 3 dis_grn[x]=dis_grn[x-1];
611 3 dis_blu[x]=dis_blu[x-1];
612 3 }
613 2 dis_red[0]=rs;
C51 COMPILER V7.06 DZKZQV11 10/19/2004 09:30:18 PAGE 11
614 2 dis_grn[0]=gs;
615 2 dis_blu[0]=bs;
616 2 sendall();
617 2 delay(speed);
618 2 }
619 1 //*******************************************
620 1 for(j=0;j<XX;j++)
621 1 {for(x=XX-1;x>0;x--)
622 2 {
623 3 dis_red[x]=dis_red[x-1];
624 3 dis_grn[x]=dis_grn[x-1];
625 3 dis_blu[x]=dis_blu[x-1];
626 3 }
627 2 dis_red[0]=0;
628 2 dis_grn[0]=0;
629 2 dis_blu[0]=0;
630 2 sendall();
631 2 delay(speed);
632 2 }
633 1 }
634 //******************************
635 //发送显示内存数据到各灯管
636 //*******************************
637 void sendall(void)
638 {
639 1 uchar j;
640 1 for(j=0;j<XX-1;j++)
641 1 {TB81=1;
642 2 SBUF1=j+1;while(!TI1);TI1=0;
643 2 TB81=0;
644 2 send_del(50);
645 2 //send red
646 2 SBUF1=dis_red[j];
647 2 while(!TI1);TI1=0;
648 2 send_del(50);
649 2 //send greed
650 2 SBUF1=dis_grn[j];
651 2 while(!TI1);TI1=0;
652 2 send_del(50);
653 2 //***********bluer
654 2 SBUF1=dis_blu[j];
655 2 while(!TI1);TI1=0;
656 2 send_del(50);
657 2 }
658 1 led=!led;
659 1 }
660 //**********************************
661 //延时
662 //*******************************
663 void delay1s(uint j)
664 {
665 1 uint i;
666 1 while(j!=0)
667 1 {
668 2 for(i=0;i<800;i++);
669 2 j--;
670 2 }
671 1 ssp=1;
672 1 }
673 //*******************************
674 void delay(uint j)
675 {
C51 COMPILER V7.06 DZKZQV11 10/19/2004 09:30:18 PAGE 12
676 1 uint i;
677 1 while(j!=0)
678 1 {
679 2 for(i=0;i<ssp*256;i++);
680 2 j--;
681 2 }
682 1 ssp=1;
683 1 }
684 void send_del(uchar j)
685 {
686 1 while(j!=0)
687 1 {
688 2 j--;
689 2 }
690 1 }
691 //*******************************
692 void send_delay(void)
693 {
694 1 uchar j;
695 1 j=12;
696 1 while(j!=0)
697 1 {
698 2 j--;
699 2 }
700 1 }
701 //*******************************
702 void SomeNOP(void)
703 {
704 1 uchar i;
705 1 i=5;
706 1 while(i--);
707 1 }
708
709 /***************************************************************************/
710 void I2cDelay(unsigned int number) {
711 1 unsigned char temp;
712 1 for(;number!=0;number--) {
713 2 for(temp=112;temp!=0;temp--) {
714 3 }
715 2 }
716 1 }
717
718 /***************************************************************************/
719 void Start() {
720 1 SDA=1;
721 1 SCL=1;SomeNOP();
722 1 SDA=0;SomeNOP();
723 1 SCL=0;
724 1 }
725
726 /***************************************************************************/
727 void Stop() {
728 1 SCL=0;
729 1 SDA=0;SomeNOP();
730 1 SCL=1;SomeNOP();
731 1 SDA=1;
732 1 }
733
734 /***************************************************************************/
735 void Ack() {
736 1 SDA=0;
737 1 SCL=1;SomeNOP();
C51 COMPILER V7.06 DZKZQV11 10/19/2004 09:30:18 PAGE 13
738 1 SCL=0;SomeNOP();
739 1 SDA=1;
740 1 }
741
742 /***************************************************************************/
743 void NoAck() {
744 1 SDA=1;
745 1 SCL=1;SomeNOP();
746 1 SCL=0;
747 1 }
748
749 /***************************************************************************/
750 bit TestAck() {
751 1 bit ErrorBit;
752 1 SDA=1;
753 1 SCL=1;
754 1 ErrorBit=SDA;SomeNOP();
755 1 SCL=0;
756 1 return(ErrorBit);
757 1 }
758
759 /***************************************************************************/
760 Write8Bit(unsigned char input)
761 {
762 1 unsigned char temp;
763 1 for(temp=8;temp!=0;temp--) {
764 2 SDA=(bit)(input&0x80);
765 2 SCL=1;
766 2 SCL=0;
767 2 input=input<<1;
768 2 }
769 1 }
770 /***************************************************************************/
771 void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) {
772 1 Start();
773 1 Write8Bit(WriteDeviceAddress);
774 1 TestAck();
775 1 Write8Bit(RomAddress);
776 1 TestAck();
777 1 for(;number!=0;number--) {
778 2 Write8Bit(*Wdata);
779 2 TestAck();
780 2 Wdata++;
781 2 }
782 1 Stop();
783 1 I2cDelay(10);
784 1 }
785 /***************************************************************************/
786 unsigned char Read8Bit() {
787 1 unsigned char temp,rbyte=0;
788 1 for(temp=8;temp!=0;temp--) {
789 2 SCL=1;
790 2 rbyte=rbyte<<1;
791 2 rbyte=rbyte|((unsigned char)(SDA));
792 2 SCL=0;
793 2 }
794 1 return(rbyte);
795 1 }
796 /***************************************************************************/
797 void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) {
798 1 // unsigned char temp,rbyte;
799 1 Start();
C51 COMPILER V7.06 DZKZQV11 10/19/2004 09:30:18 PAGE 14
800 1 Write8Bit(WriteDeviceAddress);
801 1 TestAck();
802 1 Write8Bit(RomAddress);
803 1 TestAck();
804 1 Start();
805 1 Write8Bit(ReadDviceAddress);
806 1 TestAck();
807 1 while(bytes!=1) {
808 2 *RamAddress=Read8Bit();
809 2 Ack();
810 2 RamAddress++;
811 2 bytes--;
812 2 }
813 1 *RamAddress=Read8Bit();
814 1 NoAck();
815 1 Stop();
816 1 }
817 //**************************************
818 void save(void)
819 {
820 1 uchar i;
821 1 uchar *sp;
822 1 sp=&send_buf[0];
823 1 for(i=0;i<16;i++)
824 1 {
825 2 Write24c02(sp,i*4,4);
826 2 sp+=4;
827 2 }
828 1 }
829 //*****************************************
830 // 串口中断服务程序
831 //*****************************************
832 void send(void) interrupt 4
833 {
834 1 uchar d;
835 1 if(!TI && RI && !frameok)
836 1 {RI=0;
837 2 d=SBUF;
838 2 if(pointer==0)
839 2 {if(d==ADD)
840 3 {subchk=d;send_buf[0]=d;TB8=1;senden=1;
841 4 send_delay();SBUF=d;while(!TI);TI=0;send_delay();
842 4 senden=0;SM2=0;TB8=0;pointer++;}//71
843 3 else if(d==0xff)
844 3 {subchk=d;SM2=0;pointer++;}
845 3
846 3 }
847 2 else
848 2 {if(pointer==64)
849 3 {send_buf[pointer]=d;
850 4 if(d==subchk)
851 4 {senden=1;send_delay();SBUF=subchk;while(!TI);send_delay();senden=0;TI=0;frameok=1;}
852 4 else
853 4 {senden=1;send_delay();SBUF=~subchk;while(!TI);send_delay();TI=0;senden=0;}
854 4 SM2=1;pointer=0;
855 4 }
856 3 else
857 3 {send_buf[pointer]=d;subchk+=d;pointer++;}
858 3 }
859 2 }//end if
860 1 }
861 //*************************************
C51 COMPILER V7.06 DZKZQV11 10/19/2004 09:30:18 PAGE 15
862 /*
863 void timer1() interrupt 1
864 {TL0=V_TL0;
865 TH0=V_TH0;
866 ms++;
867 if(ms>zhepe)
868 {timout=1;
869 ms=0;
870 }
871 }
872 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3216 ----
CONSTANT SIZE = 1032 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 71 57
IDATA SIZE = 120 ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -