atmega128单片机AD转换时知道了模拟量怎么算数字量? AD转换 :如何通过单片机(我用的是凌阳)将AD转换来了数字...

\u5728AVR\u5355\u7247\u673a\u7684AD\u8f6c\u6362\u4e2d\u77e5\u9053\u6570\u5b57\u91cf\u4e86\u600e\u4e48\u7b97\u6a21\u62df\u91cf?

\u4f7f\u7528\u6807\u5ea6\u6807\u5ea6\u53d8\u6362\u516c\u5f0f\uff0c\u5c06\u6570\u5b57\u91cf\u8f6c\u6362\u6210\u5e26\u6709\u7269\u7406\u5355\u4f4d\u7684\u5b9e\u9645\u503c\u3002
\u4f8b\u5982\uff1a \u5047\u8bbe\u6e29\u5ea6\u68c0\u6d4b\u4f20\u611f\u5668\u6d4b\u91cf\u6e29\u5ea6\u8303\u56f4\u662fA0~Am,\u8f6c\u6362\u540e\u7684\u7535\u538b\u7ecf
AD\u8f6c\u6362\u5668\u8f6c\u6362\u7684\u6570\u5b57\u91cf\u662f8\u4f4d\u7684\uff0c\u5219\u5176\u8303\u56f4\u662f00H~OFFH\u3002
\u5219\u5982\u679c\u67d0\u4e00\u65f6\u523b\uff0cAD\u8f6c\u6362\u5668\u8f6c\u6362\u7684\u6570\u5b57\u91cf\u662fN\uff0c\u90a3\u4e48\u6d4b\u91cf\u7684\u5b9e\u9645\u6e29\u5ea6
\u4e3aA,
\u6839\u636e\u7ebf\u6027\u4f20\u611f\u5668\u3001AD\u8f6c\u6362\u5668\u8f6c\u6362\u5668\u7684\u8f6c\u6362\u4fe1\u53f7\u7684\u5173\u7cfb\uff1a\u53ef\u4ee5\u63a8\u51fa
A=(Am-A0)*N/(255-0)+A0
\u53ef\u4ee5\u7f16\u7a0b\u7531\u7a0b\u5e8f\u5b9e\u73b0\u4e0a\u8ff0\u7684\u8ba1\u7b97\u8fc7\u7a0b\u3002
\u53c2\u8003\u81ea\u5df1\u5b9e\u9645\u7684\u60c5\u51b5\uff0c\u5c31\u53ef\u4ee5\u5199\u51fa\u7c7b\u4f3c\u4e0a\u8ff0\u7684\u516c\u5f0f\uff0c\u4f5c\u4e3a\u7f16\u5199\u7528\u6d4b\u91cf\u7269\u7406\u91cf\u7684\u7a0b\u5e8f\u7684\u7b97\u6cd5\u3002
\u7b97\u6cd5\u6709\u4e86\uff0c\u7a0b\u5e8f\u5c31\u81ea\u5df1\u5199\u5427\uff0c\u4e0d\u662f\u5f88\u96be\u4e86\u3002

#include
#include


#define uint unsigned int
#define uchar unsigned char


sbit LED=P1^4;
sbit cs=P2^0;
sbit rd=P3^7;
sbit wr=P3^6;
sbit dacs=P3^2;//AD\u63a7\u5236
sbit D27=P2^7;//\u6570\u7801\u7ba1\u9501\u5b58\u5668\u63a7\u5236\u5f15\u811a
sbit D26=P2^6;
sbit key=P3^4;


uchar b,s,g,num;
float voltage;
uint disdata;


uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f}; //\u6574\u6570\u5b57\u7b26


uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //\u5e26\u5c0f\u6570\u70b9\u6570\u5b57\u7f16\u7801


void display(uchar b,uchar s,uchar g);
void delay(uint z);
void start();
void initial();


void main()
{
LED=1;
cs=0; //AD\u7247\u9009\u7ed9\u4f4e\u7535\u5e73
dacs=1;
initial();
start();
delay(5);
rd=0;
delay(5);
num=P1;
delay(5);
rd=1;
delay(1);

voltage = 5.00*num/256; //\u5b9e\u9645\u7535\u538b
disdata=(uint)(voltage*100);
delay(1);
b=disdata/100;
s=disdata%100/10;
g=disdata%10;
display(b,s,g);


}


void start()
{
wr=1;
wr=0;
wr=1;
}


void initial()
{
disdata=0;
num=0;
}


void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--) ;
}


void display(uchar b,uchar s,uchar g) //\u663e\u793a\u6570\u5b57\u4e2a\u5341\u767e\u4f4d
{
D27=1;
P0=0xfd;
D27=0;
P0=0x00;
D26=1;
P0=table1[b];
D26=0;
P0=0x00;
delay(1);


D27=1;
P0=0xfb;
D27=0;
P0=0x00;
D26=1;
P0=table[s];
D26=0;
P0=0x00;
delay(1);


D27=1;
P0=0xf7;
D27=0;
P0=0x00;
D26=1;
P0=table[g];
D26=0;
P0=0x00;
delay(1);
}

