找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4606|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

ADC0808模數(shù)轉(zhuǎn)換顯示 單片機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
新人咋到,貢獻(xiàn)一個(gè) ADC模數(shù)轉(zhuǎn)換顯示.rar (24.38 KB, 下載次數(shù): 52)

  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit ST= P1^3;                //啟動(dòng)信號(hào)
  6. sbit EOC=P1^4;                //轉(zhuǎn)換結(jié)束信號(hào)
  7. sbit OE= P1^5;                //輸出使能
  8. sbit CLK=P1^6;                //時(shí)鐘信號(hào)
  9. //0~9字型碼
  10. uchar code seg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  11. /**************************************************
  12. 函數(shù)功能:軟件延時(shí)
  13. 入口參數(shù):類型uint x為1ms的倍數(shù)
  14. 出口參數(shù):無
  15. ****************************************************/
  16. void delay(uint x)
  17. {
  18.         uchar i;
  19.         while(x--)
  20.                 for(i=0;i<115;i++);                //1ms        
  21. }
  22. /**************************************************
  23. 函數(shù)功能:數(shù)碼管顯示
  24. 入口參數(shù):seg_data[]為0~9字型碼
  25. 出口參數(shù):uint x 要顯示的數(shù)字
  26. ****************************************************/
  27. void display(uint x)
  28. {        
  29.         uchar i,disp[3];
  30.         disp[0]=seg_data[x/100];                //百位
  31.         disp[1]=seg_data[(x%100)/10];        //十位
  32.         disp[2]=seg_data[x%10];                        //個(gè)位
  33.         for(i=0;i<3;i++)
  34.         {
  35.                 P0=disp[i];                                        //數(shù)碼管段碼                        
  36.                 P2=~(1<<i);                                        //數(shù)碼管位碼移位,片選
  37.                 delay(20);                                        //延時(shí)2ms
  38.                 P2=0xff;                                        //關(guān)閉數(shù)碼管顯示
  39.         }
  40. }
  41. main()
  42. {
  43.         TMOD=0x02;                                //T0工作模式2
  44.         TH0=0x14;               
  45.         TL0=0x14;
  46.         ET0=1;
  47.         EA=1;
  48.         TR0=1;
  49.         P1=0;                                //選擇ADC0808的通道0
  50.         while(1){
  51.                 ST=0;
  52.                 EOC=1;                                //高電平有效
  53.                 OE=0;
  54.                 ST=1;                                //上升沿清零、鎖存地址
  55.                 ST=0;                                //下降沿開始A/D轉(zhuǎn)換
  56.                 while(EOC==1);                //等待轉(zhuǎn)換完成
  57.                 OE=1;                                //輸出允許信號(hào)
  58.                 display(P3);                //顯示轉(zhuǎn)換的數(shù)據(jù)
  59.         }
  60. }
  61. /**************************************************
  62. T0定時(shí)器中斷給ADC0808提供時(shí)鐘信號(hào)
  63. ****************************************************/
  64. void Timer0_INT() interrupt 1
  65. {
  66.         CLK=~CLK;
  67. }
復(fù)制代碼



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

使用道具 舉報(bào)

來自 2#
ID:1 發(fā)表于 2019-4-17 14:28 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

板凳
ID:514254 發(fā)表于 2022-2-7 18:53 | 只看該作者
程序注釋都在源碼中,都很清楚了

ADC.jpg (90.47 KB, 下載次數(shù): 134)

ADC.jpg
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表