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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機頻率計代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:454245 發表于 2018-12-25 11:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg52.h>
  2. bit timeint0,timeint1;
  3. unsigned char dispbuf[4];
  4. unsigned int period;
  5. unsigned int timecount=0;
  6. unsigned int count_1s;
  7. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //7段數碼管代碼表
  8. HEX_TO_BCD(unsigned int n)
  9. {
  10.         unsigned char i; //當顯示的頻率超出范圍,顯示EEEE報錯
  11.         if (n>9361)
  12.         for(i=0;i<4;i++)
  13.         dispbuf[i]=0x0e;
  14.         else

  15.         {
  16.                 dispbuf[3]=n/1000; //取出千位字節
  17.                 dispbuf[2]=(n/100)%10; //取出百位字節
  18.                 dispbuf[1]=(n/10)%10; //取出十位字節
  19.                 dispbuf[0]=n%10; //取出個位字節
  20. }
  21. }
  22. void scandisp(void) //顯示子程序,
  23. //將顯示緩存數組中的BCD碼掃描并顯示在數碼管上
  24. {
  25.         unsigned char posi=0x01;
  26.         unsigned char i,j,temp;
  27.         for(i=0;i<4;i++) //依次選中4個數碼管
  28.         {
  29.         temp=dispbuf[i];//查出字碼
  30.         temp=table[temp];//第三位顯示小數點
  31.         if(i==1)
  32.                 {
  33.                 for(j=0;j<200;j++)
  34.                 {
  35.                 P2=posi;
  36.                 P0=temp|0x80;
  37.                 }
  38.                 }
  39.         else
  40.         {
  41.         for(j=0;j<200;j++)
  42.         {
  43.         P2=posi;
  44.         P0 =temp;
  45.         }
  46.         }
  47. //依次點亮字位
  48. posi<<=1;
  49. }
  50. }
  51. void INIT_TMR1INT(void) //定時器初始化了程序,定義了兩種
  52. {
  53. //定時/計數器0工作定時器方式,定時/計數器1工作在計數器方式
  54.         TMOD=0x51;
  55.         ET1=1;//中斷0開中斷
  56.         ET0=1;//CPU開中斷
  57.         EA=1;
  58.         count_1s=0;//啟動定時/計數器0開始定時
  59.         TR0=1;
  60.         TR1=1;
  61. }
  62. void time0(void) interrupt 1 //定時器0中斷服務程序,系統自動調用,
  63. //每2.5ms執行一次
  64. {
  65.         TH0=0xf6;
  66.         TH1=0x3c;//每次定時是2.5 ms, 40次即0.1s
  67.         if(++count_1s>40)
  68.         {
  69.                 count_1s=0;//每0.1s對計數器1所計數值進行統計
  70.                 timecount=TH1*256+TL1;
  71.                 TH1=0;
  72.                 TL1=0;//精確到小數點后1位,以KHz為單位
  73.                 period=timecount/10;//四舍五入顯示
  74.                 if((timecount%10)>4)
  75.                 period++;
  76.                 timecount=0;
  77.                 HEX_TO_BCD(period);
  78.         }
  79. }
  80. void timer1(void) interrupt 3 //定時器1中斷服務程序,溢出后中斷
  81. {
  82.         TH1=0x00;
  83.         TL1=0x00;
  84. }
  85. void main(void) //主函數
  86. {
  87. //初始化
  88. INIT_TMR1INT();
  89.         while(1)
  90.         {
  91. //顯示子程序
  92.                 scandisp();
  93.         }
  94. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-12-25 19:21 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲在线免费观看 | 久久精品国产一区二区电影 | 天天爱综合 | 欧美精品在线一区二区三区 | 亚洲精品无人区 | 亚洲永久免费观看 | 91久久久久久久久久久 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 亚洲欧美在线视频 | 亚洲高清在线视频 | 91麻豆精品国产91久久久久久久久 | 欧美日韩高清在线一区 | 亚洲精品乱 | 国产日韩欧美 | 久久久国产亚洲精品 | 精品一区国产 | 一区二区在线不卡 | 亚洲人成一区二区三区性色 | 国产综合网站 | 日韩精品中文字幕一区二区三区 | 精品国产乱码久久久久久图片 | 天天干夜夜操 | 国产精品美女视频 | www.男人天堂.com | 黄在线| 99re在线视频| 中文字幕四虎 | 日本不卡一区二区三区在线观看 | 久久国产成人 | 午夜影院网站 | 日韩电影在线 | 91麻豆精品国产91久久久久久 | 久久久日韩精品一区二区三区 | 日韩av一区在线观看 | 久久久精品视 | 天天操夜夜爽 | 精品国产免费一区二区三区演员表 | 免费h在线 | 成人免费视频7777777 | 午夜看片 | 自拍偷拍亚洲视频 |