久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1120|回復: 1
打印 上一主題 下一主題
收起左側

基于單片機頻率計的設計 求指導

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include "reg51.h"

  2. #define        uint8 unsigned short int

  3. uint8 i,k;

  4. /******  ???????  *******/
  5. void delay_us(int t)
  6. {
  7.     i = t;
  8.     while(i--)
  9.         {}
  10. }
  11. /*******************************/

  12. /*************************************  ?????  **************************************/
  13. uint8 code smg_data[11] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//?????????(0-9????)
  14. uint8 smg7,smg6,smg5,smg4,smg3,smg2,smg1,smg0;//???????:???????...???
  15. //?????????
  16. void smg(int a)
  17. {
  18.     smg0 = 8;
  19.         smg1 = 6;
  20.         smg2 = 6;
  21.         smg3 = (a%100000)/10000;
  22.     smg4 = (a%10000)/1000;//??????
  23.         smg5 = (a%1000)/100;//??????
  24.         smg6 = (a%100)/10;//??????
  25.         smg7 = a%10;//??????

  26.         P2 = 0xf7;//1111 0000???8????
  27.         P0 = smg_data[smg7];
  28.         delay_us(200);
  29.         P0 = smg_data[10];//?????
  30.         delay_us(10);

  31.         P2 = 0xf6;//1111 0000???7????
  32.         P0 = smg_data[smg6];
  33.         delay_us(200);
  34.         P0 = smg_data[10];//?????
  35.         delay_us(10);

  36.         P2 = 0xf5;//1111 0000???6????
  37.         P0 = smg_data[smg5];
  38.         delay_us(200);
  39.         P0 = smg_data[10];//?????
  40.         delay_us(10);

  41.         P2 = 0xf4;//1111 0000???5????
  42.         P0 = smg_data[smg4];
  43.         delay_us(200);
  44.         P0 = smg_data[10];//?????
  45.         delay_us(10);

  46.         P2 = 0xf3;//1111 0000???4????
  47.         P0 = smg_data[smg3];
  48.         delay_us(200);
  49.         P0 = smg_data[10];//?????
  50.         delay_us(10);

  51.         P2 = 0xf2;//1111 0001???3????
  52.         P0 = smg_data[smg2];
  53.         delay_us(200);
  54.         P0 = smg_data[10];//?????
  55.         delay_us(10);

  56.         P2 = 0xf1;//1111 0010???2????
  57.         P0 = smg_data[smg1];
  58.         delay_us(200);
  59.         P0 = smg_data[10];//?????
  60.         delay_us(10);

  61.         P2 = 0xf0;//1111 0011???1????
  62.         P0 = smg_data[smg0];
  63.         delay_us(200);
  64.         P0 = smg_data[10];//?????
  65.         delay_us(10);
  66. }
  67. /****************************************************************************************/

  68. /**********  ?????  ***********/
  69. int count = 0;//????????
  70. //???????,?????1??
  71. void single_in() interrupt 2
  72. {
  73.     count++;//??????,???1
  74. }
  75. /***********************************/

  76. /*******************  ???????  ********************/
  77. uint8 flag = 1;//??????????
  78. uint8 time0_num = 0;//???0????
  79. int fr_cest = 0;//????
  80. void timer0() interrupt 1
  81. {
  82.     TH0 = 0x3c;//???0????,?????50??,65536-50000=3cb0
  83.         TL0 = 0xb0;
  84.         time0_num++;//???0????
  85.         if(time0_num>=20&&flag==0)//???0????20?,???1?,??????
  86.         {
  87.             EX1 = 0;//??????,??????
  88.                 fr_cest = count;//????
  89.                 time0_num = 0;//???0?????0
  90.                 flag = 1;//??????
  91.         }
  92.         else if(time0_num>=20&&flag==1)
  93.         {
  94.             EX1 = 1;//??????,?????
  95.                 count = 0;//??????0
  96.                 time0_num = 0;//???0?????0
  97.                 flag = 0;//???????
  98.         }
  99. }
  100. /*********************************************************/

  101. /****************************  ?????  ******************************/
  102. void interrupt_init()
  103. {
  104.     TMOD = 0x11;    //0001 0001  T1????0  T1??????  01,T1????1        T0????0  T0??????  01,T0????1
  105.     TCON = 0x14;    //0001 0100  T1????0  T1????  T0????0  T0????        ??1????0  ??1?????  ??0????0  ??0????
  106.         IP = 0x09;      //0000 1001         --  --         --  ?????????        T1???????  ????1?????  T0???????  ????0?????
  107.         IE = 0x86;      //1000 0110         ?????  --  --  ??????        ??T1??  ??????1  ??T0??  ??????0  
  108. }
  109. /***********************************************************************/

  110. void main()
  111. {
  112.     interrupt_init();//?????
  113.         while(1)
  114.         {
  115.             if(flag==1)
  116.                 {
  117.                     if(fr_cest>10000)
  118.                         {
  119.                             P1 = 0x01;
  120.                         }
  121.                         else if(fr_cest<100)
  122.                         {
  123.                             P1 = 0x04;
  124.                         }
  125.                         else
  126.                         {
  127.                             P1 = 0x00;
  128.                         }
  129.                     smg(fr_cest);
  130.                 }
  131.                 else
  132.                 {
  133.                     P1 = 0x02;
  134.                 }
  135.         }
  136. }
復制代碼

所有資料51hei附件下載:
基于單片機頻率計的設計.7z (79.81 KB, 下載次數: 11)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1057947 發表于 2022-12-16 20:01 | 只看該作者
求仿真的使用手冊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色三级在线 | 99精品国产一区二区 | 欧美一区二区在线视频 | 久久在线播放 | 最新免费黄色网址 | 国产午夜精品一区二区三区嫩草 | 精品欧美一区二区精品久久 | 亚洲嫩草| 少妇性bbb搡bbb爽爽爽欧美 | 久久国产影院 | 91免费网站入口 | 久热久草| 欧美激情三区 | 中文字幕在线观看一区二区三区 | 色哥网| 亚洲精品久久久 | 国产理论在线观看 | 国产麻豆一区二区 | 成人在线免费观看网站 | 国产理论在线 | 精品久久一区二区三区 | 99热精品在线观看 | 婷婷六月激情 | 免费在线小视频 | 久久激情小说 | 日韩精品福利 | 国产精品区二区三区日本 | 免费观看全黄做爰的视频 | 亚洲三级黄色片 | 欧美一区二区在线视频 | 精品日韩一区 | 黄视频在线播放 | 91爱爱网 | 91看片淫黄大片 | 欧美午夜精品久久久久免费视 | 日韩在线视频播放 | 亚洲视频一区在线观看 | 天天干天天干 | 91看片在线观看 | 色香蕉视频 | 国产美女精品视频 |