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

正文內容

單片機原理及應用c語言版周國運習題答案-在線瀏覽

2024-08-07 13:41本頁面
  

【正文】 HMOV R0,38H ;數據傳送,直接尋址,(R0)=40HMOV P0,R0 ;數據傳送,直接尋址,(P0)=40HMOV 28H,30H ;數據傳送,立即數尋址,(28H)=30HMOV A,R0 ;數據傳送,寄存器間接尋址,(A)=38H9.已知(A)=23H,(R1)=65H,(DPTR)=1FECH,片內RAM(65H)=70H, ROM(205CH)=64H。MOV A,R1 ;(A)=70HMOVX DPTR,A ;(1FECH)=70HMOVC A,A+DPTR ;(A)=64HXCHD A,R1 ;(A)=65H10.已知(A)=76H,(R1)=76H,(B)=4,CY=1,片內RAM(76H)=0D0H,(80H)=6CH。ADD A,R1 ;(A)=46H,CY=1SUBB A,75H ;(A)=0D0H,CY=1MUL AB ;(A)=40H,(B)=03HDIV AB ;(A)=15H,(B)=01HANL 76H,76H ;(76H)=50HORL A,0FH ;(A)=1FHXRL 80H,A ;(80H)=73H11.已知(A)=83H,(R0)=17H,(17H)=34H,試分析當執(zhí)行完下面程序段后累加器A、R0、17H單元的內容。MOV R0,40HMOV R7,10CLR ALOOP:MOV R0,AINC AINC R0DJNZ R7,LOOPSJMP $ 答:把0,1,2,3……數列送到40H開始的10個單元中。MOV R0,40HMOV A,R0INC R0ADD A,R0MOV 43H,ACLR AADDC A,0MOV 42H,ASJMP $ 答:40H加41H單元的數,結果送42H:43H14.閱讀下面程序段,說明該段程序的功能。MOV C,ANL C,ORL C,ORL C,MOV ,C16.編寫程序,若累加器A的內容分別滿足下列條件,則程序轉到LABLE存儲單元。(1)A≥10; (2)A>10; (3)A≤10。MOV R0,29HNEXT:INC R0CJNE R0,51H,NEXT2MOV 51H,0FFHAJMP OVERNEXT2:CJNE R0,55H,NEXTMOV 51H,0OVER:18.編寫程序,查找片內RAM的30H~50H單元中出現(xiàn)0的次數,并將查找的結果存入51H單元。MOV DPTR,SOURCEMOV R0,DISTNEXT:MOVX A,DPTRMOV R0,AINC DPTRINC R0CINE A,24H,NEXT20.片內RAM的30H和31H單元中存放著一個16位的二進制數,高位在前,低位在后。CLR CMOV A,0SUBB A,31HMOV 31H,AMOV A,0SUBB A,30HMOV 30H,A21.片內RAM中有兩個4字節(jié)壓縮的BCD碼形式存放的十進制數,一個存放在30H~33H單元中,另一個存放在40H~43H單元中。CLR CMOV R0,30HMOV R1,40HMOV R2,4NEXT:MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,NEXT22.編寫程序,把片外RAM從2000H開始存放的16字節(jié)數據,傳送到片內從30H開始的單元中。整型變量(int)不管是unsigned int數據還是signed int數據,均為2個字節(jié),即16位,其存儲方法是高位字節(jié)保存在低地址(在前面),低位字節(jié)保存在高地址(在后面)。3.C51定義變量的一般格式是什么?變量的4種屬性是什么?特別要注意存儲區(qū)屬性。5.C51位變量的定義格式是什么?如何定義bdata型字節(jié)變量的位變量?答:[存儲類型] bit 位變量名1[=初值] [,位變量名2[=初值]] [,…]sbit 位變量名 = bdata型變量名^位號常數6.如何定義8位字節(jié)型特殊功能寄存器?如何定義16位特殊功能寄存器?如何定義特殊功能寄存器的位變量?答:sfr 特殊功能寄存器名 = 地址常數sfr16 特殊功能寄存器名 = 地址常數 sbit 位變量名 = 特殊功能寄存器名^位號常數7.C51專用指針定義的一般格式是什么?如何確定專用指針定義的指向空間和指針變量本身存儲的空間?答:[存儲類型] 數據類型 指向存儲區(qū) *[指針存儲區(qū)] 指針名1 [,*[指針存儲區(qū)] 指針名2,…]*的左面是指向存儲區(qū),*的右面是指針存儲區(qū)8.C51函數定義的一般形式是什么?如何定義中斷處理程序?如何選擇工作寄存器組?答:返回類型 函數名(形參表) [函數模式] [reentrant] [interrupt m] [using n]{ 局部變量定義 執(zhí)行語句}[interrupt m]字段中的m定義中斷處理程序的中斷號[using n]字段中的n選擇工作寄存器組9.在C51中,對匯編語言函數的命名規(guī)則是怎樣的,具體地說:不傳遞參數的函數名格式是什么?通過寄存器傳遞參數的函數名格式是什么?傳遞參數重入函數的函數名格式是什么?答:?PR?函數名?模塊名 //不傳遞參數?PR?_函數名?模塊名 //通過寄存器傳遞參數?PR?_?函數名?模塊名 //對重入函數通過堆棧傳遞參數10.在C51中,函數返回值傳遞的規(guī)則是什么?答:(1)調用時參數的傳遞分三種情況:少于等于3個參數時通過寄存器傳遞(寄存器不夠用時通過存儲區(qū)傳遞),多于3個時有一部分通過存儲區(qū)傳遞,對于重入函數參數通過堆棧傳遞。(2)函數返回值的傳遞當函數有返回值時,其傳遞都是通過寄存器11.在C51中,怎樣嵌入匯編語言程序?怎樣進行處理實現(xiàn)混合編程?答:其方法是用編譯控制指令“pragma src”、“pragma asm”和“pragma endasm”實現(xiàn)。對于函數的調用方法,與調用匯編語言中的函數一樣,在C語言文件中調用匯編語言中的函數,必須先聲明再調用。聲明格式為:PUBLIC 函數名引用聲明。聲明格式為:EXTRN 存儲區(qū)域類型(變量名)匯編語言函數的格式如下: RSEG ?PR?函數名?模塊名函數名:14.在C51中怎樣把函數定義到確定的位置?答:對函數的定位方法, CSEG AT 001BH 15.如何在C51文件和匯編語言文件中相互調用對方文件中的函數?答:匯編語言文件中對于函數的調用方法,與調用匯編語言中的函數一樣,如: LCALL DISPLAY 在C語言文件中調用匯編語言中的函數,必須先聲明再調用。16.在C51中,如何訪問DATA空間、PDATA空間、XDATA空間、CODE空間某個確定地址單元?答:用指針定義的訪問存儲器的宏使用時需要用預處理命令把該頭文件包含到文件中,形式為:include 。(2)定義定時器/計數器0的賦計數值的高、低字節(jié)變量TL0_L和TH0_H,將其定義在DATA去區(qū)的0x0x31處。(4)定義長度為100的無符號字符型數組data_array于XDATA區(qū)中。答:(1)unsigned char code dis_code[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f}。(3)unsigned char idata data_buf[20];(4)unsigned char xdata data_array[100];(5)unsigned char bdata status;sbit flag_lamp1=status^0。 sbit flag_machine1=status^2。 sbit flag_port1=status^4。 sbit flag_calcu1=status^6。 18.在89C52單片機中增加了定時器/計數器2(T2),修改頭文件“”,添加如下內容:(1)特殊功能寄存器T2CON、T2MOD、RCAP2L、RCAP2H、TLTH2,地址分別為0xc8~ 0xcd。(3)定義位變量TT2EX對應于P1口的第0位和第1位;定義位變量ET2對應于EI的第5位;定義位變量PT2對應于IP的第5位;(4)對P1口的8個位分別定義位變量P0_0、P0_P0_P0_P0_P0_P0_6和P0_7(從低位到高位)。sfr T2MOD=0xc9。sfr RCAP2H=0xcb。sfr TH2=0xcd。 sbit C_T2=T2CON^1。 sbit EXEN2=T2CON^3。 sbit RCLK=T2CON^5。 sbit TF2=T2CON^7。sbit T2EX=P1^1。sbit PT2=IP^5。sbit P0_1=P0^1。sbit P0_3=P0^3。sbit P0_5=P0^5。sbit P0_7=P0^7。設從鍵盤輸入的數存放在一無符號數組中,低位數為低下標元素。unsigned int trans_int(void){ unsigned char data i。 for(i=0。i++) { temp=temp*10+key_buffer[i]0x30。}20.編寫一C51函數,把一整型數按十進制數將其各位分離,分離后放在一無符號數組中,便于顯示。unsigned char data shu[5]。unsigned char i。i4。 temp=temp/10。}21.編寫一C51函數,使用專用指針,把片外數據存儲器中從0x100開始的30個字節(jié)數據,傳送到片內從0x40開始的區(qū)域中。 unsigned char xdata *xdpt。 xdpt=0x100。i30。}22.編寫一C51程序,實現(xiàn)從P1口輸出產生的流水燈,要求用匯編語言函數實現(xiàn)數據左移或右移。 while(1) {temp=0x55。delay()。delay()。試編寫一函數,使從P2口輸出的值產生三角波,并且使三角波的周期和最大值通過入口參數能夠改變。 max=max1。while(1) { for(i=0。 for(j=0。j++) delay()。i0,i) { DAC0832=i。jzhou/max。}}24.在數字濾波中有一種叫做“中值濾波”技術,就是對采集的數據按照從大到小或者從小到大進行排序,然后取其中在中間位置的數作為采樣值。void midf(){ unsigned char data temp,i,j,*ptr,*ptr1。ptr1=0x4f。j1,j){ for(i=0。i++) { if(*(ptr+i)*(ptr+i+1)) {temp=*(ptr+i+1)。*(ptr+i)=temp。}25.在數字濾波中有一種叫做“去極值平均濾波”技術,就是對采集的數據按照從大到小或者從小到大進行排序,然后去掉相同數目的極大值和極小值,對中間部分數據求算術平均值作為采樣值。void teaf(){ unsigned char xdata *ptr。 ptr=0x150。 for(j=16。ij。*(ptr+i+1)=*(ptr+i)。 }}}temp=0。i162。 *ptr1=temp/(162)。include void main(){ unsigned char data *dpt。 dpt=0x40。 if(temp==0x0d)break。 i++。include void main(){ unsigned char xdata *xdpt。 xdpt=0x240。temp)。 *(xdpt+i)=temp。}}28.利用庫函數putchar編寫一函數,實現(xiàn)從單片機串行口發(fā)送數據的C51程序,發(fā)送的數據存放在片內數據存儲器從0x50開始的區(qū)域,遇到回車符CR(ASCII碼是0x0d)結束。 unsigned char i=0。 while(*(dpt+i)!=0x0d) { putchar(*(dpt+i))。}}29.利用庫函數printf編寫一函數,實現(xiàn)從單片機串行口發(fā)送數據的C51程序,發(fā)送的數據存放在片外數據存儲器從0x100開始的區(qū)域,遇到回車符CR(ASCII碼是0x0d)結束。 unsigned char i=0。 while(*(xdpt+i)!=0x0d) { printf(“%c”,*(xdpt+i))。}}30.編寫一定時器/計數器0定時100ms中斷處理函數,使函數實現(xiàn)時鐘的功能,即產生時鐘的秒、分鐘和小時。設fosc=6mhzinclude sfr TIMER_H=0x8b。unsigned char data shi,fen,miao,bfm。 TIMER_H=15536/16。 ET0=1。 TR0=1。}void time0_int() interrupt 1{ TIMER_H=15536/16。 bfm++。 miao++。 fen++。 shi++
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1