『壹』 三菱PLC步進梯形圖多初始狀態在GX模擬軟體中怎麼錄入呀比如一個程序中,有S0,還有S1 ,急急
按順序錄入就行,例如:第一段的是S0(後面是你的初始化程序),然後寫S1再繼續(後面是你S1後面的程序)即可!
『貳』 單片機我定義S1,S2,S3三位是低,模擬出來只有S1是低,其他兩位是灰色無效
S2,S3也出現過,是太快了,你看不見,應該有延時,還有語句後面是分號(;)
S1=0;
delay(100);
S2=0;
delay(100);
S3=0;
delay(100);
『叄』 單片機。c. bit s1,s2;啥意思
bit是位數據變數申明,這行的意思是位聲明變數s0和s1,他們的取值只有0或者1.當取值為0以外的數值時候,系統均以1看待,有點類似高級語言的True和False。它與sbit的區別是,相同的地方都是位申明,bit和int char差不多,只是一個是8位,而bit是1位;bit在編譯的時候分配的地址是隨機的,sbit編譯時候地址是固定的,即sbit可以定址操作,而bit不行。
『肆』 char s1[]="study"什麼意思
我用EXCEL作兩個表作為示意圖,表1為模擬編譯器編譯時建立的變數表,編譯器在為變數分配好內存後將變數注冊添加到此表內,之後遇到該變數就提取地址替換到目標代碼中。
假設內存分配在棧上且棧指針初始值指向1000,則表2即為分配s1後的內存情況,此時棧指針指向1006,下一個變數將從該地址開始分配。
這就是char s1[]="study"執行後的內存情況。
表1
『伍』 匯編語言 設s1變數存放著10個位元組,將位於0,2,4,6,8位移量的位元組與1,3,5,7,9位移量
Code Segment
Assume CS:Code,DS:Code
s1 db 129,78,99,72,63,51,49,37,253,199
Odd_Num equ 1 ;奇數
Even_Num equ 0 ;偶數
Parity equ Odd_Num ;相與結果存於奇數位元組
Start: push cs
pop ds
push cs
pop es ;使數據段、附加段與代碼段同段
cld
lea si,s1 ;變數s1首地址裝入源變址寄存器si
mov cx,5 ;循環次數(10個位元組,兩兩相與,循環5次)
.IF Parity==Odd_Num ;若把相與結果存於奇數位元組
L1: lodsb ;讀入偶數位元組至累加器AL(這條指令執行後,si自動增1)
and [si],al ;相與的結果存於奇數位元組
inc si ;准備處理後面的兩個位元組
loop L1
.ELSEIF Parity==Even_Num ;若把相與結果存於偶數位元組
L2: inc si ;si增1,准備讀取奇數位元組
lodsb ;讀入奇數位元組至累加器AL
and [si-2],al ;相與的結果存於偶數位元組
loop L2
.ENDIF
Exit_Proc: mov ah,4ch ;結束程序
int 21h
Code ENDS
END Start ;編譯到此結束
用偽指令實現分支結構
為了改善匯編語言源程序的結構,減少顯式轉移語句所帶來混亂,在宏匯編MASM 6.11系統中,增加了表達分支結構的偽指令。該偽指令的書寫格式與高級語言的書寫方式相類似,匯編程序在匯編時會自動增加轉移指令和相應的標號。理解並掌握該知識,對將來學習《編譯原理》課程也有一定的幫助。
分支偽指令的具體格式如下:
格式1:
.IF condition ;以英文「句號」開頭
指令序列 ;條件"condition"成立時所執行的指令序列
.ENDIF
格式2:
.IF condition
指令序列1
.ELSE
指令序列2 ;條件"condition"不成立時所執行的指令序列
.ENDIF
格式3:
.IF condition1
指令序列1
.ELSEIF condition2
指令序列2 ;條件"condition2"成立時所執行的指令序列
.ENDIF
其中:條件表達式「condition」的書寫方式與C語言中條件表達式的書寫方式相似,也可用括弧來組成復雜的條件表達式。
條件表達式中可用的操作符有:==(等於)、!=(不等)、>(大於)、>=(大於等於)、<(小於)、<=(小於等於)、&(位操作與)、!(邏輯非)、&&(邏輯與)、||(邏輯或)等。
若在條件表達式中檢測標志位的信息,則可以使用的符號名有:CARRY?(相當於CF==1)、OVERFLOW?(OF==1)、PARITY?(PF==1)、SIGN?(SF==1)、ZERO?(ZF==1)等。例如:
.IF CARRY? && AX != BX ;檢測CF==1且AX!=BX是否成立
;匯編語言指令序列
.ENDIF
在指令序列中,還可再含有其它的.IF偽指令,即:允許嵌套。偽指令.ELSEIF引導出另一個二叉分支,但它不能作偽指令塊的第一個偽指令。
匯編程序在對「條件表達式」進行代碼轉換時將進行代碼優化處理,以便盡可能生成最好的指令代碼。如:
.IF ax == 0
匯編程序會把它轉換為指令「OR ax, ax」,而不是「CMP ax, 0」,因為前者比後者更好,而不是簡單直接地轉換為後者。
『陸』 第二問怎麼解啊,跪求
另一個同樣的問題是你提問的吧。我在那個問題里已經把代碼發給你了。
我在之前那個問題里貼的模擬圖就是用我這邊hex模擬出來的。
所以第二問就是把我的代碼復制到你的工程里,編譯重構一下,就生成hex文件了,然後你把你那生成的hex文件上傳。
要是還是不明白怎麼生成hex,你直接參考網路文庫:
怎樣將keil工程代碼生成HEX文件
『柒』 編程編譯後出現出現use of undefined type '$S1',這是什麼意思呢
表示'$S1'這個符號沒有定義或聲明
『捌』 S1是什麼開關,在multisim里怎麼找,急求
這個應該就是一個按鍵,輕觸按鍵,一般是四個腳的。如果是模擬的話可以用按鈕代替~
『玖』 multisims1在哪裡
在菜單欄的中間部分。Multisim模擬軟體測試門電路延遲時間的方法,提出了三種測試方案,即將奇數個門首尾相接構成環形振盪電路,用虛擬示波器測試所產生振盪信號的周期,計算門的傳輸延遲時間;奇數個門首尾相接構成環形振盪電路,用虛擬示波器測試其中一個門的輸入信號、輸出信號波形及延遲時間;在一個門的輸入端加入矩形脈沖信號,測試一個門的輸入信號、輸出信號波形及延遲時間。所述方法的創新點是,解決了受示波器上限頻率限制實際硬體測試效果不明顯的問題,並給出Multisim軟體將門的初始輸出狀態設置為0時,使測試電路不能正常工作的解決方法。
『拾』 我就不明白了short s1=1;s1=s1+1;和short s1=1;s1+=1;有什麼區別
這個不是寫法的問題,而是你的類型的問題,short。
s1=s1+1; //這是一個短整型和一個整型運算,然後運算結果s1被強行自動升級為整形,而最初s1是聲明為短整型的,顯然矛盾,肯定會報錯。
s1+= 1; //這種寫法,強制把1轉換成short類型了,當然不會報錯了。
正確的寫法是:short s1=1;s1=(short)(s1+1); 或者 short s1=1;s1+=1;