用你的参考电压除以AD位数对应的二进制数,如:参考电压5V,AD共8位=256,即得到每一位对应的电压值=5/256,如果你输入的电压为2.5V,则有数字量=127

第一,看你使用的是比较电位是5V还是内部的2.56V。
第二:知道你的模拟量最大的值,然后,它是10位的,得知它的分辨率。VALUE/1024=分辨率。
第三:使用变换公式计算即可。

  • 鍗曠墖鏈篈Tmega128 鍜孲TC89C52 鏈変粈涔堝尯鍒憿,涓昏鏄ц兘鍜屽彂灞曞墠鏅痏鐧 ...
    绛旓細杩欎袱涓鍗曠墖鏈閮芥瘮杈冭佷簡锛宻tc89c52鍩烘湰涓婂氨鏄痑t89c52鐨勫浗浜х増鏈紝atmega128鏄疉TMEL鍏徃鐨勪骇鍝侊紝瀹冪殑IO鍙e姛鑳借姣52寮哄緢澶氾紝浣嗘槸鐜板湪鏂扮増鐨剆tc鍗曠墖鏈篿o鍔熻兘涔熸瘮杈冨己澶т簡锛屽啀灏辨槸atmega128鐨勭鑴氭暟鐩瘮杈冨锛岃嚜甯AD銆傛ц兘鑲畾鏄痑tmega128瑕佸ソ锛52鍩烘湰娣樻卑浜嗐傚鏋滀綘瑕佸仛璁捐鍙互鑱旂郴鎴 ...
  • atmega128鑺墖鍙戠儹鏄粈涔堝師鍥
    绛旓細1銆佷緵鐢电數鍘嬭繃楂 2銆佸摢閲岃礋杞芥瘮杈冧弗閲嶏紝鍗曠墖鏈姣忎釜绠℃暀椹卞姩鐢垫祦鏄湁涓婇檺鐨勶紝璇锋鏌ヤ竴涓 3銆佺煭璺紝濡傛灉鏄繖鏍凤紝浣犵殑鑺墖鍙兘瑕佺舰宸ヤ簡
  • 璇烽棶:AVR atmega16鍜atmega128鐨勫尯鍒槸浠涔堝憿?
    绛旓細AVR atmega16鍜atmega128鐨勫尯鍒槸閰嶇疆涓嶅悓,ATmega128鏄疉TMEL鍏徃鐨 8浣嶇郴鍒鍗曠墖鏈鐨勬渶楂橀厤缃殑涓娆惧崟鐗囨満锛岀ǔ瀹氭ф瀬楂橈紝搴旂敤鏋佸叾骞挎硾銆侫Tmega128TQFP灏佽鐜颁富瑕佹湁杩欎簺鍨嬪彿锛欰Tmega128-16AU銆丄Tmega128-16AI銆備笅闈㈠ATmega128鐨勫瀷鍙锋爣璇嗚繘琛岃В鏋愶細鈶犮佸瀷鍙风揣璺熺殑瀛楁瘝锛岃〃绀虹數鍘嬪伐浣滆寖鍥淬傚甫鈥淟鈥濓細2.7-5.5V锛涜嫢...
  • ATmega16涓ATmega128鏈変粈涔堝尯鍒??
    绛旓細ATmel鍏徃鐨8浣鍗曠墖鏈锛屽畠浠兘鏄疉tmel鍏徃鐨8浣峈ISC楂樻ц兘鍗曠墖鏈猴紝16,128鎸囩殑鏄16K / 128K 瀛楄妭鐨勭郴缁熷唴鍙紪绋婩lash锛屽叾纭欢鏋舵瀯涓婃槸涓鑷寸殑銆傚湪璁℃椂/瀹氭椂鍣ㄦ暟閲忥紝ADC閫氶亾銆佺簿搴﹀拰PWM绔彛鏁伴噺锛孶ART鍙f暟閲忕瓑鏂归潰浼氭湁鎵涓嶅悓锛堝師鍒涳級
  • atmega128 鑳界敤atmega1281浠f浛鍚
    绛旓細1.瀹冧滑閮芥槸Atmel鍏徃鐨8浣峈ISC楂樻ц兘鍗曠墖鏈锛64,128鎸囩殑鏄 64K / 128K 瀛楄妭鐨勭郴缁熷唴鍙紪绋婩lash锛屽叾纭欢鏋舵瀯涓婃槸涓鑷寸殑銆傚湪璁℃椂/瀹氭椂鍣ㄦ暟閲忥紝ADC閫氶亾銆佺簿搴﹀拰PWM绔彛鏁伴噺锛孶ART鍙f暟閲忕瓑鏂归潰浼氭湁鎵涓嶅悓銆傛ц兘鑲畾鏄atmega128瑕佸ソ銆2.ATmega128鏄疉TMEL鍏徃鐨 8浣嶇郴鍒楀崟鐗囨満鐨勬渶楂橀厤缃殑涓娆惧崟鐗囨満锛岀ǔ瀹氭...
  • ATmega128鍗曠墖鏈鍔犵數鍚庡彂鐑,浣嗘槸鍙互鐢║SB ISP杩涜缂栫▼
    绛旓細鐢ㄤ竾鐢ㄨ〃娴嬩竴涓嬪伐浣滅數娴併鍗曠墖鏈鏈灏忕郴缁熷伐浣滄椂鐨勭數娴佷竴鑸湪5mA浠ヤ笅銆傜劧鍚庢柇寮鏆傛椂涓嶇敤鐨処O鍙c傜洿鍒板伐浣滅數娴侀檷浣庡埌姝e父鑼冨洿鍐呫傚鏋滃鍥存帴鏈変笂鎷夌數闃伙紝棣栧厛灏辨槸鍏堟柇寮鏈変笂鎷夌數闃荤殑IO鍙c傜‘璁ゆ槸鍚︿负IO鍙e嚮绌裤傚鏋滃伐浣滅數娴佸湪5mA涔嬪唴锛屽彲浠ュ垽瀹氫负鍗曠墖鏈烘甯搞
  • atmega128涓嬭浇涓嶄簡绋嬪簭,鑷繁鍋氱殑鏉垮瓙,鎬绘槸璇磋繘鍏ョ紪绋嬫ā寮忓け璐,鐢ㄧ殑AVR...
    绛旓細鍏堢‘瀹氭槸涓嬭浇绾跨殑闂杩樻槸鍗曠墖鏈绯荤粺鐨勯棶棰橈紝鍙互鐢ㄥ埆鐨勫ソ鐢ㄧ殑绾胯矾鏉夸笅杞借瘯璇曪紝鎴栫敤涓鏍瑰ソ鐨勪笅杞界嚎璇曡瘯浣犵殑绾胯矾鏉 濡傛灉鏄笅杞界嚎闂娌″緱璇达紝鎹㈡牴涓嬭浇绾 濡傛灉涓嶆槸涓嬭浇绾块棶棰樺氨妫鏌ヤ綘鐨勫崟鐗囨満鏈灏忕郴缁熷惂锛1銆侀噺宸ヤ綔鐢靛帇 2銆侀噺澶嶄綅鑴氱數骞筹紝浣犵殑鍗曠墖鏈哄浣嶈剼鐢靛钩鏄笉鏄竴鐩村啀璁╁崟鐗囨満澶嶄綅锛3銆佹湁鏉′欢鐨...
  • 鍗曠墖鏈篈Tmega128杈撳嚭PWM淇″彿鍚
    绛旓細鍗曠墖鏈篈Tmega128鏈6璺垎杈ㄧ巼鍙紪绋嬶紙2 鍒16 浣嶏級鐨凱WM锛屽彲浠ヨ緭鍑3瀵归鐜囧彲璋冪殑PWM娉㈠舰銆
  • avr128鍗曠墖鏈
    绛旓細ATMEGA128L 宸ヤ綔鐢靛帇鑼冨洿2.7V-5.5V 宸ヤ綔棰戠巼0-8M ATMEGA128 宸ヤ綔鐢靛帇鑼冨洿4.5V-5.5V 宸ヤ綔棰戠巼0-16M 128L铏界劧鏈楂橀鐜囦负8M 浣嗘槸鍙互瓒呴宸ヤ綔,濡傛灉棰戠巼鍦12M浠ュ唴,鐢靛帇涓4.5-5.5V涔嬮棿鍩烘湰涓婂彲浠ラ氱敤锛屼綘璇寸殑12M鎹㈡垚11.0592鍏蜂綋鐪嬩綘浜у搧瀵规椂闂寸殑瑕佹眰楂樹笉楂橈紝鑷繁鍋氬疄楠屽氨鏃犳墍璋撲簡銆
  • keil涓庝箞閫夋嫨ATmega128鑺墖
    绛旓細keil涓槸鏃犳硶閫夋嫨ATmega128鍗曠墖鏈鐨勶紝ATmega128鏄疉VR绯诲垪鍗曠墖鏈猴紝Keil鍙兘缂栬瘧51绯诲垪鍗曠墖鏈猴紝鎵浠ヤ綘鍙兘鎹㈠叾浠栫紪璇戝櫒浜嗐侹EIL MDK涔熶粎浠呮敮鎸佸埌ARM锛屼絾瀵瑰叾浠栫郴鍒楃殑鍗曠墖鏈鸿繕鏄笉鏀寔銆
  • 扩展阅读:电子元器件识别图大全 ... atmega16电子钟 ... ae-atmega328-mini ... atmega16a pdf ... 常用18个电子元器件 ... 电气元器件符号大全 ... 50个常用元器件图片 ... altium designer ... 51单片机ad模块 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网