freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片微型計算機與接口技術(shù)思考題與習題解答01-文庫吧資料

2025-03-30 23:17本頁面
  

【正文】 ABC:JNB TF0,$ CLR TF0 CPL SJMP ABC中斷方式: ORG 0000H AJMP MAIN ORG OOOOBH CPL RETI MAIN:MOV TMOD,06H MOV TH0,OF6H SETB EA SETB ET0 SETB TR0 SJMP $ ;等待中斷C語言程序查詢方式: include sbit p10=P1^O; main(){ TMOD=Ox06;THO=10;TLO=10; TRO=1:{ while(1) dO{}while(TF0==0) TF0=0;p10=~p10; }}中斷方式:include sbit p1_O=P1^O; tov()interrrupt 1 {p1_O=~p1_O; } maln(){ EA=1;ET0=1;TMOD=0x06; TH0=0xf6;TL0=0xf6;TR0=1; while(1);}/*等待中斷*/ ,利用T1產(chǎn)生lOOOHz的音頻信號從揚聲器輸出。} void delay(void){ int x。0xf0; k=4。 for(;;){p3_O=1;p3_1=0; P1=b: delay();p3_0=O;p3_1=1; P1=a: delay(); }}void intr()interrupt 0{ unsigned charj,k; EX0=O; i++; j=iamp。 include void intr(void) void delay(void); unsigned char a,b,i=0;unsigned char code tab[16]={0x3f,0x06,0x5b,Ox4f,0x66,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x73}:sbit p3_O=P3^0; sbit p3_1=P3^1; main(){ a=tab[O]。 利用8XX51的并行口接2個數(shù)碼管,顯示INT1中斷次數(shù)(次數(shù)不超過FFH)。 略 ,要求亮、滅變換5次(一亮,一滅為一次),編出程序。C語言無循環(huán)移位指令,移位后,后面補零,因此和01相或。畫出電路圖,并編制程序。第6章 中斷 8XXSl有幾個中斷源?各中斷標志是如何產(chǎn)生的,又如何清除? 8XX51中斷源的中斷請求被響應(yīng)時,各中斷入口地址是多少?在什么物理存儲空間? MCS51系列單片機的中斷系統(tǒng)有幾個優(yōu)先級?如何設(shè)定? 簡述8XX51中斷處理的過程,畫出流程圖。 uint j; for(m=O;m8;i++){ P3=0x01: for(i=0;i4;i++){ P1=tabl[8] P3=1:for(j=0;j=25000;j++);}}} 利用89C51/89S51并行口設(shè)計88的矩陣鍵盤并用箭頭標明信號的方向。i++) {P3=tab[i]}; for(j=O;j10000;j++);/*延時*/}} 設(shè)計一個能顯示4位數(shù)碼的電路,并用C語言和匯編語言編程使“8”能跑馬顯示8遍。匯編語言程序 0RG 0000H MOV DPTR,TABAGAIN:MOV R0,0NEXT:MOV A,RO MOVC A,A+DPTR MOV P3,A MOV R7,0 DAY:NOP NOP DJNZ R7,DAY INC R0 CJNE R0,10H,NEXTSJMP AGAIN ;段碼表(略) TAB:DB 3FH,06H… ENDC語言程序include()defint uint unsigned intdefine uchar unsigned charmain(){ umtj; uchar i。 如使用共陰極數(shù)碼管,陰極接地,陽極a~g分別接P0~P3的某個口的7位,將0~F的段碼列成表,表的內(nèi)容順次從該口輸出。 while(1){ P1=~P1。 main( ){ int i。然后從P1口輸出,循環(huán)運行,注意輸出后要延時。相鄰的4個LED為一組,周而復(fù)始,畫出電路并編寫程序(,已存在)。如果再接一發(fā)光二極管,可觀察到發(fā)光二極管的閃爍。 利用8XX51的P1口,監(jiān)測某一按鍵開關(guān),使每按鍵一次,輸出一個正脈沖(脈寬隨意),畫出電路并編出程序。k=10000。 } 將內(nèi)部RAM 30H單元存放的2字節(jié)二進制數(shù)轉(zhuǎn)換為十進制數(shù)存于21H為首的單元中,長度存放于20H單元中。 main() { int data a=O,*P3: char i,*P1,*P2; Pl=0x20: P2=0x21: P3=0x30; for(i=O;i*P1;i++) { a=a*10+*P2。 for(m=0x10;m=0x15;m++) {n=m;*n=*m;}} 內(nèi)部RAM的20H、21H和22H、23H單元分別存放著兩個無符號的16位數(shù),將其中的大數(shù)置于24H和25H單元。 char data *n。ACC^0)|ACC^7;} 將外部RAM的10H~15H單元的內(nèi)容傳送到內(nèi)部RAM的10H~15H單元。} =+(“”表示邏輯與,“+”表示邏輯或)。P1=0x25。 *P2=tab[*P1]; }方法2:使用庫函數(shù)lnclude main(){float*P2。 P1=0x25。 方法l:使用查表法 float code tab[11]={0,1,1.4142,2, ,3,}: main() {char data*P1。 for(i=0:i8:i++){P1_1=msb; /*發(fā)出ACC的低位*/y=ACC1; /*ACC右移1位*/ lsb=P1_2; /*接收一位放在ACC的高位*/ P1_0=1; P1_0=O。 P1_0=0;Pl_3=1; for(i=O;i10;i++){*P=tlc( ); P++:}} uchar tlc(void){uchar i,y; ACC=0。 P1=0x04。 uchar tlc(void)。 sbit P1_3=P1^3; sbit msb=ACC^7。ORG 0000HMOV P1,04HMOV R6,0AHMOV R0,30HCLR SETB ACALL TLCSJMP $TLC:MOV A,0CLR MOV R5,08LOOP: MOV C,RLC ASETB CLR DJNZ R5,LOOPMOV RO,AINC R0DJNZ R6,TLC2543RETEND include(reg51.h) define uchar unsigned char sbit P1_0=P1^0。 bdata char a; xdata float b:xdata int~c; 編程將8XX51的內(nèi)部數(shù)據(jù)存儲器20H單元和35H單元的數(shù)據(jù)相乘,結(jié)果存到外部數(shù)據(jù)存儲器中(位置不固定)。 a為內(nèi)部RAM的可位尋址區(qū)的字符變量。 1:include 本程序有如下錯誤: 2:main() 3:{a=c; ①變量a,c必須先定義再引用 4:int a=7,c; ②第5句調(diào)用函數(shù)后必須加分號 . 5:delay() ③main()函數(shù)沒有反大括號 6:void delay(); ④被調(diào)函數(shù)delay()在main()后面,必須在前面先聲明 7:{ 8:char i; ⑤第6句函數(shù)說明語句后的分號應(yīng)去掉 9:for(i=O;i:255;i++); 10:} 試說明為什么xdata型的指針長度要用2個字節(jié)? 因為xdata是外部數(shù)據(jù)存儲器,最大可有64KB的存儲單元,xdata指針是表示外部數(shù)據(jù)存儲單元的地址,要表示64KB個單元地址,所以必須用2個字節(jié),共16位表示。 設(shè)一字節(jié)乘數(shù)存放在R1,三字節(jié)的被乘數(shù)存放在data開始的內(nèi)部RAM單元,且低字節(jié)存放在低位地址單元,R0作為被乘數(shù)和積的地址指針,用MUL指令完成一字節(jié)乘一字節(jié),每一次部分積的低位加上一次部分積的高位,其和的進位加在本次部分積的高位上,并暫存,三字節(jié)乘一字節(jié)共需這樣3次乘、加、存操作.以R7作循環(huán)3次的計數(shù)寄存器。ORG 0000H MOV C,20H ANL C,2FH CPL CORL C,/2FH CPL CANL C,53H MOV ,C SJMP $ END 用位操作指令實現(xiàn)下面的邏輯方程(表示邏輯乘,+表示邏輯加):=()+() ORG 0000H MOV C, ANL C。0RG 0000H MOV A,20H ANL A,0F0H SWAP A ACALL ASCII MOV 22H,A MOV A.20H ANL A,0FH ACALL ASCII MOV 21H,A SJMP $ ENDASCII:CJNE A,0AH,NE NE:JC A30 ADD A,37H RET A30:ADD A,30H RET 編寫一段程序,以實現(xiàn)圖中硬件的邏輯運算功能。 0RG 0000H MoV R7,0FH MOV R0,BUFl MOV B,0 MOV A,R0MOV R2,A NEXT:MOV A,R2 INC R0 ADD A,R0 MOV R2,A MOV A,B ADDC A,0 MOV B,A DJNZ R7,NEXT ;以上完成求和 MOV R6,04H MOV BUF2,AMOV BUF21,O NEX:CLR C MOV A,B RRC A MOV B,A MOV A,BUF2 RRC A MOV BUF2,A MOV A,BUF21 RRC A MOV BUF2l,A DJNZ R6,NEX SJMP $ ;以上完成除16運算 將內(nèi)部RAM的20H單元中的十六進制數(shù)變換成ASCII存入22H,21H單元,高位存入22H單元,要求用子程序編寫轉(zhuǎn)換部分。ORG 0000H MOV R7,03H MOV R0,DATA MOV A,RO CPL A ADD A,01 MOV RO,AAB:INC RO MOV A,RO CPL A ADDC A,O DJNZ R7,AB SJMP $ 以BUFl為起始地址的外存儲區(qū)中,存放有16個單字節(jié)無符號二進制數(shù),試編一個程序,求其平均值并送BUF2單元,余數(shù)存在BUF2—1單元。 取補不同于求補碼,求補碼應(yīng)區(qū)別正、負數(shù)分別處理,而取補不分正、負,因正、負數(shù)均有相對于模的補數(shù)。 可直接用P標志判斷(JB P,ret) ORG 0000H MOV A。RO指正數(shù)存放地址,Rl指負數(shù)存放地址,SP指源數(shù)據(jù)存放的末地址,POP指令取源數(shù)據(jù),每取一個數(shù)地址減1。 ORG 0000H MOV R7,05H MOV RO,20HMOV R1,25H NET:MOV A,RO ANL A,OFOH SWAP ADD A,30H MOV R1,A INC R1MOV A,RO ANL A,OFH ADD A,30H MOV R1,A INC R0 INC R1 DJNZ R7,NE SJMP $ END 從內(nèi)部存儲器30H單元開始,有16個數(shù)據(jù),試編一個程序,把其中的正數(shù)、負數(shù)分別送40H和50H開始的存儲單元,并分別將正數(shù)、負數(shù)和零的個數(shù)送R4,R5,R6。DELAY: MOV R1,0F8HLOOP: MOV R3,0FBHDJNZ R3,$DJNZ R1,LOOPRET fosc=6MHz,MC=2us 機器周期數(shù) DELAY:MOV R1,OF8H
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1