導航:首頁 > 編程語言 > 單片機c編程習題

單片機c編程習題

發布時間:2023-02-11 01:52:20

單片機復習題(C語言)

一. 填空題
1. MCS-51單片機是____8____位機,其最大程序容量可達___64_____K位元組,有_____4___個並行口和____32____條I/O管腳。
2. MCS-51單片機正常工作所必須的外部硬體電路是___電源_____、___時鍾_____、__復位______。
3. MCS-51單片機復位電平是___高_____電平,正常工作時復位端為__低______電平,復位後並所有行口的輸出為____高____電平。
4. MCS-51單片機內部結構中,四個基本功能單元分別是___CPU_____、__RAM______、____ROM____、___定時器計數器I/O口_____;三個擴展功能單元分別是____?____、___?____、___?_____。
5. MCS-51單片機內部RAM四個分區分別是__00H到1FH(R0-R7)可位定址____、____ _ 20H-2FH___、_30H-7FH__ _____、__80H-FFH______。
6. MCS-51單片機___P0_____口沒有內部上拉電阻;並行口作為輸入口使用時必須保證該埠場效應管__開漏______,即向該埠寫___0xff_____,此時該埠的輸出鎖存器Q端為___1(高電平)_____。
7. MCS-51單片機計數器工作在方式1和方式2的最大計數值分別是_____65536______、___256________。
8. MCS-51單片機若單片機的主時鍾振盪頻率為6MHz,定時器工作在方式1和方式2的最大定時時間分別是_____自己算!!______ms、___不懂看書!!________us。基本指令周期是___0.5-2_______us。
9. MCS-51單片機的五個中斷源分別是___INT0______、__T0_______、_____INT1_____、___T1______、___UART_______。
10. 編寫程序常用的三種程序結構是 __順序結構_______、__循環結構_______、___選擇結構_______。
11. C語言語法中,數據類型unsigned char 定義的是____8_____位無符號數;數據類型unsigned int定義的是___16______位無符號數。對8位和16位有符號數,定義數據類型關鍵詞為___signed char______、____short_____。
12. 單片機上電後是從主函數void main()的___0x0000H______位置運行。
13. 單片機C語言編程時必須有的固定結構的語句是#include <reg51.h>、void main()以及____while_____。
14. keil 集成開發軟體的三個主要功能是___編譯______、__調試_______、___模擬______。
15. 十進制數100對應的十六進制數是____64_____、二進制數是___01100100______。

二. 讀程序題
默認有關變數x、y、z、a、b、c、i均為unsigned int (8為無符號數)(這個是不是打錯了)請寫出局部程序運行後的結果,用十進製表示。
1. x = ___6___, y = ___3___, z = __11____ , a = ___5___, b = ___15___, c = ___252___。
x = 50/8; y = 100%12; z = 240+26;
a = z>>1; b = x | z; c = ~y;
2. x = _183_____, y = __10____, z = __11____ , a = __10____, b = __10____, c = ___10___。
x = 0xa5 ^ 0x12; y = 5*2; z = y++
a = --z; b = a & y; c = (a+z)/2;
3. x = ___6___, y = __12____, i = ___3___。
x=0;y=0;
for (i=1;i<=3;i++){
x = x+i;
y = y + i*2;
}
4. x = __20____, y = ___10___, z = ___81___ , a = __8____, b = ____9__,
c = __48____, i = ___8___。
a=0;
if (!a){
x=20; y=x<<2; z=y++;
}else{
x=10; y=x<<2; z=y++;
}
i=2<<2; y=10;
if (i>3 && y){
a=y & 0x0c;
b=++i;
c=x^y;
}
隨便做的,有些東東忘了!不懂的自己回去看看書去。

② 單片機C語言設計編程題

#include sbit pluse=P1^0; void t0isr() interrupt 1 { TH1=(65536-10000)/256; TL1=(65536-10000)%256; pluse=~pluse; } main() { TMOD=0x10; TH1=(65536-10000)/256; TL1=(65536-10000)%256; TR1=1; ET1=1; EA=1; while(1); }

③ c語言單片機考試題目急用

1、uchar state1;//主函數中 有 state1 變數,整個程序卻沒有改變數定義,可知,第1空即是該變數的定義。
2、state1=0xfe; 或者 state1=~1;//圖中 LED為 低電平驅動,D1為 P10,循環中直接將state1的值賦值給 P1,所以,要想D1亮,state1 的值就 必須=0xfe
3、temp=4;//題目要求 亮燈 按 D1\3\5\7 執行,只有 4個步驟,且 for循環的 步進值 只有 -1(temp--),結束條件為temp=0,故temp 的初始值 應= 結束值-步進值×步驟數=0-(-1)×4=4。
4、state1=(state1<<2)+3;//本語句的前半截 為 左移2位,則低2位變為0,需要補充2個1(即0000 0011b=3),以關閉低2位 的燈。
5、j<q;//但這個時間到底多少,沒有標准答案,定時不能靠延時函數。晶振不一樣,時間不一樣。編譯器不同,編譯結果不一樣。單片機類型不同,延時結果不一樣。

④ 單片機C語言試題求解

定時器計數頻率為12MHz/12=1MHz,則計一個數為1us,最大65536*1us=65.536ms,計數器向上計數,則定時50ms為65536-50000=15536=0x3CB0,所以TH0=0x3C, TL0=0xB0

⑤ 單片機C語言設計練習題

讀按鍵是輸入,控制燈是輸出。TRISC是決定C口是輸入(1)還是輸出(0)的寄存器。
8個埠控制led,所以8個輸出,所以是 0B 0000 0000 ,轉化成16進制就是0x00;

