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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機ADC分壓鍵盤源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:217558 發表于 2017-7-6 10:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設計程序,實現當按下ADC分壓鍵盤時,將相應的鍵號(01-16)通過兩片具有SPI接口的74HC595芯片驅動最右端兩個7段數碼管顯示,其余6個數碼管關閉
將adc分壓按鍵按下時的模擬輸入電壓值送數碼管顯示,比如4.995v時,顯示4.995

單片機源程序如下:
  1. #include "reg51.h"
  2. #define TIMS 65500
  3. #define TIMS1 3036
  4. #define SSIG      1
  5. #define SPEN      1
  6. #define DORD      0
  7. #define MSTR      1
  8. #define CPOL      1
  9. #define CPHA      1
  10. #define SPR1      0
  11. #define SPR0      0
  12. #define SPEED_4   0
  13. #define SPEED_16  1
  14. #define SPEED_64  2
  15. #define SPEED_128 3

  16. #define SPIF      0x80
  17. #define WCOL      0x40

  18. sfr SPSTAT =0xCD;
  19. sfr SPCTL  =0xCE;
  20. sfr SPDAT  =0xCF;

  21. sfr AUXR   =0x8E;
  22. sfr AUXR1  =0XA2;
  23. sfr CLK_DIV=0x97;
  24. sfr P5=0xC8;

  25. sbit HC595_RCLK=P5^4;
  26. sbit EADC=IE^5;

  27. #define ADC_POWER     0x80
  28. #define ADC_FLAG      0x10
  29. #define ADC_START     0x08
  30. #define ADC_SPEEDLL   0x00
  31. #define ADC_SPEEDL    0x20
  32. #define ADC_SPEEDH    0x40
  33. #define ADC_SPEEDHH   0x60

  34. sfr ADC_CONTR =0xBC;
  35. sfr ADC_RES   =0xBD;
  36. sfr ADC_RESL  =0xBE;
  37. sfr P1ASF     =0x9D;


  38. unsigned char ch=4;

  39. unsigned int  a, b, c, d, e;
  40. float voltage=0;
  41. unsigned char tstr=0;
  42. unsigned char code t_display[16]={0x3F,0x06,0x5B,0x4F,
  43.                                       0x66,0x6D,0x7D,0x07,
  44.                                       0x7F,0x6F,0x77,0x7C,
  45.                                       0x39,0x5E,0x79,0x71
  46. };
  47. unsigned char code T_COM[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  48. unsigned char code Mant[6]={0xbf,0x86,0xdb,0xcf,0xe6,0xed};

  49. bit flag=0;
  50. unsigned m=0;

  51. void SPI_SendByte(unsigned char dat)
  52. {
  53.         SPSTAT=SPIF+WCOL;
  54.         SPDAT=dat;
  55.         while((SPSTAT & SPIF)==0);
  56.         SPSTAT=SPIF+WCOL;
  57. }

  58. void seg7scan(unsigned char index1,unsigned char index2)
  59. {
  60.         SPI_SendByte(~T_COM[index1]);
  61.         SPI_SendByte(t_display[index2]);
  62.         HC595_RCLK=1;
  63.         HC595_RCLK=0;
  64. }

  65. void Mscan(unsigned char index1,unsigned char index2)
  66. {
  67.         SPI_SendByte(~T_COM[index1]);
  68.         SPI_SendByte(Mant[index2]);
  69.         HC595_RCLK=1;
  70.         HC595_RCLK=0;
  71. }
  72. void timer_0() interrupt 1
  73. {
  74.         flag=1;        
  75. }

  76. void adc_int() interrupt 5
  77. {
  78.         unsigned char i=0;
  79.         ADC_CONTR &=!ADC_FLAG;
  80.         
  81.         voltage=((ADC_RES*4+ADC_RESL)*5.0)/1024;
  82.         e=voltage*1000;
  83.         a=e/1000;
  84.         
  85.         b=(e%1000)/100;
  86.                 c=e%100/10;
  87.         d=e%10;
  88.         ADC_CONTR=ADC_POWER |ADC_SPEEDLL | ADC_START | ch;
  89. }

  90. void main()
  91. {
  92.         unsigned char i;
  93.         unsigned int j=0;
  94.         SPCTL=(SSIG<<7)+(SPEN<<6)+(DORD<<5)+(MSTR<<4)
  95.              +(CPOL<<3)+(CPHA<<2)+SPEED_4;
  96.   CLK_DIV=0x00;
  97.         TL0=TIMS;
  98.         TH0=TIMS>>8;
  99.   AUXR&=0x3F;
  100.         AUXR1=0X08;
  101.         TMOD=0x00;
  102.         TR0=1;
  103.         ET0=1;
  104.         P1ASF=0x10;
  105.         ADC_RES=0;
  106.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL | ADC_START | ch;
  107.         for(j=0;j<10000;j++);
  108.         EADC=1;
  109.         EA=1;
  110.         while(1)
  111.         {
  112.                 if(flag==1)
  113.                 {
  114.                   flag=0;

  115. ……………………

  116. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
新建文件夾.rar (29.92 KB, 下載次數: 44)


評分

參與人數 3黑幣 +109 收起 理由
MJ2233 + 4 贊一個!
mervinol + 5 共享資料的黑幣獎勵!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2017-7-7 04:56 | 只看該作者
好資料,51hei有你更精彩
回復

使用道具 舉報

板凳
ID:88606 發表于 2017-7-7 08:44 | 只看該作者
看看是不是STC的
回復

使用道具 舉報

地板
ID:362846 發表于 2018-7-2 09:36 | 只看該作者
很棒很棒
回復

使用道具 舉報

5#
ID:362846 發表于 2018-7-2 09:43 | 只看該作者
特別棒的!
回復

使用道具 舉報

6#
ID:362846 發表于 2018-7-2 09:47 | 只看該作者
給力 很給力
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区精品 | 国产精品国产三级国产aⅴ原创 | 97人人超碰| av第一页| 亚洲精品自拍视频 | 黄色毛片在线观看 | 国产亚洲成av人在线观看导航 | 欧美成人精品一区二区三区 | 综合久久久久久久 | 国产精品精品视频一区二区三区 | 亚洲高清在线 | 看羞羞视频 | 日韩在线三级 | 欧美日本在线 | 亚洲精品不卡 | 久久久亚洲一区 | 欧美色综合一区二区三区 | 91社区在线高清 | 欧美一区二区三区在线观看视频 | 91免费观看国产 | 丁香婷婷成人 | 欧美一区二区三区国产精品 | 婷婷久| 欧美性另类 | 妖精视频一区二区三区 | 99久久免费精品国产免费高清 | 成人黄色在线观看 | 黄色一级视频免费 | 九九热这里只有精品在线观看 | 日韩一区在线播放 | 国产精品美女久久久久久免费 | 久草视频在线看 | 成人av在线播放 | 国产精品亚洲精品 | 日韩精品av一区二区三区 | 成人免费小视频 | 一区二区三区免费 | 精品一区国产 | 欧美中文字幕在线观看 | 亚洲第一av网站 | 成年人视频在线免费观看 |