1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 記錄一個數字直流電壓表的作業 [打印本頁]

作者: Eibles    時間: 2018-6-21 14:39
標題: 記錄一個數字直流電壓表的作業
本帖最后由 Eibles 于 2018-6-21 14:41 編輯
  1. #include<reg51.h>
  2. #define uchar unsigned char //定義數據類型
  3. #define uint unsigned int        //定義數據類型
  4. sbit P2_4=P2^4;
  5. sbit ST=P2^5;
  6. sbit EOC=P2^6;
  7. sbit OE=P2^7;
  8. sbit p2_0=P2^0;
  9. sbit p2_1=P2^1;
  10. sbit p2_2=P2^2;
  11. sbit p2_3=P2^3;
  12. uchar code led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //建立0-9字模

  13. void delay0(void)
  14. {
  15.         uchar i,j;
  16.         for(i=0;i<10;i++)
  17.         for(j=0;j<100;j++);
  18. }
  19. timer0()interrupt 1
  20. {
  21.         P2_4=!P2_4;                                      //改變電平狀態
  22. }
  23. void main(void)
  24. {
  25.         uchar k;
  26.         uint l;   
  27.         TMOD=0x02;                    //定時器T0方式2       
  28.         TH0=(256-100)%256;            //0.1ms定時,裝載初始值
  29.         TL0=(256-100)%256;
  30.         IE=0x82;
  31.         EA= 1;                                          //開啟全局中斷
  32.         ET0= 1;
  33.         TR0=1;                                          //啟動定時器0
  34.         P2=0x4f;                      //初始化 P2口
  35.         while(1)
  36.         {
  37.                 ST=0;                                                  //發出啟動脈沖信號
  38.                 delay0();
  39.                 ST=1;
  40.                 delay0();
  41.                 ST=0;
  42.                 while(EOC==1);                                  //查詢結束狀態
  43.                 delay0();
  44.                 OE=1;                                                  //OE置1信號
  45.                 k=P1;                                                  //將A/D結果賦值給k
  46.                 l=5000*((float)k/255);                  //計算電壓值       
  47.                 p2_3=0;                                                  //打開p2_3口
  48.                 P0=led_mod[l%10];                          //求個位
  49.                 delay0();
  50.                 p2_3=1;                                                  //關閉p2_3口
  51.                 p2_2=0;                                                  //打開p2_2口
  52.                 P0=led_mod[l/10%10];                  //求十位
  53.                 delay0();
  54.                 p2_2=1;                                                  //關閉p2_2口
  55.                 p2_1=0;                                                  //打開p2_1口
  56.                 P0=led_mod[l/100%10];                  //求百位
  57.                 delay0();
  58.                 p2_1=1;                                                  //關閉p2_1口
  59.                 p2_0=0;                                                  //打開p2_0口
  60.                 P0=led_mod[l/1000];                          //求千位
  61.                 delay0();
  62.                 p2_0=1;                                                  //關閉p2_0口
  63.         }
  64. }
復制代碼



2018621-143850.jpg (553.09 KB, 下載次數: 32)

2018621-143850.jpg





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1