⑥ 求解一道單片機C語言編程題,急

#include"AT89X52.h"

sbit BUTTON = P1^1;
sbite LED = P1^0;
unsigned int reg;
void main(void)
{
while(1)
{
if (!BUTTON)
{
reg= 5000;
while(--reg);
if (!BUTTON)
{
LED = ~LED;
while(!BUTTON);
}
}
}
}

⑦ 單片機 C 編程問題 高手來

第一次循環是0,在執行一個就不是0了
for(A,B,C){D}

是先處理A,再判斷B,執行D,再執行C,判斷B,執行D.....直到不能滿足B就退出

你第一次執行A的時候i=0;B的時候條件滿足,執行D的時候i不變所以還是0

⑧ C51單片機程序設計題,要求用C語言做,模擬交通燈控制單片機電路,答案要詳細具體。

晚上隨手寫,也未調試,權當看看

程序有不嚴謹地方還得調試修改

#include<REGX51.H>

#defineSTATUS_1S 1

#defineSTATUS_2S 2

#defineSTATUS_3S 3

#defineSTATUS_4S 4

#defineSTATUS_5S 5

#defineSTATUS_15S 15

#defineSTATUS_28S 28

#defineSTATUS_29S 29

#defineSTATUS_30S 30

unsignedcharflag,status,status_temp=1,status_temp_;

sbitK1 = P0^0;

sbitK2 = P0^1;

sbitRLED = P0^2;

sbitYLED = P0^3;

sbitGLED = P0^4;

voidInit(void)

{

ET0=1;

TR0=1;

RLED=0; //亮

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //滅,閃一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮,閃一次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; //滅

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

voidInit_Timer0(void)

{

TMOD=0x01;

// ET0=1;

// TR0=1;

EA=1;

TH0=0X3C;

TL0=0XB0; //未計算,偷樓上的

}

voidM_Start(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //紅亮

while(status_temp)

{

switch(status)

{

caseSTATUS_1S:

{

if(status_temp_==1)

{

YLED=0;

}

} break;

caseSTATUS_2S:

{

if(status_temp_==1)

{

YLED=1;

}

} break;

caseSTATUS_3S:

{

if(status_temp_==1)

{

YLED=0;

status_temp_=0;

}

} break;

caseSTATUS_15S: //15S滅,綠亮

{

RLED=1;

GLED=0;

} break;

caseSTATUS_28S:

{

GLED=1;

} break;

caseSTATUS_29S:

{

GLED=0;

} break;

caseSTATUS_30S:

{

GLED=1;

status=0;

status_temp_=1;

} break;

}

}

ET0=0;

TR0=0;

status=0;

status_temp=1;

YLED=1;

}

voidM_End(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //亮1次

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //滅一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮二次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; ////滅二次

YLED=1;

GLED=1;

} break;

caseSTATUS_4S: //1S

{

RLED=0; ////亮三次

YLED=0;

GLED=0;

} break;

caseSTATUS_5S: //1S

{

RLED=1; ////滅三次

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

main()

{

Init();//單片機初始化

Init_Timer0();//定時器初始化

while(1)

{

if(K1==0)

M_Start();//模擬開始

if(K2==0)

M_End();//模擬結束

}

}

voidinterrupt_time0()interrupt1 //核對頭文件,一致就好

{

TH0=0X3C;

TL0=0XB0;

flag++;

if(flag==20)

{

status++;

flag=0;

}

}

⑨ 這兩道單片機C語言題怎麼做

1、錯 形參之間可以出現空格,但是宏名和形參表之間不能有空格出現

2、

#include<reg52.h>
#include<intrins.h>

#defineucharunsignedchar
#defineuintunsignedint
sbitkey1=P3^4;
sbitkey2=P3^5;
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--)
}
voidmian()
{
P1=0xfe;
while(1)
{
if(key1==0)
{
delayms(10);
if(key1==0)
{
while(!key1);
P1=_crol_(P1,1);//松開按鍵時左移1位
}
}
if(key2==0)
{
delayms(10);
if(key2==0)
{
while(!key2);
P1=_cror_(P1,1);//松開按鍵時右移1位
}
}
}

}

⑩ 請問這道關於51單片機C語言填空題怎麼做

1、EA 腳的功能是 片內/片外存儲器選擇控制信號 ,單片機使用片內程序存儲器時,該引腳應該 高 電平 。
2、下列程序運行後,a=1 ,b=3 ,c=0 。
Void main(void)
{ unsigned char a=0,b=1,c=2;
C=!(a=1)&&(b=3);
}

閱讀全文

與單片機c編程習題相關的資料

熱點內容
手機詳情圖片壓縮 瀏覽:953
checkpoint加密 瀏覽:531
哪個app可以下載失憶症 瀏覽:758
adc是什麼意思單片機 瀏覽:1
通達信捕撈指標源碼 瀏覽:962
數據管理系統源碼 瀏覽:984
奧迪工程師編程 瀏覽:964
單片機燒寫器和下載線區別 瀏覽:898
java編程教材 瀏覽:862
哪個app可以p鬼畜表情包 瀏覽:310
加密狗伺服器克隆 瀏覽:750
程序員秒開游戲 瀏覽:932
雲伺服器怎麼做淘寶 瀏覽:450
100加六個點的演算法 瀏覽:323
基於單片機的設計項目 瀏覽:42
民法物權王澤鑒pdf 瀏覽:723
pdf壓縮器免費版mac 瀏覽:548
北京訂生日蛋糕的app哪個好 瀏覽:68
移動硬碟中的文件夾怎麼刪除 瀏覽:293
命令與征服將軍之絕命時刻打不開 瀏覽:561