單片機編譯時間表
『壹』 幫幫忙啊,單片機做作息時間表
或者來我們公司專業給你做,但要收開發費。
你這個很簡單,可能就幾百塊就行了。
『貳』 單片機可以列印出當前日期和時間表,是怎麼搞的
兩者都可以,矩陣鍵盤還可以幫助你理解程序,可以按照自己意願操作,按鍵按下的時候讀取按鍵對應IO口的狀態,然後跳轉到顯示部分,再按下其他按鍵後讓其進行加減等操作即可~
『叄』 用單片機的匯編語言編寫一個(十秒秒錶 的編程)
這是一個秒錶,有按鍵實現 啟動、暫停核清零功能。
#include <reg51.H>
sbit P3_5 =P3^5;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00};
unsigned char second;
unsigned char keycnt;
unsigned int tcnt;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
while(1)
{
if(P3_5==0)
{
for(i=20;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}
『肆』 單片機怎麼設計一個0-9的一位數秒錶,用定時器實現 c語言程序及其注釋
#include<reg52.h> // 包含51單片機寄存器定義的頭文件
unsigned char code Tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//數碼管顯示0~9的段碼表
unsigned char int_time; //記錄中斷次數
unsigned char second; //儲存秒
/***********************************************************************
函數功能:快速動態掃描延時,延時約0.6毫秒
************************************************************************/
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++)
;
}
/***********************************************************************
函數功能:顯示秒
入口參數:k
出口參數:無
************************************************************************/
void DisplaySecond(unsigned char k)
{
P2=0xbf; //P2.6引腳輸出低電平, DS6點亮
P0=Tab[k/10]; //顯示十位
delay();
delay();
delay();
delay();
delay();
delay();
delay();
delay();
P2=0x7f; //P2.7引腳輸出低電平, DS7點亮
P0=Tab[k%10]; //顯示個位
delay();
delay();
delay();
delay();
delay();
delay();
delay();
delay();
P2=0xff; //關閉所有數碼管
P0=0xff; //顯示個位
delay();
delay();
delay();
delay();
delay();
delay();
delay();
delay();
}
void main(void) //主函數
{
TMOD=0x01; //使用定時器T0
TH0=(65536-46083)/256; //將定時器計時時間設定為46083×1.085微秒
//=50000微秒=50毫秒
TL0=(65536-46083)%256;
EA=1; //開啟總中斷
ET0=1; //定時器T0中斷允許
TR0=1; //啟動定時器T0開始運行
int_time=0; //中斷次數初始化
second=0; //秒初始化
while(1)
{
DisplaySecond(second);//調用秒的顯示子程序
}
}
//********************************************************
//函數功能:定時器T0的中斷服務程序
//*******************************************************
void interserve(void ) interrupt 1 using 1
{
TR0=0; //關閉定時器T0
int_time ++; //每來一次中斷,中斷次數int_time自加1
if(int_time==20) //夠20次中斷,即1秒鍾進行一次檢測結果采樣
{
int_time=0; //中斷次數清0
second++; //秒加1
if(second==60)
second =0; //秒等於60就返回0
}
TH0=(65536-46083)/256; //重新給計數器T0賦初值
TL0=(65536-46083)%256;
TR0=1; //啟動定時器T0
}
『伍』 單片機的程序編譯
這位同學也是剛學單片機的C語言吧,的說的很對,其實單片機的C和標准C檢查變數什麼,還有名字不要沖突,然後將其結合在一起,把不必要的子程序
『陸』 單片機的C語言時間怎麼算
在keil中查看某一段代碼的執行時間
進入這段代碼和離開這段代碼時,分別設一個斷點,當執行到第一個斷點時,打一個不用的定時器,計算這個定時器的時間就可以了
『柒』 51單片機執行一條語句的時間是多久
得看是什麼語句,也要看單片機晶振是多少,另外是多少T的。
通常對12M晶振,12T(一個機器周期是12個時鍾周期)的51單片機,有的指令(匯編)是1個機器周期,有的是2個,還有兩條指令是4個(乘,除),這樣對應的就需要1us,2us,4us
如果是C的語句,就要看編譯成的機器指令是什麼樣的
『捌』 單片機執行用c編譯的程序時,每執行一行語句所需要的時間是多少
不確定,這個和單片機的性能,編譯器性能,語句復雜度都有關系。
就像你不能要求1.8G的CPU運行速度和2.8G的同樣快,單片機的性能很重要。
同樣一條C語句,不同的編譯器可能翻譯成不同條數的機器碼指令,當然,一般一個單片機只認識很有限編譯器編出來的目標碼,這條基本可以忽略。
還有就是C語句是什麼語句,比如運行i++一般只需要一個指令周期,i=i+1卻最少需要三個。
所以你的問法應該是「核心頻率是XXXHz的單片機,每秒能執行多少匯編指令?」
『玖』 求教!! 用單片機c語言編譯一個時鍾或者數字從0自加到1000 要求用指針的形式實現
這個不需要用指針吧。。
簡單的指針很簡單的。。
unsigned char *p; //定義一個字元型指針p;
unsigner char a; //定義一個字元型變數a;
p=&a; //取a的地址
while(1)
{
*p++; //指針p指向的變數a++;
if(*p==1001) *p=0; //a==1001;a=0;
延時(1秒);
送顯示;
}
『拾』 單片機一段程序的執行時間如何計算
根據指令周期,51系列單片機指令周期是晶振周期的12倍,比如12M晶振,指令周期是1us,每條指令的指令周期是不一樣的。如果是高級語言,就要看編譯後的匯編程序了。如果是延時程序,純粹的循環(像這樣:while ( us -- ); ),比較簡單,一般一個循環就是一個指令周期。
