<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051F的AD UART0 KEY FLASH TIME3程序

          基于C8051F的AD UART0 KEY FLASH TIME3程序

          作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
          //------------------------------------------------------------------------------------
          // Main.c
          //------------------------------------------------------------------------------------
          // Copyright (C) 2011 Shenyang 213.
          // Wbr
          // Tool chain: KEIL Full c
          //
          //#pragma CD OE DB SB // Compilation directives
          //------------------------------------------------------------------------------------
          // Includes
          //------------------------------------------------------------------------------------
          #include "C8051F340.h"
          #include "1302.h"
          #include "lcd.h"
          #include
          #define SYSCLK 12000000 // SYSCLK frequency in Hz
          //------------------------------------------------------------------------------------
          // Global CONSTANTS
          //------------------------------------------------------------------------------------
          #define uint unsigned int
          #define uchar unsigned char
          #define T 1800 //運(yùn)算電量的時(shí)間單位1800是半個(gè)小時(shí)(1800秒)
          #define N 11
          sfr16 TMR2 = 0xCC; //定義成16位地址
          sfr16 ADC0 = 0xBD;
          uint xdata ADCbuffer1[N];
          uint count;
          uint sum = 0;
          uchar ADcount = 0;
          uchar ADsend;
          uchar Page = 1,direction = 1;
          uchar set = 0,ent = 0,Tset;
          uchar TH,TL,TT1,TT2,TT3; //用來(lái)拆分送顯示的變量
          uchar keybuffer[6];
          uchar BGset=0; //BGset背光關(guān),開(kāi)控制量,如果沒(méi)有鍵按下超過(guò)1分鐘,關(guān)閉背光!有鍵按下立刻開(kāi)背光
          bit Disptime,PDD;
          sbit DI1 = P0^0 ;
          sbit DI2 = P0^1 ;
          sbit DE = P0^6 ;
          sbit BLK = P0^7 ; //LCD背光
          sbit JC1 = P2^7 ;
          sbit JC2 = P3^1 ;
          sbit JC3 = P3^2 ;
          sbit JC4 = P3^3 ;
          sbit DI3 = P3^6 ;
          sbit DI4 = P3^7 ;
          uchar code CPT_c[20] _at_ 0x8000; //7k的地址左右//充電時(shí)間要存入的FLASH地址,保存3天的時(shí)間和功率
          uchar xdata CPT_x[20] _at_ 0x8000;
          uchar code FPT_c[20] _at_ 0x8200; //7k的地址左右//放電時(shí)間要存入的FLASH地址,保存3天的時(shí)間和功率
          uchar xdata FPT_x[20] _at_ 0x8200;
          uchar xdata Between[20]; //0~11時(shí)間12~19存功率
          ////////////////////////////////////
          extern void Init_Device(void);
          extern uchar time_buf1[8] ;
          uchar code tab1[]={
          "實(shí)時(shí)電壓:"
          };
          uchar code tab2[]={
          "實(shí)時(shí)電流:"
          };
          uchar code tab3[]={
          "實(shí)時(shí)功率:"
          };
          uchar code tab4[]={
          "運(yùn)行狀態(tài):"
          };
          uchar code tab5[]={
          "歷史充電記錄"
          };
          uchar code tab6[]={
          "歷史放電記錄"
          };
          uchar code tab7[]={
          "當(dāng)前時(shí)間"
          };
          uchar code tab8[]={
          "修改時(shí)間"
          };
          uchar code tab9[]={
          "暫無(wú)記錄"
          };
          uchar code run1[]={
          "停機(jī)"
          };
          uchar code run2[]={
          "充電"
          };
          uchar code run3[]={
          "放電"
          };
          uchar code run4[]={
          "故障"
          };
          //uchar code run5[]={
          //"系統(tǒng)故障信息"
          //};
          uchar code run5[]={
          "感謝您的使用"
          };
          uchar code run6[]={
          "本日累計(jì)充電"
          };
          uchar code run7[]={
          "本日累計(jì)放電"
          };
          uchar code run8[]={
          "版本號(hào):V1.0"
          };
          uchar xdata TAB[11]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20};//數(shù)字0~9及顯示空白0x20
          //----------------------------------------
          // Function PROTOTYPES
          //----------------------------------------
          void delayms(uint ms)
          {
          uint Temp;
          while(ms--)
          {
          Temp=1000;
          while(Temp--);
          {
          //PCA0CPH2 = 1;
          }
          }
          }
          /*void Timer2_Init(int count2s)
          {
          TMR2CN = 0x00;
          TMR2L = -count2s;
          TMR2 = 0xffff;
          ET2 = 1;
          TR2 = 1;
          }*/
          //================================
          //中值濾波程序
          //================================
          void filter()
          {
          static uchar count,i,j;
          uint value_buf[N];
          uint temp;
          sum=0;
          for(count=0;count
          {
          value_buf[count] = ADCbuffer1[count];;
          }
          for (j=0;j
          {
          for (i=0;i
          {
          if ( value_buf[i]>value_buf[i+1] )
          {
          temp = value_buf[i];
          value_buf[i] = value_buf[i+1];
          value_buf[i+1] = temp;
          }
          }
          }
          for(count=1;count
          sum += value_buf[count];
          }
          void Uart0_SendData(uchar dat0)
          {
          SBUF0=dat0; //寫(xiě)SBUF0,開(kāi)始發(fā)送
          while(TI0==0); //等待發(fā)送
          TI0=0; //清發(fā)送標(biāo)志位
          }
          void Flash_Erase_CTP() //flash擦除充電時(shí)間和功率
          {
          EA =0;
          VDM0CN = 0x80; // 使能VDD監(jiān)視器
          RSTSRC = 0x02; // 上電復(fù)位VDD監(jiān)視器復(fù)位標(biāo)志
          FLSCL=0X80; // 使能FLASH單穩(wěn)態(tài)定時(shí)器,F(xiàn)LASH讀時(shí)間SYSCLK<=25MHz
          FLKEY = 0xA5; // 寫(xiě)入關(guān)鍵字
          FLKEY = 0xF1; // 寫(xiě)入關(guān)鍵字
          PSCTL |= 0x03; //允許擦,允許寫(xiě)
          CPT_x[0] = 0;
          PSCTL &= ~0x03; //禁止寫(xiě),禁止擦
          //EA = 1;
          }
          void Flash_Program_CTP() //flash寫(xiě)入充電時(shí)間時(shí)間和功率
          {
          uchar j;
          EA =0;
          //Flash_Erase_CTP();
          VDM0CN = 0x80; //使能VDD監(jiān)視器
          RSTSRC = 0x02; //上電復(fù)位/VDD監(jiān)視器復(fù)位標(biāo)志
          FLSCL=0X80; //使能FLASH單穩(wěn)態(tài)定時(shí)器,F(xiàn)LASH讀時(shí)間SYSCLK<=25MHz
          PSCTL |= 0x01; //write enable
          for(j =0;j<20;j++)
          {
          FLKEY = 0xa5;
          FLKEY = 0xf1;
          CPT_x[j] = Between[j];
          //delayms(30);
          }
          PSCTL &= ~0x01; //禁止寫(xiě)
          EA = 1;
          }
          //***********************************
          void Flash_Erase_FTP() //flash擦除放電時(shí)間和功率
          {
          EA =0;
          VDM0CN = 0x80; // 使能VDD監(jiān)視器
          RSTSRC = 0x02; // 上電復(fù)位VDD監(jiān)視器復(fù)位標(biāo)志
          FLSCL=0X80; // 使能FLASH單穩(wěn)態(tài)定時(shí)器,F(xiàn)LASH讀時(shí)間SYSCLK<=25MHz
          FLKEY = 0xA5; // 寫(xiě)入關(guān)鍵字
          FLKEY = 0xF1; // 寫(xiě)入關(guān)鍵字
          PSCTL |= 0x03; //允許擦,允許寫(xiě)
          FPT_x[0] = 0;
          PSCTL &= ~0x03; //禁止寫(xiě),禁止擦
          //EA = 1;
          }
          void Flash_Program_FTP() //flash寫(xiě)入放電時(shí)間和功率
          {
          uchar j;
          //Flash_Erase_FTP();
          EA = 0;
          VDM0CN = 0x80; //使能VDD監(jiān)視器
          RSTSRC = 0x02; //上電復(fù)位/VDD監(jiān)視器復(fù)位標(biāo)志
          FLSCL=0X80; //使能FLASH單穩(wěn)態(tài)定時(shí)器,F(xiàn)LASH讀時(shí)間SYSCLK<=25MHz
          PSCTL|=0x01; //write enable
          for(j =0;j<20;j++)
          {
          FLKEY = 0xa5;
          FLKEY = 0xf1;
          FPT_x[j] = Between[j];
          }
          PSCTL &= ~0x01; //禁止寫(xiě)
          EA = 1;
          }
          /*void Flash_Read()
          {
          static uchar j;
          for(j=0;j<3;j++)
          {
          timer[j]=Ftime_c[j];
          }
          }*/
          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: C8051FADUART0TIME

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();