1. 需要用51單片機做一個數據採集系統,但是要求采樣頻率達到至少每秒2000次以上,請問51單片機可以做到么
肯定要速度快的單片機,比如帶ADC的STC12單片機,用定時器設置好每秒中斷2000次,每次啟動ADC轉換一次,這樣就得到數據了。
當然要存儲2000個數據還是問題,如果是8bit的結果,那需要2000位元組,12bit結果要4000位元組。所以要求單片機本身有很大的RAM或者要擴展RAM才行。但STC12內部才1024位元組的RAM,肯定不夠用,所以這時要用STC90C58AD了,4096位元組的RAM。
如果用C8051F單片機,那更簡單。比如C8051F的ADC0是100ksps,就是說連續轉換時每秒能采樣100000個數據,轉換2000個是小菜一碟,只要設置好定時器以0.5毫秒觸發一次ADC轉換,再設置好ADC中斷,這樣1秒採集2000個數據沒問題。
2. 51單片機能處理模擬信號嗎
可以,51核的單片機現在種類非常多。比如帶有比較器的,這個功能還可以通過外圍電路用作模數轉換;有的集成有模數轉換器,往往還集成有程式控制增益放大器。
可以看看ADI公司的51單片機。
3. 請教MD5演算法 用C語言實現
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#ifdefined(__APPLE__)
#defineCOMMON_DIGEST_FOR_OPENSSL
#include<CommonCrypto/CommonDigest.h>
#defineSHA1CC_SHA1
#else
#include<openssl/md5.h>
#endif
//這是我自己寫的函數,用於計算MD5
//參數str:要轉換的字元串
//參數lengthL:字元串的長度可以用strlen(str)直接獲取參數str的長度
//返回值:MD5字元串
char*str2md5(constchar*str,intlength){
intn;
MD5_CTXc;
unsignedchardigest[16];
char*out=(char*)malloc(33);
MD5_Init(&c);
while(length>0){
if(length>512){
MD5_Update(&c,str,512);
}else{
MD5_Update(&c,str,length);
}
length-=512;
str+=512;
}
MD5_Final(digest,&c);
for(n=0;n<16;++n){
snprintf(&(out[n*2]),16*2,"%02x",(unsignedint)digest[n]);
}
returnout;
}
intmain(intargc,char**argv){
char*output=str2md5("hello",strlen("hello"));
printf("%s ",output);
//上面會輸出hello的MD5字元串:
//
free(output);
return0;
}
4. 為什麼對於一個51單片機的功能,第一個代碼能實現,第二個代碼就不能實現呢
看程序你的鍵盤在P1口,LED在P0口,第二段代碼中判斷的都是P0口狀態,沒有檢測P1口的鍵盤狀態,自然不能實現鍵盤功能。
5. 用51單片機串口輸出可以給 74HC595移位寄存器送數據嗎
可以的,51單片機的串口模式0就是專門用來做類似的工作的,模式0叫同步移位模式,波特率是固定的,不需要定時器1產生波特率,在12M晶振的情況下,波特率是1M,8位數據,低位在先,RXD發送,TXD接收,可以和595或164晶元直接連接。
6. 51單片機能實現多少功能謝謝了,大神幫忙啊
很多想學單片機的人問我的第一句話就是怎樣才能學好單片機?對於這個問題我今天就我自己是如何開始學單片機,如何開始上手,如何開始熟練這個過程給大家講講。 先說說單片機,一般我們現在用的比較多的的MCS-51的單片機,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎麼樣才能更快的學會單片機這門課。單片機這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,單片機的各個功能寄存器,而說明白點,我們使用單片機就是用軟體去控制單片機的各個功能寄存器,再說明白點,就是控制單片機那些管腳的電平什麼時候輸出高,什麼時候輸出低。由這些高低電平的變化來控制你的系統板,實現我們需要的各個功能。至於看書,只需大概了解單片機各管腳都是干什麼的?能實現什麼樣的功能?第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天的就夠了,看小說你一天能看五六本,看單片機你兩三天看兩三遍就夠了,可以不用仔細的看。推薦一本書,就這一本就足夠,書名是《新編MCS-51單片機應用設計》,是哈爾濱工業大學出版社出的的,作者是張毅剛。大概了解一下書上的內容,然後實踐,這是非常關鍵的,如果說學單片機你不實踐那是不可能學會的,關於實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊單片機的學習板,不要求功能太全的,對於初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD或DA(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應用,那可以說對於單片機方面的硬體你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。只要過了第一關,後面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。對於高手來說,做個單片機的最小系統板只需要一分鍾的時間,而對於初學者可就難多了,因為只有對硬體了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以後做單片機類的小實驗時都能用得上,還省事。 有了單片機學習板之後你就要多練習,最好是自己有台電腦,一天少看電影,少打游戲,把學習板和電腦連好,打開調試軟體坐在電腦前,先學會怎麼用調試軟體,然後從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意願隨意流動時你已經入門了,你會發現單片機是多麼迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程序按你的意願實現時你比做什麼事都開心,你會上癮的,真的。做電子類的人真的會上癮。然後讓數碼管亮起來,這兩項會了後,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當得到解答後你會記住一輩子的,知識必須用於現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什麼?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一干二凈,是不是?你學到什麼了?但是我告訴你單片機一旦學會,永遠不會忘了。另外我再說說用匯編和C語言編程的問題。很多同學大一二就開設了C語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什麼用?讓你用C語言編單片機的程序你是不是就傻了?書上的東西我們必須要會運用。單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以後也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。匯編寫程序代碼效率高,但相對難度較大,而且很羅嗦,尤其是遇到演算法方面的問題時,根本是麻煩的不得了,現在單片機的主頻在不斷的提高,我們完全不需要那麼高效率的代碼,因為有高頻率的時鍾,單片機的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,只需要變一個IO口寫個溫度感測器的程序在哪裡都能用,所以我勸大家用C語言。 總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個單片機來說就是件非常容易的事。 步驟:1.找本書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書的。(三天) 2.找學習板練習編寫程序,學單片機就是練編程序,遇到不會的再問人或查書。(我當初就買了中國開發板網一個單片機開發板,二十天就搞定了,你可以去試試。網址如下: http://www.kaifaban.com/html/2006111423012559.html ) 3.自己網上找些小電路類的資料練習設計外圍電路。焊好後自己調試,熟悉過程。 (十天) 4.自己完全設計具有個人風格的電路,產品,。。。你已經是高手了。 。。。。 看到了嗎?下功夫一個多月你就能成為高手,我就講這么多了,學不學得會,下不下得了功夫就看你的了
7. 用單片機,實現MD5加密,比如用主頻比較高的51晶元來實現,消耗的系統資源大嗎容易實現嗎
因為MD5加密是摘要演算法;運算量不是特別大,但是不適合把所有數據都加密!
因為單片機內的數據不是很大,加密後大大的增加了數據量;不適合。
若只是做為用戶的安全性口令的驗證,還是可以的。
8. 在51單片機中能否實現 MOV @R1,@R0 如果不能的話為什麼呢
你這條指令是不存在的,要把其中一個rn換為它的地址是可以編輯通過而運行的,如換後就是一個傳送指令,在傳送完成後源地址中的數是不會變的,這的源地址就是這指令中的最右邊一個也就是你這問的r0.
9. 51單片機實現md5演算法的C程序
這個 真不懂 要這演算法幹嘛?
10. 我用的51單片機,STC89c52的,能不能實現我輸入一個字元串(密碼),它加密成32位的MD5值,存儲到24c02
你要對文件和文件夾加密,我強烈建議你使用文件夾加密超級大師。
文件夾加密超級大師是強大易用的加密軟體,具有文件加密、文件夾加密、數據粉碎、徹底隱藏硬碟分區、禁止或只讀使用USB設備等功能。
雖說是收費軟體,但絕對安全可靠。