?? hardware.lst
字號(hào):
675 //-------------------------------------------------------------------------------------------------
676 void ReadExternFlash(unsigned char xdata *destination,unsigned char xdata *source,unsigned int uiLength)
677 {
678 1 unsigned int xdata uiL;
679 1
680 1 source = source + FLASHFIRSTADDRESS;
681 1
682 1 EA = 0;
683 1 for (uiL=0; uiL<uiLength; uiL++)
684 1 {
685 2 *destination = *source;
686 2 source++;
687 2 destination++;
688 2 }
689 1 EA = 1;
690 1 }
691
692 //--------------------------------------------------------------------------------------------------
693 //函數(shù)名稱:void ReadFlashDefaultPara(unsigned char xdata *destination,unsigned char code *source,unsigned
- int uiLength)
694 //功 能:根據(jù)長(zhǎng)度將FLASH存儲(chǔ)器源地址的內(nèi)容讀出來(lái)放到目的地址中
695 //輸入?yún)?shù):目的地址、源地址、數(shù)據(jù)長(zhǎng)度 ,源地址是相對(duì)地址,程序中所用的地址為基址+相對(duì)地址
696 //返 回:無(wú)
697 //完成日期:4/13/2007
698 //-------------------------------------------------------------------------------------------------
699 void ReadFlashDefaultPara(unsigned char xdata *destination,unsigned char code *source,unsigned int uiLengt
-h)
700 {
701 1 unsigned int xdata uiL;
702 1
703 1 EA = 0;
704 1
-
-
-
-
705 1 for (uiL=0; uiL<uiLength; uiL++)
706 1 {
707 2 *destination = *source;
708 2 source++;
709 2 destination++;
710 2 }
711 1 EA = 1;
712 1 }
713
714 //--------------------------------------------------------------------------------------------------
715 //函數(shù)名稱:unsigned char GetCANAdress(void)
716 //功 能:通過(guò)P5口得到通信的地址
717 //輸入?yún)?shù):無(wú)
718 //返 回:CAN通信地址
719 //完成日期:4/13/2007
720 //-------------------------------------------------------------------------------------------------
721 unsigned char GetCANAdress(void)
722 {
723 1 unsigned char uchCANAdress;
724 1
725 1 uchCANAdress = P5 & 0x1f;
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 13
726 1 return uchCANAdress;
727 1 }
728
729 //--------------------------------------------------------------------------------------------------
730 //函數(shù)名稱:void InitRuningLEDControl(void)
731 //功 能:初始化燈閃爍的定時(shí)器
732 //輸入?yún)?shù):無(wú)
733 //返 回:無(wú)
734 //完成日期:4/13/2007 定時(shí)25.6ms中斷一次
735 //-------------------------------------------------------------------------------------------------
736 void InitRuningLEDControl(void)
737 {
738 1 TF2 = 0; // 清除標(biāo)志位
739 1 RCLK0 = 0;
740 1 TCLK0 = 0;
741 1 CPRL2 = 0;
742 1 TR2 = 1; //配置定時(shí)器2為自動(dòng)重裝載方式
743 1 EXEN2 = 0;
744 1 CT2 = 0; //由系統(tǒng)時(shí)鐘提供時(shí)鐘
745 1
746 1 CKCON &= 0xdf;
747 1 TL2 = 0xf0;
748 1 TH2 = 0xf0;
749 1 RCAP2L = 0x00;
750 1 RCAP2H = 0x48;
751 1 ET2 = 0; //禁止中斷
752 1 PT2 = 0; //設(shè)置為低優(yōu)先級(jí)
753 1 }
754
755 //--------------------------------------------------------------------------------------------------
756 //函數(shù)名稱:void RuningLEDStart(void)
757 //功 能:開(kāi)始燈的閃爍控制
758 //輸入?yún)?shù):無(wú)
759 //返 回:無(wú)
760 //完成日期:4/13/2007
761 //-------------------------------------------------------------------------------------------------
762 void RuningLEDStart(void)
763 {
764 1 ET2 = 1;
765 1 }
766
767 //--------------------------------------------------------------------------------------------------
768 //函數(shù)名稱:void RuningLEDStop(void)
769 //功 能:停止燈的閃爍控制
770 //輸入?yún)?shù):無(wú)
771 //返 回:無(wú)
772 //完成日期:4/13/2007
773 //-------------------------------------------------------------------------------------------------
774 void RuningLEDStop(void)
775 {
776 1 ET2 = 0;
777 1 }
778
779 //--------------------------------------------------------------------------------------------------
780 //函數(shù)名稱:void ControlRuningLED_isr(void) interrupt 5
781 //功 能:控制OK燈的閃爍情況
782 //輸入?yún)?shù):無(wú)
783 //返 回:無(wú)
784 //完成日期:4/13/2007
785 //-------------------------------------------------------------------------------------------------
786 void ControlRuningLED_isr(void) interrupt 5
787 {
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 14
788 1 static unsigned int xdata uiCountValue = 0;
789 1 static unsigned char xdata uchLEDControlFlag = 0;
790 1
791 1 uiCountValue++;
792 1 TF2 = 0;
793 1 if (uiCountValue >= 3)
794 1 {
795 2 if (uchLEDControlFlag == 0)
796 2 {
797 3 HWOKLEDControl(0); //燈亮
798 3 uchLEDControlFlag = 1;
799 3 uiCountValue = 0;
800 3 }
801 2 else
802 2 {
803 3 HWOKLEDControl(1); //燈滅 他們的控制受系統(tǒng)OK狀態(tài)控制
804 3 uchLEDControlFlag = 0;
805 3 uiCountValue = 0;
806 3 }
807 2 }
808 1
809 1 }
810
811 //*************************************************
812 // ADC0初始化 *
813 //*************************************************
814 void ADC0_Init (void)
815 {
816 1 ADC0CN = 0x44; //ADC0 控制
817 1 AMX0CF = 0x00; //單端輸入
818 1 AMX0SL = 0x00; //采樣通道初始化
819 1 ADC0CF = 0x58; //增益,時(shí)鐘=22.1184/6M
820 1 REF0CN=0x02; //外部參考
821 1 AD0EN=1; //ADC0使能
822 1 EIE2|=0x02; //允許ADC中斷
823 1 EIP2 |= 0x02; //采樣ADC0中斷為高優(yōu)先級(jí)
824 1 }
825
826 //*************************************************
827 // 定時(shí)器3初始化 *
828 //*************************************************
829 void SetSampleRate(int counts)
830 {
831 1 TMR3CN = 0x00; // 停止定時(shí)器3,清除TF3,使用SYSCLK
832 1 TMR3RL = -counts; // 初始化重載值
833 1 TMR3 = 0xffff; // 立即重裝載
834 1 EIE2 &= ~0x01; // 禁止定時(shí)器3中斷
835 1 TMR3CN |= 0x04; // 啟動(dòng)定時(shí)器3
836 1 }
837
838 //-------------------------------------------------------------------------
839 //函數(shù)名稱:void SetSampleTypeHW(unsigned char uchChannelType)
840 //功 能:將通道類型設(shè)置到硬件模塊中
841 //輸入?yún)?shù):通道類型
842 //返 回:無(wú)
843 //完成日期:4/16/2007
844 //-------------------------------------------------------------------------
845 void SetSampleTypeHW(unsigned char uchChannelType)
846 {
847 1 SampleStopControl(); //HHH
848 1 if (((uchChannelType > 12) && (uchChannelType < 19)) || ((uchChannelType > 20) && (uchChannelType < 23))
-|| (uchChannelType == 28))
C51 COMPILER V7.10 HARDWARE 09/18/2008 14:09:27 PAGE 15
849 1 {
850 2 uchSampleType = uchChannelType;
851 2 }
852 1 else
853 1 {
854 2 uchSampleType = 13; //設(shè)定類型,不在范圍之內(nèi)默認(rèn)軸位置
855 2 }
856 1 // SampleStartControl();
857 1 }
858
859 //-------------------------------------------------------------------------
860 //函數(shù)名稱:void SetInitChannel(void)
861 //功 能:設(shè)置通道初始化
862 //輸入?yún)?shù):無(wú)
863 //返 回:無(wú)
864 //完成日期:4/16/2007
865 //-------------------------------------------------------------------------
866 void SetInitChannel(void)
867 {
868 1 switch(uchSampleType)
869 1 {
870 2 case 13: //加速度輸入 輸出加速度
871 2 AMX0SL = 0x00;
872 2 break;
873 2 case 14: //加速度輸入 輸出速度
874 2 AMX0SL = 0x04;
875 2 break;
876 2 case 15: // 加速度輸入 輸出位移
877 2 AMX0SL = 0x00;
878 2 break;
879 2 case 16: // 速度輸入 輸出速度
880 2 AMX0SL = 0x00;
881 2 break;
882 2 case 17: //速度輸入 輸出位移
883 2 AMX0SL = 0x04;
884 2 break;
885 2 case 18: // 位移輸入 輸出位移
886 2 AMX0SL = 0x00;
887 2 break;
888 2 case 21: // 渦流+速度 輸出復(fù)合式振動(dòng)
889 2 AMX0SL = 0x00;
890 2 break;
891 2 case 22: //LVDT輸入 輸出機(jī)殼膨脹
892 2 AMX0SL = 0x01;
893 2 break;
894 2 case 28: //LVDT輸入 輸出機(jī)殼膨脹
895 2 AMX0SL = 0x01;
896 2 break;
897 2 default:
898 2 AMX0SL = 0x00;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -