A. 單片機中標定是什麼意思
舉個例子,一個稱重設備給單片機一個模擬信號,起初肯定不知道這個信號是代表多重,但是我用標准重量比如A稱一下,告訴你記下這個模擬量B,那麼以後稱別的重量,只要知道模擬量X,並根據A和B這兩個常量,就可以算出來要求的重量Y了。前面的得到常量A和B的過程就是標定
就是在做測量時,由於外部器件的差異,會導致測量的不準確。一般是在某個范圍內出現偏差,需要通過程序演算法或參數修正這個結果,這個過程就是標定。
B. 單片機程序詳細講解
如此詳細的注釋,你還要怎麼「詳解」,個人覺得你還是應該多看看單片機原理書籍。
C. 單片機一個按鍵控制一個程序
你把幾種方式寫成幾個子程序,然後主程序調用按鍵檢測,根據檢測到的鍵值調用對應的子函數即可
D. 單片機寫程序步驟
給單片機寫程序的步驟至少有以下幾點:
E. 單片機程序編寫
1、首先是打開keil軟體,打開後顯示的界面如下
2、如下第一張圖所示點擊project-》new project,點擊後將會出現如下第二張圖所示界面;在文件框中填寫你的工程名,名字可以是任意英文字元組成的(在此時你最好在你所希望存儲該工程的地方新建一文件夾,如第二張圖所示就是在桌面上建立了一個測試文件夾來存儲新建的工程)
3、輸入工程名後會出現如下圖所示的晶元選擇對話框,選擇你開發板上的型號即可(相信要看這張帖子的讀者一定是在學51單片機,此時只需選擇
Atmel-》AT89c52即可。如下第二張圖所示)
4、一路點擊確認後回到如下圖所示的主界面,並如下圖所示點擊新建程序輸入文本
5、點擊後出現如下第一張圖所示界面,並點擊保存按鈕
6、點擊保存按鈕後出現下第一張圖所示對話框,在箭頭所指的地方輸入源文件名稱加後綴名(如果你是用C語言編寫程序後綴名為*.c;如果你是用匯編語言編寫程序則後綴名為*.asm)並點擊確認保存。確認後界面如下第二張圖所示,注意箭頭所指地方的變化。
7、接下來的一步是將源文件加入到工程中,點擊選中source group並右擊將會出現如下圖所示界面。
8、再點擊Add files to.。。。。。。;如下第一張圖箭頭所示處。點擊後將會出現第二張圖所示的對話框,在該對話框中只要點擊選中第五歩保存的源文件並點擊Add即可(注意點擊選中源文件前後的變化,並且特別注意點擊Add後界面沒有任何變化,你只要關閉該對話框即可)
9、打開source group後將會出現如下圖箭頭所指處的變化
10、在右邊的源文件輸入框中寫入程序,並點擊如圖所示的編譯按鈕(可以看到該程序沒有錯誤,編譯成功)
11、但我們點擊進入工程的文件夾沒有看到後綴名為.hex文件,如下圖所示
12、所以我們需點擊target按鈕進行設置,如下第一張圖所示。點擊後出現第二張圖所示對話框
13、在對話框中點擊output選項如下圖1處顯示,並勾選create hex file如下圖2處顯示。勾選後關閉對話框並如第10步再編譯一次。可以看到文件夾中生成了.hex文件
F. 51單片機如何通過程序校準計數器啊
通過程序進行校準?那首先要有標準的「時間」,然後經過一段時間計算出定時器的誤差,然後更改計數初值。標准時間可選用時鍾晶元或已知脈沖。
當然也可以手動修改,10分鍾慢了15秒,那1S慢了多少ms就知道了,然後修改計數初值。
weimiao++;//微秒++一次>--------這里的定時器定時時間為50毫秒一次,注意命名
如果想再提高點精度,可以使用工作方式2自動重裝,(定時中斷里的函數盡量精短)
G. 單片機的程序怎麼編寫
你可以先把0放到一個單元裡面,比如說100h,然後
mov
r0,100h
inc
100h
mov
r1,100h
inc
100h
繼續寫下去就可以了。
H. 沒有自燒錄功能的單片機怎麼寫標定數據
如果你說的是沒有ISP功能的單片機的話,那麼可以藉助「編程器」來燒錄。以前老式單片機基本都沒有ISP的,比如8751、AT89c51等等。
I. 51單片機中這段程序是怎麼實現校準時間的
這只是定時器0的初始化而已,它可以准確計時。
什麼叫校準時間:你自己的時間與標准時間隔一段時間進行對比,如果不同,把你自己時間調成與標准時間一樣,這個過程才是校準時間
J. 單片機程序
#include<reg51.h>
sbitkey=P3^2;
.......
voidmain()//主程序入口
{
TMOD=0X01;//選擇單片機T0定時器M1工作方式
TH0=0XFc; //1ms定時TL0=(65536-921)%256=103=0x67
TL0=0X67;//晶振頻率是11·0592M,可算出,計數脈沖個數是921個;TH0=(65536-921)/256=252=0xFC;
TR0=1;//定時器/計數器----啟動
ET0=1;//定時器0的中斷允許開關
EA=1; //開總中斷
IT1=1;//設定外部中斷1為低邊緣觸發類型
//stop();先屏蔽這個,測試按鍵
while(1)//程序主循環
{
if(key==0)
{
delay_nms(10);
if(key==0)
{
temp++;
while(key==0);
}
}
if(temp>3)
{
temp=1;
}
ShowPort=LedShowData[temp];//這個函數不知有沒有問題,你查一下。