導航:首頁 > 操作系統 > 單片機大作業

單片機大作業

發布時間:2022-12-16 01:45:07

❶ 急急急!!!!!!!!!單片機大作業求助!求大神給出具體答案,不勝感激,小弟將獻上僅有的55分!!!

#include "htc.h"
//相關宏定義
unsigned char a = 0;
unsigned char b = 0;
/*初始化D埠*/
void port_init()
{
TRISD = 0x00 ;
RD0 = 0;
RD1 = 0;
}
/*定時器1初始化*/
void time1_init()
{
INTCON = 0xC0 ; //開啟全局中斷
T1CON = 0x31 ; //定時器開啟
TMR1IE = 1 ;//允許開啟定時器1中斷
TMR1IF = 0 ;//清楚中斷標志位
TMR1H = 0xFB ;//定時為10ms
TMR1L = 0x20 ;
}
/*定時器中斷程序*/
void interrupt time1()
{
TMR1IF = 0 ;
TMR1H = 0xFB ;
TMR1L = 0x20 ;
a ++ ;//計數
b ++ ;
}
void main()
{
port_init();
time1_init();
while(1)
{
if( a == 5 )//經過五次中斷時 T= 5*10ms=50ms
{
RD0 = !RD0 ;//取反,燈閃爍
a = 0 ;
}
if( b == 25 )//經過25次中斷時 T= 25*10ms = 250ms
{
RD1 = !RD1 ;//取反,燈閃爍
b = 0 ;
}
}
}
不知道是不是你要的答案。

❷ 單片機大作業

單片機就是一個電腦,只不過是微型的,它內部也用和電腦功能類似的模塊,比如CPU,內存,並行匯流排,還有和硬碟作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現在用的全自動滾筒洗衣機,排煙罩VCD等等的家電裡面都可以看到它的身影!......它主要是作為控制部分的核心部件。
它是一種在線式實時控制計算機,在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區別。

單片機是靠程序的,並且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性!

由於單片機對成本是敏感的,所以目前占統治地位的軟體還是最低級匯編語言(近幾年,C語言也開始廣泛被應用),它是除了二進制機器碼以上最低級的語言了,既然這么低級為什麼還要用呢?很多高級的語言已經達到了可視化編程的水平為什麼不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬碟那樣的海量存儲設備。一個可視化高級語言編寫的小程序裡面即使只有一個按鈕,也會達到幾十K的尺寸!對於家用PC的硬碟來講沒什麼,可是對於單片機來講是不能接受的。單片機在硬體資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統和應用軟體拿到家用PC上來運行,家用PC的也是承受不了的。

目前最常用的單片機為MCS-51,是由美國INTEL公司(生產CPU的英特爾)生產的,89C51是這幾年在我國非常流行的單片機,它是由美國ATMEL公司開發生產的,其內核兼容MCS-51單片機。

❸ 單片機大作業:電子鍾設計

www.cndzz.com

用一個晶振來當基本的參考量,然後用單片機的IO口來控制LED的亮還是不亮就ok啊

這個很簡單的,你做做,很有意思的,我們當年用麵包板搭過此種電路

❹ 單片機作業求救!

1:
RMD:
MOV R2,#0
MOV DPL,#0
RMDP:
MOV DPH,#20H
MOVX A,@DPTR
MOV DPH,#30H
MOVX @DPTR,A
MOV DPH,#10H
MOV A,R2
MOVC A,@A+DPTR
MOV DPH,#20H
MOVX @DPTR,A
INC R2
INC DPTR
CJNE R2,#6,RMDP
RET
2:
SERCHM:
MOV R0,#30H
MOV R2,#20
MOV B,#0
SM:
MOV A,@R0
CJNE A,#'M',SM1
INC B
SM1:
INC R0
DJNZ R2,SM
MOV A,B
JZ SM2
MOV A,#'Y'
RET
SM2:
MOV A,#'N'
RET
4:
DATC:
MOV DPL,#0
MOV R0,#30H
MOV R2,#30H
DATC1:
MOV DPH,#20H
MOVX A,@DPTR
MOV @R0,A
MOV DPH,#10H
MOVX @DPTR,A
CLR A
MOV DPH,#20H
MOVX @DPTR,A
INC DPTR
DJNZ R2,DATC1
RET

❺ 單片機作業

自己寫的。
第一題
查詢法:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;

void main()
{
uchar i;
IT0=0;
led=1;
while(1)
{
if(IE0==1)
{
IE0=0;//清除中斷標志
i++;
if(i==10)
{
i=0;
led=!led;
}
}
}
}

中斷法:

#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;

void interrupt_init()
{
IT0=1;//設置外部中斷0下降沿有效
EX0=1;//允許外部中斷0有效時執行外部中斷0的中斷子函數
EA=1;//總中斷允許
}

void EX_0() interrupt 0
{
static uchar i;
i++;
if(i==10)
{
i=0;
led=!led;
}
}

void main()
{
interrupt_init();
while(1);
}

第二題:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit output=P1^2;
bit NEGATE=1;

void timer_0()//定時器的初始化 6M晶振一個周期2us
{
TMOD=0x01;//用定時器0.工作在方式1.最大可以容納65536
TH0=65510/256;// 25*2us=50us into interrupt1
TL0=65510%256;
ET0=1;//允許定時器0執行中斷子函數
EA=1;//允許總中斷
TR0=1;//打開定時器0
}

void time_0() interrupt 1
{
output=!output;
NEGATE=!NEGATE;
if(NEGATE)
{
TH0=65510/256; //25*2us=50us
TL0=(65510%256)+TL0;//提高精確度
}
else
{
TH0=65360/256; //175*2us=350us
TL0=(65535%256)+TL0;
}
}
void main()
{
timer_0();
output=1;
while(1);
}

閱讀全文

與單片機大作業相關的資料

熱點內容
無線已加密不可上網是怎麼了 瀏覽:464
什麼app可以免費做手機 瀏覽:371
異性下載什麼app 瀏覽:678
51單片機程序單步視頻 瀏覽:239
家庭寬頻如何連接伺服器 瀏覽:117
汽車高壓泵解壓 瀏覽:770
上門正骨用什麼app 瀏覽:758
安卓為什麼免費使用 瀏覽:397
加密貨幣都有哪些平台 瀏覽:625
python和matlab難度 瀏覽:388
python爬蟲很難學么 瀏覽:572
小米解壓積木可以組成什麼呢 瀏覽:816
為什麼滴滴出行app還能用 瀏覽:564
怎麼升級手機android 瀏覽:924
php權威編程pdf 瀏覽:995
扣扣加密技巧 瀏覽:721
蘋果如何創建伺服器錯誤 瀏覽:497
軟考初級程序員大題分值 瀏覽:475
js壓縮視頻文件 瀏覽:580
linux如何通過命令創建文件 瀏覽:991