第一篇:Excel VBA常用代碼總結(jié)1
Excel VBA常用代碼總結(jié)1?
改變背景色
Range(“A1”).Interior.ColorIndex = xlNone ColorIndex一覽
? ? 改變文字顏色 獲取單元格 Range(“A1”).Font.ColorIndex = 1 Cells(1, 2)Range(“H7”)? 獲取范圍
Range(Cells(2, 3), Cells(4, 5))Range(“a1:c3”)'用快捷記號(hào)引用單元格
Worksheets(“Sheet1”).[A1:B5] ? 選中某sheet SetNewSheet = Sheets(“sheet1”)NewSheet.Select ? 選中或激活某單元格
'“Range”對(duì)象的的Select方法可以選擇一個(gè)或多個(gè)單元格,而Activate方法可以指定某一個(gè)單元格為活動(dòng)單元格。
'下面的代碼首先選擇A1:E10區(qū)域,同時(shí)激活D4單元格: Range(“a1:e10”).Select Range(“d4:e5”).Activate '而對(duì)于下面的代碼: Range(“a1:e10”).Select Range(“f11:g15”).Activate '由于區(qū)域A1:E10和F11:G15沒(méi)有公共區(qū)域,將最終選擇F11:G15,并激活F11單元格。
? 獲得文檔的路徑和文件名
ActiveWorkbook.Path
'路徑 ActiveWorkbook.Name
'名稱
ActiveWorkbook.FullName '路徑+名稱 '或?qū)ctiveWorkbook換成thisworkbook
? ? ? ? 隱藏文檔 禁止屏幕更新
禁止顯示提示和警告消息 文件夾做成 Application.Visible = False Application.ScreenUpdating = False Application.DisplayAlerts = False strPath = “C:temp” MkDirstrPath ? ? 狀態(tài)欄文字表示 雙擊單元格內(nèi)容變換 Application.StatusBar = “計(jì)算中”
PrivateSubWorksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)If(Target.Cells.Row>= 5AndTarget.Cells.Row<= 8)Then IfTarget.Cells.Value = “●”Then Target.Cells.Value = “" Else
Target.Cells.Value = ”●“ EndIf
Cancel = True EndIf End Sub
? 文件夾選擇框方法1
SetobjShell = CreateObject(”Shell.Application“)SetobjFolder = objShell.BrowseForFolder(0, ”文件“, 0, 0)IfNotobjFolderIsNothing
Then path= objFolder.self.Path&”“ endif SetobjFolder = Nothing SetobjShell = Nothing
? 文件夾選擇框方法2(推薦)
PublicFunctionChooseFolder()AsString DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFolderPicker)WithdlgOpen.InitialFileName = ThisWorkbook.path&”“ If.Show =-1Then
ChooseFolder =.SelectedItems(1)EndIf EndWith
SetdlgOpen = Nothing End Function
'使用方法例:
Dim path AsString path = ChooseFolder()If path <>”“Then MsgBox”open folder“ EndIf
? 文件選擇框方法
PublicFunctionChooseOneFile(OptionalTitleStrAsString = ”Please choose a file“, OptionalTypesDecAsString = ”*.*“, OptionalExtenAsString = ”*.*“)AsString
DimdlgOpenAsFileDialog SetdlgOpen = Application.FileDialog(msoFileDialogFilePicker)WithdlgOpen.Title = TitleStr.Filters.Clear.Filters.AddTypesDec, Exten.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path If.Show =-1Then
'.AllowMultiSelect = True ' For Each vrtSelectedItemIn.SelectedItems ' MsgBox ”Path name: “ &vrtSelectedItem ' Next vrtSelectedItem
ChooseOneFile =.SelectedItems(1)EndIf EndWith
SetdlgOpen = Nothing End Function
? 某列到關(guān)鍵字為止循環(huán)方法1(假設(shè)關(guān)鍵字是end)SetCurrentCell = Range(”A1“)DoWhileCurrentCell.Value<>”end“ ??
SetCurrentCell = CurrentCell.Offset(1, 0)Loop
? 某列到關(guān)鍵字為止循環(huán)方法2(假設(shè)關(guān)鍵字是空字符串)i = StartRow DoWhileCells(i, 1)<>”“ ??
i = i + 1 Loop
? ”For Each...Next 循環(huán)(知道確切邊界)ForEach c InWorksheets(“Sheet1”).Range(“A1:D10”).Cells
IfAbs(c.Value)<0.01Thenc.Value = 0 Next
? “For Each...Next 循環(huán)(不知道確切邊界),在活動(dòng)單元格周圍的區(qū)域內(nèi)循環(huán)
ForEach c InActiveCell.CurrentRegion.Cells IfAbs(c.Value)<0.01Thenc.Value = 0 Next
? 某列有數(shù)據(jù)的最末行的行數(shù)的取得(中間不能有空行)lonRow=1
DoWhileTrim(Cells(lonRow, 2).Value)<>”“ lonRow = lonRow + 1 Loop
lonRow11 = lonRow1164)比如i=A的時(shí)候,Asc(it >= num * 1000 DoEvents Loop End Sub
'***************************************************************
使用方法: delay 3'3表示秒數(shù)
? 殺掉某程序執(zhí)行的所有進(jìn)程
SubKillWord()
Dim Process
ForEach Process InGetObject(”winmgmts:“).ExecQuery(”select * from Win32_Process where name='WINWORD.EXE'“)Process.Terminate(0)Next
End Sub
? 監(jiān)視某單元格的變化
這里最需要注意的問(wèn)題就是,如果在這個(gè)事件里對(duì)單元格進(jìn)行改變,會(huì)繼續(xù)出發(fā)此事件變成死循環(huán)。
所以要在對(duì)單元格進(jìn)行變化之前加上Application.EnableEvents = False,變完之后再改為True。
PrivateSubWorksheet_Change(ByVal Target As Range)OnErrorGoTo Err Application.EnableEvents = False Dim c SetdicKtoW = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 2)SetdicKtoX = SetDic(ThisWorkbook.Sheets(”reference“), 3, 1, 3)ForEach c In Target Ifc.Column = 11Then 'MsgBoxc.Value
Me.Range(”W“&c.Row).Value = GetDic(dicKtoW, c.Value)Me.Range(”X“&c.Row).Value = GetDic(dicKtoX, c.Value)EndIf Next SetdicKtoW = Nothing SetdicKtoX = Nothing
Application.EnableEvents = True Exit Sub Err: MsgBox(”Error!Please contact macro developer.“)Application.EnableEvents = True End Sub
? On Error的用法
1.一般用法
OnErrorGoTo Label 各種代碼 exit sub Label: msgboxErr.Description 其他錯(cuò)誤處理
2.對(duì)于某段代碼單獨(dú)處理 OnErrorResumeNext 需要監(jiān)視的代碼
IfErr.Number<>0Then MsgBoxErr.Description EndIf
OnErrorGoTo0
3.上述兩種的結(jié)合 OnErrorResumeNext 需要監(jiān)視的代碼
IfErr.Number<>0Then MsgBoxErr.Description Goto Label EndIf
OnErrorGoTo0 exit sub Label: 其他錯(cuò)誤處理
? EXCEL的分組功能和展開(kāi)收縮功能
'將A列到C列進(jìn)行分組
Range(”A:C“).Columns.Group
'默認(rèn)情況下,分組后的A到C列會(huì)是展開(kāi)狀態(tài),如果想讓A到C列收縮 Range(”A:C").EntireColumn.Hidden=True
第二篇:軟件工程代碼總結(jié)
1、事件
處理事件的方法
2、class和id的用途是不一樣的;首先要說(shuō)明一下,選擇器一共有三種:
html標(biāo)記,class,id;html標(biāo)記就不說(shuō)了,class是對(duì)html標(biāo)記選擇器的一種擴(kuò)展,CLASS可以給多個(gè)標(biāo)記反復(fù)利用;而ID的目的在于被Javascript使用,來(lái)動(dòng)態(tài)改變CSS,所以2種的實(shí)際用途是截然不同的。
如:“id”對(duì)應(yīng)“#”,“class”對(duì)應(yīng)“.”.id是唯一標(biāo)志的,在同一頁(yè)面中不能有相同的值,class則沒(méi)這約束。如: Css #div1{......}.div2{......}
//class可以相同重復(fù)用
第三篇:寫代碼總結(jié)
一、排版:
1.關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭瘛?/p>
2.相對(duì)獨(dú)立的程序塊與塊之間加空行
3.較長(zhǎng)的語(yǔ)句、表達(dá)式等要分成多行書(shū)寫。
4.劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn),使排版整齊,語(yǔ)句可讀。
5.長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。
6.循環(huán)、判斷等語(yǔ)句中若有較長(zhǎng)的表達(dá)式或語(yǔ)句,則要進(jìn)行適應(yīng)的劃分。
7.若函數(shù)或過(guò)程中的參數(shù)較長(zhǎng),則要進(jìn)行適當(dāng)?shù)膭澐帧?/p>
8.不允許把多個(gè)短語(yǔ)句寫在一行中,即一行只寫一條語(yǔ)句。
9.函數(shù)或過(guò)程的開(kāi)始、結(jié)構(gòu)的定義及循環(huán)、判斷等語(yǔ)句中的代碼都要采用縮進(jìn)風(fēng)格。
10.C/C++語(yǔ)言是用大括號(hào)?{?和?}?界定一段程序塊的,編寫程序塊時(shí)?{?和
?}?應(yīng)各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊。在函數(shù)體的開(kāi)始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case語(yǔ)句中的程序都要采用如上的縮進(jìn)方式。
二、注釋
1.注釋要簡(jiǎn)單明了。
2.邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。
3.在必要的地方注釋,注釋量要適中。注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。
4.對(duì)代碼的注釋應(yīng)放在其上方相鄰位置,不可放在下面。
5.對(duì)數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對(duì)結(jié)構(gòu)中的每個(gè)域的注釋應(yīng)放在此域的右方;同一結(jié)構(gòu)中不同域的注釋要對(duì)齊。
6.變量、常量的注釋應(yīng)放在其上方相鄰位置或右方。
7.全局變量要有較詳細(xì)的注釋,包括對(duì)其功能、取值范圍、哪些函數(shù)或過(guò)程存取它以及存取時(shí)注意事項(xiàng)等的說(shuō)明。
8.在每個(gè)源文件的頭部要有必要的注釋信息,包括:文件名;版本號(hào);作者;生成日期;模塊功能描述(如功能、主要算法、內(nèi)部各部分之間的關(guān)系、該文件與其它文件關(guān)系等);主要函數(shù)或過(guò)程清單及本文件歷史修改記錄等。
9.在每個(gè)函數(shù)或過(guò)程的前面要有必要的注釋信息,包括:函數(shù)或過(guò)程名稱;功能描述;輸入、輸出及返回值說(shuō)明;調(diào)用關(guān)系及被調(diào)用關(guān)系說(shuō)明等。
三、命名
1.較短的單詞可通過(guò)去掉“元音”形成縮寫;
2.較長(zhǎng)的單詞可取單詞的頭幾發(fā)符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí)。
3.使用匈牙利表示法
四、可讀性
1.避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來(lái)替代。
2.不要使用難懂的技巧性很高的語(yǔ)句。
3.源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。
五、變量
1.去掉沒(méi)必要的公共變量。
2.構(gòu)造僅有一個(gè)模塊或函數(shù)可以修改、創(chuàng)建,而其余有關(guān)模塊或函數(shù)只訪問(wèn)的公共變量,防止多個(gè)不同模塊或函數(shù)都可以修改、創(chuàng)建同一公共變量的現(xiàn)象。
3.仔細(xì)定義并明確公共變量的含義、作用、取值范圍及公共變量間的關(guān)系。
4.明確公共變量與操作此公共變量的函數(shù)或過(guò)程的關(guān)系,如訪問(wèn)、修改及創(chuàng)建等。
5.當(dāng)向公共變量傳遞數(shù)據(jù)時(shí),要十分小心,防止賦與不合理的值或越界等現(xiàn)象發(fā)生。
6.防止局部變量與公共變量同名。
7.仔細(xì)設(shè)計(jì)結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象。
8.結(jié)構(gòu)的設(shè)計(jì)要盡量考慮向前兼容和以后的版本升級(jí),并為某些未來(lái)可能的應(yīng)用保留余地(如預(yù)留一些空間等)。
9.留心具體語(yǔ)言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié)。
10.嚴(yán)禁使用未經(jīng)初始化的變量。聲明變量的同時(shí)對(duì)變量進(jìn)行初始化。
11.編程時(shí),要注意數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。
六、函數(shù)、過(guò)程
1.函數(shù)的規(guī)模盡量限制在200行以內(nèi)。
2.一個(gè)函數(shù)最好僅完成一件功能。
3.為簡(jiǎn)單功能編寫函數(shù)。
4.函數(shù)的功能應(yīng)該是可以預(yù)測(cè)的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。
5.盡量不要編寫依賴于其他函數(shù)內(nèi)部實(shí)現(xiàn)的函數(shù)。
6.避免設(shè)計(jì)多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。
7.用注釋詳細(xì)說(shuō)明每個(gè)參數(shù)的作用、取值范圍及參數(shù)間的關(guān)系。
8.檢查函數(shù)所有參數(shù)輸入的有效性。
9.檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。
10.函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。
11.避免使用無(wú)意義或含義不清的動(dòng)詞為函數(shù)命名
12.函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯(cuò)誤情況。
13/明確函數(shù)功能,精確(而不是近似)地實(shí)現(xiàn)函數(shù)設(shè)計(jì)。
14.減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。
15.編寫可重入函數(shù)時(shí),若使用全局變量,則應(yīng)通過(guò)關(guān)中斷、信號(hào)量(即P、V操作)等手段對(duì)其加以保護(hù)。
七、可測(cè)性
1.在編寫代碼之前,應(yīng)預(yù)先設(shè)計(jì)好程序調(diào)試與測(cè)試的方法和手段,并設(shè)計(jì)好各種調(diào)測(cè)開(kāi)關(guān)及相應(yīng)測(cè)試代碼如打印函數(shù)等。
2.在進(jìn)行集成測(cè)試/系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測(cè)試環(huán)境、測(cè)試項(xiàng)目及測(cè)試用例,同時(shí)仔細(xì)分析并優(yōu)化測(cè)試用例,以提高測(cè)試效率。
八、程序效率
1.編程時(shí)要經(jīng)常注意代碼的效率。
2.在保證軟件系統(tǒng)的正確性、穩(wěn)定性、可讀性及可測(cè)性的前提下,提高代碼效率。
3.不能一味地追求代碼效率,而對(duì)軟件的正確性、穩(wěn)定性、可讀性及可測(cè)性造成影響。
4.編程時(shí),要隨時(shí)留心代碼效率;優(yōu)化代碼時(shí),要考慮周全。
5.要仔細(xì)地構(gòu)造或直接用匯編編寫調(diào)用頻繁或性能要求極高的函數(shù)。
6.通過(guò)對(duì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)劃分與組織的改進(jìn),以及對(duì)程序算法的優(yōu)化來(lái)提高空間效率。
7.在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層。
8.盡量減少循環(huán)嵌套層次。
9.避免循環(huán)體內(nèi)含判斷語(yǔ)句,應(yīng)將循環(huán)語(yǔ)句置于判斷語(yǔ)句的代碼塊之中。
10.盡量用乘法或其它方法代替除法,特別是浮點(diǎn)運(yùn)算中的除法。
九、質(zhì)量保證
1.在軟件設(shè)計(jì)過(guò)程中構(gòu)筑軟件質(zhì)量。
代碼質(zhì)量保證優(yōu)先原則
(1)正確性,指程序要實(shí)現(xiàn)設(shè)計(jì)要求的功能。
(2)穩(wěn)定性、安全性,指程序穩(wěn)定、可靠、安全。
(3)可測(cè)試性,指程序要具有良好的可測(cè)試性。
(4)規(guī)范/可讀性,指程序書(shū)寫風(fēng)格、命名規(guī)則等要符合規(guī)范。
(5)全局效率,指軟件系統(tǒng)的整體效率。
(6)局部效率,指某個(gè)模塊/子模塊/函數(shù)的本身效率。
(7)個(gè)人表達(dá)方式/個(gè)人方便性,指?jìng)€(gè)人編程習(xí)慣。
2.只引用屬于自己的存貯空間。
3.防止引用已經(jīng)釋放的內(nèi)存空間。
4.過(guò)程/函數(shù)中分配的內(nèi)存,在過(guò)程/函數(shù)退出之前要釋放。
5.過(guò)程/函數(shù)中申請(qǐng)的(為打開(kāi)文件而使用的)文件句柄,在過(guò)程/函數(shù)退出前要關(guān)閉。
6.防止內(nèi)存操作越界。
7.時(shí)刻注意表達(dá)式是否會(huì)上溢、下溢。
8.認(rèn)真處理程序所能遇到的各種出錯(cuò)情況。
9.系統(tǒng)運(yùn)行之初,要初始化有關(guān)變量及運(yùn)行環(huán)境,防止未經(jīng)初始化的變量被引用。
10.系統(tǒng)運(yùn)行之初,要對(duì)加載到系統(tǒng)中的數(shù)據(jù)進(jìn)行一致性檢查。
11.嚴(yán)禁隨意更改其它模塊或系統(tǒng)的有關(guān)設(shè)置和配置。
12.不能隨意改變與其它模塊的接口。
13.充分了解系統(tǒng)的接口之后,再使用系統(tǒng)提供的功能。
14.要時(shí)刻注意易混淆的操作符。當(dāng)編完程序后,應(yīng)從頭至尾檢查一遍這些操作符。
15.不使用與硬件或操作系統(tǒng)關(guān)系很大的語(yǔ)句,而使用建議的標(biāo)準(zhǔn)語(yǔ)句。
16.建議:使用第三方提供的軟件開(kāi)發(fā)工具包或控件時(shí),要注意以下幾點(diǎn):
(1)充分了解應(yīng)用接口、使用環(huán)境及使用時(shí)注意事項(xiàng)。
(2)不能過(guò)分相信其正確性。
(3)除非必要,不要使用不熟悉的第三方工具包與控件。
十、代碼編譯
1.編寫代碼時(shí)要注意隨時(shí)保存,并定期備份,防止由于斷電、硬盤損壞等原因造成代碼丟失。
2.同一項(xiàng)目組內(nèi),最好使用相同的編輯器,并使用相同的設(shè)置選項(xiàng)。
3.合理地設(shè)計(jì)軟件系統(tǒng)目錄,方便開(kāi)發(fā)人員使用。
4.打開(kāi)編譯器的所有告警開(kāi)關(guān)對(duì)程序進(jìn)行編譯。
5.在同一項(xiàng)目組或產(chǎn)品組中,要統(tǒng)一編譯開(kāi)關(guān)選項(xiàng)。
6.使用工具軟件(如Visual SourceSafe)對(duì)代碼版本進(jìn)行維護(hù)。
十一、代碼測(cè)試、維護(hù)
1.單元測(cè)試要求至少達(dá)到語(yǔ)句覆蓋。
2.單元測(cè)試開(kāi)始要跟蹤每一條語(yǔ)句,并觀察數(shù)據(jù)流及變量的變化。
3.清理、整理或優(yōu)化后的代碼要經(jīng)過(guò)審查及測(cè)試。
4.代碼版本升級(jí)要經(jīng)過(guò)嚴(yán)格測(cè)試。
第四篇:域代碼編寫總結(jié)
word域代碼詳解
域的基本操作
Ctrl+F9 插入域
Ctrl+Shift+F9把域轉(zhuǎn)為純文本 Shift+F9 切換為域代碼顯示
十個(gè)特殊指令(域開(kāi)關(guān))
1、數(shù)組a
2、括號(hào)b
3、平移d
4、分式f
5、積分i
6、列表l
7、重疊o
8、根號(hào)r
9、上下標(biāo)s
10、框x
域代碼: {EQ a(100,2,31)}
講解: {EQ列表(100,2,31排成一列)}
可用參數(shù):
al左對(duì)齊;ac居中;ar右對(duì)齊;con元素排成 n 列;vsn行間增加 n 磅;hsn列間增加n磅
al左對(duì)齊
域代碼: {EQ aal(100,2,31)}
講解: {EQ 列表左對(duì)齊(100,2,31)}
ac居中
域代碼:{EQ aac(100,2,31)}
講解:{EQ 列表居中對(duì)齊(100,2,31)}
ar右對(duì)齊
域代碼:{EQ aar(100,2,31)}
講解:{EQ 列表右對(duì)齊(100,2,31)}
con元素排成n列
域代碼:{EQ aco3(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列(10,2,31,0,1,0,14,3,55)}
vsn 行間增加n磅
域代碼:{EQ aco3vs2(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列行間增加2磅}
hsn 列間增加n磅
域代碼:{EQ aco3vs2hs4(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列行間增加2磅列間增加4磅}
域代碼:{EQ b(a(100,2,31))}
講解:{EQ 加括號(hào)(數(shù)組(100,2,31))}
可用參數(shù):
左括號(hào)使用字符 lc;右括號(hào)使用字符 rc;左右括號(hào)都使用字符bc
lc* 左括號(hào)使用字符*
域代碼:{EQ blc|(a(100,2,31))}
講解:{EQ 加括號(hào)左括號(hào)使用字符|(數(shù)組(100,2,31))}
rc* 右括號(hào)使用字符*
域代碼:{EQ brc|(a(100,2,31))}
講解:{EQ 加括號(hào)右括號(hào)使用字符|(數(shù)組(100,2,31))}
bc* 左右括號(hào)都使用字符*
域代碼:{EQ bbc|(a(100,2,31))}
講解:{EQ 加括號(hào)左右括號(hào)使用字符|(數(shù)組(100,2,31))}
注意:如果指定的字符*是 {、[、(、或 <,Word 將使用相應(yīng)的字符作為右括號(hào)。如果指定其他字符,Word將使用該字符作為相同的左右括號(hào)。默認(rèn)括號(hào)為圓括號(hào)。
3、位移開(kāi)關(guān) d(): 控制 EQ 域之后下一個(gè)字符的位置。
空?qǐng)A括號(hào)只跟在指令最后一個(gè)選項(xiàng)后面。
域代碼:{EQ-d()A-}
講解:{EQ-下一個(gè)字符后移 A-}
可用參數(shù):
fon右邊n磅;ban左邊n磅;li為下一個(gè)字符前的空白添加下劃線
fon 右邊n磅
域代碼:{EQ-dfo5()A-}
講解:{EQ-下一個(gè)字符后移5磅 A-}
ban 左邊n磅
域代碼:{EQ-d ba7(A-)}
講解:{EQ-下一個(gè)字符前移7磅}
li 為下一個(gè)字符前的空白添加下劃線
域代碼:{EQ 我 dfo12li()你 }
講解:{EQ 我 下一個(gè)字符后移12磅,空白添加下劃線 你}
4、分?jǐn)?shù)開(kāi)關(guān) f(,): 創(chuàng)建分?jǐn)?shù),分子分母分別在分?jǐn)?shù)線上下居中。
域代碼:{EQ 18f(5,132)}
講解:{EQ 18分?jǐn)?shù)(分子,分母)}
無(wú)可用參數(shù)。
符號(hào)或默認(rèn)符號(hào)及三個(gè)元素創(chuàng)建積分。
第一個(gè)元素是積分下限,第二個(gè)是上限,第三個(gè)是積分表達(dá)式。
域代碼:{EQ i(a,b,3x+1 dx)}
講解:{EQ 積分(下標(biāo)a,上標(biāo)b,表達(dá)式3x+1 dx)}
可用參數(shù): 將符號(hào)更改為∑ 并生成求和公式su ;將符號(hào)更改為大寫的 Π 并生成求積公式pr ;創(chuàng)建行內(nèi)格式,積分限不在符號(hào)的上下,而在符號(hào)之右in ;將符號(hào)設(shè)置為固定高度的字符 fcc。
su 生成求和公式
域代碼:{EQ isu(i=1,n,xi)}
講解:{EQ 求和(下標(biāo)a,上標(biāo)b,表達(dá)式xi)
pr 生成求積公式
域代碼:{EQ ipr(i=1,n,xi)}
講解:{EQ 求積(下標(biāo)i=1,上標(biāo)n,表達(dá)式 xi)
in 積分限不在符號(hào)的上下,而在符號(hào)之右
域代碼:{EQ iin(a,b,3x+1 dx)}
講解:{EQ 積分積分限在符號(hào)之右(a,b,3x+1 dx)}
fcc將符號(hào)c設(shè)置為固定高度的字符
域代碼:{EQ ifc設(shè)置為固定高度的字符in(a,b,3x+1)}
講解:{EQ i符號(hào)改為。
in(a,b,3x+1)};將符號(hào)
vcc 符號(hào)高度與第三個(gè)元素高度一致
域代碼:{EQ ivc
in(a,b,3x+1)}
講解:加vc開(kāi)關(guān)后,指定的符號(hào)自動(dòng)放大
6、列表開(kāi)關(guān) l(): 使用任意個(gè)數(shù)的元素組成列表。
以逗號(hào)或分號(hào)分隔,這樣就可以將多個(gè)元素指定為一個(gè)元素。在域中輸入一個(gè)類似a,b的元素,不加括號(hào)時(shí)域會(huì)報(bào)錯(cuò),加了括號(hào)又會(huì)顯示出括號(hào),列表開(kāi)關(guān)可以解決類似問(wèn)題。
域代碼:{EQ isu(l(i,j)=1,l(n,m),xij)}
講解:{EQ求和(加列表(i,j)=1,加列表(n,m),xij)}
無(wú)可用參數(shù)。
7、重疊開(kāi)關(guān) o(): 將每個(gè)后續(xù)元素置于前一個(gè)元素之上。
元素?cái)?shù)目不限。元素之間以逗號(hào)隔開(kāi)??梢耘浜仙蠘?biāo)開(kāi)關(guān)使用
域代碼:{EQ o(A,╳)}{EQ o(?,12)}
講解:{EQ 重疊(A,╳)} {EQ 重疊(?,12)}
可用參數(shù): 左對(duì)齊al;居中ac;右對(duì)齊ar
al左對(duì)齊
域代碼:{EQ oal(ABC,sup10(︵))}
講解:{EQ o重疊左對(duì)齊(ABC,sup10(︵))}
ac居中
域代碼:{EQ oac(ABC,sup10(︵))}
講解:{EQ 重疊o居中ac(ABC,sup10(︵))}
ar右對(duì)齊
域代碼:{EQ oar(ABC,sup10(︵))}
講解:{EQ 重疊o右對(duì)齊ar(ABC,sup10(︵))}
8、根號(hào)開(kāi)關(guān) r(,): 使用一個(gè)或兩個(gè)元素繪制根號(hào)。
域代碼:{EQ r(5,2a+b)}
講解:{EQ 根號(hào)r(根指數(shù)5,被開(kāi)方數(shù)2a+b)}
無(wú)可用參數(shù)。
9、上標(biāo)下標(biāo)開(kāi)關(guān) s(): 將元素放置為上標(biāo)或下標(biāo)字符。
每個(gè) s 代碼可有一個(gè)或多個(gè)元素,以逗號(hào)隔開(kāi)。如果指定多個(gè)元素,則元素將堆疊起來(lái)并且左對(duì)齊
域代碼:{EQ Cs(3,12)}
講解:{EQ C上下標(biāo)(上標(biāo)3,下標(biāo)12)}
可用參數(shù): 在段落一行之上添加由 n 指定的磅數(shù)的空白;文字上移由 n 指定的磅數(shù)。默認(rèn)值為 2 磅
upn()在段落一行之下添加由 n 指定的磅數(shù)的空白din();將單個(gè)元素相對(duì)相鄰文字下移由 n 指定的磅數(shù)。默認(rèn)值為 2 磅don()。
ain添加由 n 指定的磅數(shù)的空白
域代碼:A{EQ Csai12(3)B}
講解:A{EQ C上下標(biāo)s行之上添加由12磅的空白ai12(3)B}
upn 文字上移由 n 指定的磅數(shù)(默認(rèn)值為 2 磅)
域代碼:{EQ Csup12(3)s(12)}
講解:{EQ C上下標(biāo)sup12(3)上下標(biāo)s(12)}
din 在段落一行之下添加由 n 指定的磅數(shù)的空白
域代碼:{EQ Csdi18(12)}A
講解:{EQ C上下標(biāo)s一行之下添加18磅的空白di18(12)}A
don 將單個(gè)元素相對(duì)相鄰文字下移由 n 指定的磅數(shù)。默認(rèn)值為 2 磅
域代碼:{EQ Cs(3)sdo8(12)}
講解:{EQ C上下標(biāo)s(3)上下標(biāo)s下移8磅do8(12)}
10、框開(kāi)關(guān) x(): 創(chuàng)建元素邊框。
如果不帶選項(xiàng),則此代碼在元素四周繪一個(gè)方框。
域代碼:{EQ x(12345)}
講解:{EQ 邊框x(12345)}
可用參數(shù): 在元素的上面繪制一個(gè)邊框to ;在元素的下面繪制一個(gè)邊框 bo ;在元素的左面繪制一個(gè)邊框le 在元素的右面繪制一個(gè)邊框ri
to上面繪制一個(gè)邊框
域代碼:{EQ x to(A∪B)}
講解:{EQ 邊框x 上邊框to(A∪B)}
bo下面繪制一個(gè)邊框
域代碼:{EQ x bo(A∪B)}
講解:{EQ 邊框x 下邊框bo(A∪B)}
le左面繪制一個(gè)邊框
域代碼:{EQ x le(A∪B)}
講解:{EQ 邊框x 左邊框le(A∪B)}
ri左面繪制一個(gè)邊框
域代碼:{EQ x ri(A∪B)}
講解:{EQ 邊框x 右邊框ri(A∪B)}
左右都加邊框
域代碼:{EQ x leri(A∪B)}
講解:{EQ 邊框x 左邊框le右邊框ri(A∪B)}
關(guān)于域的快捷鍵:
Ctrl+F9組合鍵——快速插入域定義符“{}”(注意:這個(gè)花括號(hào)不能用鍵盤輸入)
Shift+F9組合鍵——顯示或者隱藏指定的域代碼
Alt+F9組合鍵——顯示或者隱藏文檔中所有域代碼
F9鍵——更新單個(gè)域
上表中,選中每一個(gè)實(shí)例用鼠標(biāo)右鍵單擊,選“切換域代碼”(或者直接按Shift+F9組合鍵),就可以看到域代碼,再按Shift+F9組合鍵回到域結(jié)果。
我們?cè)趙ord2000中編輯文檔時(shí),有時(shí)會(huì)經(jīng)常遇到要求輸入數(shù)學(xué)公式的情況。雖然簡(jiǎn)單的加、減、乘、除等運(yùn)算都可在鍵盤上直接輸入,但遇到復(fù)雜的數(shù)學(xué)公式:如積分、開(kāi)方、求和等符號(hào)時(shí),就只能利微軟的office套件中所帶的工具“公式編輯器”來(lái)完成,但是在office套件的典型安裝的過(guò)程中,并沒(méi)有選擇這個(gè)工具,那么有沒(méi)有辦法可以在word2000中直接輸入這些符號(hào)呢?答案是肯定的,下面我們就來(lái)講解通過(guò)word2000的EQ域的功能輸入數(shù)學(xué)公式。
一、EQ域的基本使用格式:
{EQ Switches}
其中Switches用于指定如何使用其后跟隨的括號(hào)中的元素建立公式,還可以用適當(dāng)?shù)拈_(kāi)關(guān)選項(xiàng)來(lái)進(jìn)行修改。EQ域的開(kāi)關(guān)特別多,特別復(fù)雜,合理的組合可以產(chǎn)生各種各樣的公式,下面我們來(lái)詳細(xì)介紹各種開(kāi)關(guān)的作用及使用方法及事例。
二、EQ域的開(kāi)關(guān)及選項(xiàng)意義
1.?dāng)?shù)組開(kāi)關(guān):a(),可以在文檔中繪制一個(gè)二維數(shù)組。還可以使用下面的選項(xiàng)來(lái)修改a 開(kāi)關(guān)。
al 列內(nèi)左對(duì)齊。
ac 列內(nèi)居中對(duì)齊。
ar 列內(nèi)右對(duì)齊。
con元素排成 n 列(默認(rèn)值為 1)。
vsn行間增加 n 磅的垂直間距。
hsn列間增加 n 磅的水平間距。
2.括號(hào)開(kāi)關(guān):b(),用括號(hào)括住單個(gè)元素。
lcc 左括號(hào)使用字符 c。
rcc 右括號(hào)使用字符 c。
bcc 左右括號(hào)都使用指定的字符 c。
3.位移開(kāi)關(guān):d(),將下一個(gè)字符向左或右移動(dòng)指定磅數(shù)。
fon()右邊 n 磅。
ban()左邊 n 磅。
li()為下一個(gè)字符前的空白添加下劃線。
示例:{ EQ d fo10 li()} 顯示為(前一段文字)__(后一段文字)
4.分?jǐn)?shù)開(kāi)關(guān):f(,):可用于創(chuàng)建分?jǐn)?shù)。
分子分母分別在分?jǐn)?shù)線上下居中。如果系統(tǒng)使用逗號(hào)作為小數(shù)點(diǎn),請(qǐng)用分號(hào)分隔兩個(gè)元素。
5.列表開(kāi)關(guān):l(),將多個(gè)值組成一個(gè)列表,列表可作為單個(gè)元素使用。
列互開(kāi)關(guān)可使用任意個(gè)數(shù)元素組成列表,以逗號(hào)或分號(hào)分隔,這樣就可以將多個(gè)元素指定為一個(gè)元素。
6.重疊開(kāi)關(guān):o(),將每個(gè)后續(xù)元素打印在前一元素之上。
al 左對(duì)齊
ac 居中(默認(rèn)值)
ar 右對(duì)齊
7.根號(hào)開(kāi)關(guān):r(,),使用一個(gè)或兩個(gè)元素繪制根號(hào)。
8.上標(biāo)或下標(biāo)開(kāi)關(guān):s(),設(shè)置上下標(biāo)??蓪⒁粋€(gè)或多個(gè)元素設(shè)置為上標(biāo)或下標(biāo)。每個(gè)s代碼可有一個(gè)或多個(gè)元素,以逗號(hào)隔開(kāi)。如果指定多個(gè)元素,則元素將堆疊起來(lái)并且左齊??捎孟旅娴倪x項(xiàng)在s開(kāi)關(guān)之后放置單個(gè)元素。
ain()在段落一行之上添加由 n 指定的磅數(shù)的空白。
upn()將單個(gè)元素相對(duì)相鄰文字上移由 n 指定的磅數(shù)。默認(rèn)值為 2 磅。
din()在段落一行之下添加由 n 指定的磅數(shù)的空白。
don()將單個(gè)元素相對(duì)相鄰文字下移由 n 指定的磅數(shù)。默認(rèn)值為 2 磅。
9.方框開(kāi)關(guān):x(),在元素四周繪制邊框。
to 元素之上。bo 元素之下。
le 元素左側(cè)。ri 元素右側(cè)。
10.積分開(kāi)關(guān):i(,),使用指定的符號(hào)或默認(rèn)符號(hào)及三個(gè)元素創(chuàng)建積分。使用指定的符號(hào)及三個(gè)元素創(chuàng)建積分。第一個(gè)元素是積分下限,第二個(gè)元素是積分上限,第三個(gè)是積分表達(dá)式。可用下面的選項(xiàng)修改。
su 符號(hào)更改為大寫的 ∑ 并生成求和公式。
pr 符號(hào)更改為大寫的 Π 并生成求積公式。
in 創(chuàng)建行內(nèi)格式,積分限不在符號(hào)的上下,而在符號(hào)之右。
fcc 將符號(hào)設(shè)置為固定高度的字符 c。
vcc 將符號(hào)設(shè)置為可變高度的字符 c。符號(hào)高度與第三個(gè)元素高度一致。
好了,上面詳細(xì)地介紹了EQ域創(chuàng)建數(shù)學(xué)公式的每個(gè)開(kāi)關(guān)及選項(xiàng)的意義,下面我們來(lái)看幾個(gè)實(shí)例的應(yīng)用。
三、EQ域?qū)嵗齽?chuàng)建
例
1、我們要?jiǎng)?chuàng)建如下的數(shù)學(xué)二元一次方程組:
1.先寫出第一個(gè)方程的代碼:{EQ r(3,x)+r(2,x)= r(6,y)}
2.再寫出第二個(gè)方程的代碼:{EQ f(2,x)+f(5,y)= f(10,x)}
3.將每個(gè)等式作為一個(gè)元素合并在一個(gè)域中,并增加a開(kāi)關(guān),使其排列在兩行中域代碼為:{EQ a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x))
4.最后按照方程式的組成規(guī)則,在域代碼中增加開(kāi)關(guān),為公式加入括號(hào),并修改參數(shù),生成這個(gè)二元方程組。最終代碼為:{EQ b lc {(a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x)))
例
2、創(chuàng)建如下的積分算式:
1.首先寫出內(nèi)部的根號(hào)的代碼:{EQ r(2,x)}
2.其次增加分?jǐn)?shù)開(kāi)關(guān)的代碼:{EQ f(r(2,x),5)}
3.最后增加積分開(kāi)關(guān),完成這個(gè)積分算式,代碼為:{EQ i(200,100,f(r(2,x),5))dx}
第五篇:?jiǎn)纹瑱C(jī)實(shí)驗(yàn)代碼總結(jié)
編者:方園
單片機(jī)實(shí)驗(yàn)代碼集合(by fangyuan)
1.多字節(jié)累加程序:
ORG 0000H LJMP MAIN ORG 0030H;將加數(shù)和被加數(shù)送到指定地址 MAIN: MOV 20H,#45H
MOV 21H,#74H
MOV 30H,#67H
MOV 31H,#28H
;低位相加
MOV A,21H
ADD A,31H
DA A
MOV 42H,A
;高位相加
MOV A,20H
ADDC A,30H
DA A
MOV 41H,A
CLR A
ADDC A,#0
MOV 40H,A
SJMP $ END
2.數(shù)據(jù)交換實(shí)驗(yàn)
編寫程序,實(shí)現(xiàn)以下操作:
【功能1】產(chǎn)生數(shù)組Hex1:0H、1H、2H、? 0FH,存儲(chǔ)到片內(nèi)RAM區(qū)中,數(shù)組Hex1的首地址為30H。
【功能2】產(chǎn)生數(shù)組Hex2:0FH、0EH、0DH、? 0H,存儲(chǔ)到片外RAM區(qū)中,數(shù)組Hex2的首地址為3000H。
【功能3】將片內(nèi)RAM數(shù)組Hex1與片外RAM數(shù)組Hex2交換內(nèi)容。
代碼:
ORG 0000H
Hex1 EQU 30H
;定義內(nèi)部RAM數(shù)組首地址
Hex2 EQU 3000H;定義外部RAM數(shù)組首地址
編者:方園
LJMP MAIN
ORG 0030H MAIN:
MOV SP,#4FH
;定義棧頂?shù)刂?/p>
MOV R7,#16
MOV R0,#Hex1
MOV DPTR,#Hex2
LCALL HEX1DE
;調(diào)用內(nèi)部送數(shù)據(jù)函數(shù)
LCALL HEX2DE;調(diào)用外部送數(shù)據(jù)函數(shù)
LCALL XCHDE;調(diào)用交換函數(shù)
SJMP $
ORG 0100H
;內(nèi)部送數(shù)據(jù)
HEX1DE: PUSH 00H
PUSH 07H
MOV A,#0 LOOP1: MOV @R0,A
INC A
INC R0
DJNZ R7,LOOP1
POP 07H
POP 00H
RET
;外部送數(shù)據(jù)
HEX2DE: PUSH 07H
PUSH DPL
PUSH DPH
MOV A,#0FH LOOP2: MOVX @DPTR,A
DEC A
INC DPTR
DJNZ R7,LOOP2
POP DPH
POP DPL
POP 07H
RET
;交換子程序 XCHDE:
LOOP3: MOVX A,@DPTR
XCH A,@R0
編者:方園
END
MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP3 RET
3.查表實(shí)驗(yàn)
1、《單片機(jī)原理及應(yīng)用實(shí)驗(yàn)教程》(第2版)“第2章 實(shí)驗(yàn)3”(P49)。要求: 16進(jìn)制數(shù)(00H~0FH)ASCⅡ碼表定義在內(nèi)部ROM中(用偽指令定義);R0為片內(nèi)RAM區(qū)Hex數(shù)組指針;R1為片內(nèi)RAM區(qū)Asc數(shù)組指針;數(shù)據(jù)塊長(zhǎng)度放在寄存器R2中。
代碼如下:
ORG 0000H
Hex EQU 40H
Asc EQU 50H
LJMP MAIN
ORG 0030H MAIN:
MOV R2,#16
MOV DPTR,#TABLE
MOV R0,#Hex
MOV R1,#Asc
MOV SP,#2FH
LCALL FUZHI
LCALL ZHUANHUAN
SJMP $
TABLE:
DB '0123456789'
;查表子程序 ORG 1000H ZHUANHUAN:
PUSH 00H
PUSH 01H
PUSH 02H LOOP1:
MOV A,@R0
編者:方園
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP1
POP 02H
POP 01H
POP 00H
RET
;R0送值子程序 FUZHI:
PUSH 00H
PUSH 01H
PUSH 02H
MOV A,#0 LOOP2:
MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP2
POP 02H
POP 01H
POP 00H
RET END
2、編寫用@A+PC指令的查表程序,實(shí)現(xiàn)用查表方式將片內(nèi)RAM中16進(jìn)制數(shù)組Hex(00H~0FH)轉(zhuǎn)換為ASCⅡ碼并存入片內(nèi)RAM數(shù)組Asc中。要求:
16進(jìn)制數(shù)(00H~0FH)ASCⅡ碼表在內(nèi)部ROM中; R0為片內(nèi)RAM區(qū)Hex數(shù)組指針; R1為片內(nèi)RAM區(qū)Asc數(shù)組指針; 數(shù)據(jù)塊長(zhǎng)度放在寄存器R2中。代碼如下:
ORG 0000H
Hex EQU 40H
;內(nèi)部Hex送數(shù)據(jù)地址定義
Asc EQU 50H;查表后數(shù)據(jù)儲(chǔ)存地址定義
LJMP MAIN
ORG 0030H MAIN:
MOV R2,#16
MOV DPTR,#TABLE
MOV R0,#Hex
編者:方園
MOV R1,#Asc
MOV SP,#2FH
LCALL FUZHI;送值函數(shù)
LCALL CHABIAO;查表函數(shù)
SJMP $
ORG 1000H;查表子程序 CHABIAO:
PUSH 00H
PUSH 01H
PUSH 02H LOOP1:
MOV A,@R0
ADD A,#20H
MOVC A,@A+PC
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP1
POP 02H
POP 01H
POP 00H
RET
;R0送值子程序 FUZHI:
PUSH 00H
PUSH 01H
PUSH 02H
MOV A,#0 LOOP2:
MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP2
POP 02H
POP 01H
POP 00H
RET
編者:方園
TABLE:
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
END
4.十進(jìn)制數(shù)1-100累加運(yùn)算
《單片機(jī)原理及應(yīng)用實(shí)驗(yàn)教程》(第2版)“第2章 實(shí)驗(yàn)5”(P30)。編寫程序,實(shí)現(xiàn)以下功能:
【功能1】產(chǎn)生十進(jìn)制數(shù)1~100,并存放在片外RAM中以1000H為首地址的Deci數(shù)組中?!竟δ?】對(duì)Deci數(shù)組元素進(jìn)行累加運(yùn)算,并將累加和存入內(nèi)部RAM中60H(存累加和低位)和61H(存累加和高位)單元。代碼如下: 方法一:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV R7,#100
MOV DPTR,#1000H
MOV SP,#20H
LCALL STEP1
LCALL STEP2
SJMP $
ORG 2000H
STEP1: PUSH 07H
PUSH DPH
PUSH DPL
MOV A,#0
MOV R3,#0 LOOP1: INC A
DA A
XCH A,R3
ADDC A,#0
MOVX @DPTR,A
INC DPTR
XCH A,R3
MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP1
POP DPL
編者:方園
POP DPH
POP 07H
RET
STEP2: PUSH 07H
PUSH DPH
PUSH DPL
MOV 60H,#0
MOV 61H,#0
MOV R3,#0
LOOP2: INC DPTR
MOVX A,@DPTR
ADD A,60H
DA A
MOV 60H,A
CLR A
ADDC A,61H
DA A
MOV 61H,A
INC DPTR
DJNZ R7,LOOP2
MOV A,#1
ADD A,61H
DA A
MOV 61H,A
POP DPL
POP DPH
POP 07H
RET
END
方法二:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV R7,#100
MOV DPTR,#1000H
MOV SP,#20H
編者:方園
LCALL STEP1
LCALL STEP2
SJMP $
ORG 2000H
;送值子函數(shù)
STEP1: PUSH 07H
PUSH DPH
PUSH DPL
MOV A,#0 LOOP1: INC A
DA A
MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP1
CLR A
ADDC A,#0
MOVX @DPTR,A
POP DPL
POP DPH
POP 07H
RET
;累加子函數(shù)
STEP2: PUSH 07H
PUSH DPH
PUSH DPL
MOV 60H,#0
MOV 61H,#0
LOOP2:
MOVX A,@DPTR
ADD A,60H
DA A
MOV 60H,A
CLR A
ADDC A,61H
DA A
MOV 61H,A
INC DPTR
DJNZ R7,LOOP2
MOVX A,@DPTR
ADD A,61H
DA A
編者:方園
MOV 61H,A POP DPL POP DPH POP 07H RET
END
5.DPTR指針應(yīng)用
《單片機(jī)原理及應(yīng)用實(shí)驗(yàn)教程》(第2版)“第2章 實(shí)驗(yàn)6”(P31)。編寫程序,實(shí)現(xiàn)以下功能:
【功能1】產(chǎn)生十進(jìn)制數(shù)組Deci(1~99),并存放在片內(nèi)RAM中,Deci數(shù)組首地址為08H?!竟δ?】將Deci數(shù)組中的偶數(shù)元素全部送入外部RAM偶數(shù)區(qū),首地址為2000H;將Deci數(shù)組中的奇數(shù)元素全部送入外部RAM奇數(shù)區(qū),首地址為3000H;分別統(tǒng)計(jì)外部RAM偶數(shù)區(qū)和奇數(shù)區(qū)元素個(gè)數(shù)。代碼如下:
ORG 0000H
LJMP MAIN
ORG 0030H MAIN:
MOV SP,#70H
MOV R7,#99
MOV R0,#08H
MOV R5,#0
MOV R6,#0
LCALL STEP1
LCALL STEP2
SJMP $
STEP1: PUSH 00H
PUSH 07H
MOV A,#1 LOOP1: DA A
MOV @R0,A
INC R0
INC A
DJNZ R7,LOOP1
POP 07H
POP 00H
RET
編者:方園
STEP2: MOV DPTR,#2000H
PUSH DPL
PUSH DPH
MOV DPTR,#3000H
MOV R3,DPH
MOV R4,DPL LP1: MOV A,@R0
MOV R2,A
JNB ACC.0,LOOP2
SJMP LOOP3
LOOP2: POP DPH
POP DPL
MOVX @DPTR,A
MOV A,R5
ADD A,#1
DA A
MOV R5,A
INC DPTR
PUSH DPL
PUSH DPH
SJMP NEXT
LOOP3: MOV DPH,R3
MOV DPL,R4
MOVX @DPTR,A
MOV A,R6
ADD A,#1
DA A
MOV R6,A
INC DPTR
MOV R3,DPH
MOV R4,DPL
SJMP NEXT
NEXT:
INC R0
DJNZ R7,LP1
POP DPH
POP DPL
RET
END
編者:方園
6.定時(shí)器應(yīng)用實(shí)驗(yàn)
DBUF EQU 30H ORG 0000H STRT: LJMP MAIN ORG 000BH LJMP PTF00 ORG 0030H MAIN: MOV DPTR,#5FFFH MOV A,#0DCH MOVX @DPTR,A MOV R5,#20 LP: MOVX A,@DPTR JNB ACC.7,LP MOV A,#00H MOVX @DPTR,A MOV A,#34H MOVX @DPTR,A MOV SP,#60H MOV R0,#39H MOV R7,#06H ML1: MOV @R0,#00H INC R0 DJNZ R7,ML1 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 MOV IE,#82H MOV 40H,#10H ML0: LCALL DIR LJMP ML0 PTF00: PUSH PSW PUSH ACC SETB PSW.3 MOV TL0,#0B0H MOV TH0,#3CH
編者:方園
DJNZ R5,PTFY MOV R5,#20
MOV A,40H DEC A MOV 40H,A JNZ PTFY MOV 40H,#10H MOV R0,#39H MOV R7,#6 PTFX: MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#0AH,$+3 JC PTFY MOV @R0,#0 INC R0 DJNZ R7,PTFX PTFY: POP ACC POP PSW RETI DIR:
MOV R3,#06H MOV A,#92H MOV DPTR,#5FFFH MOVX @DPTR,A MOV R1,#39H TY11: MOV A,@R1 MOV DPTR,#CODE1 MOVC A,@A+DPTR MOV DPTR,#5FFFH MOVX @DPTR,A
INC R1 DJNZ R3,TY11 RET
CODE1: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,88H
編者:方園
DB 83H,0C6H,0A1H,86H,8EH,8CH DB 0C1H,89H,0C7H,0BFH,91H DB 00H,0FFH END
7.廣告燈實(shí)驗(yàn)
ORG 0000H LJMP MAIN ORG 000BH LJMP DELAY ORG 0030H MAIN: MOV DPTR,#TAB MOV R5,#71H MOV R2,#00H MOV R6,#20 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 MOV IE,#82H SJMP $ DELAY: MOV TL0,#0B0H MOV TH0,#2CH
DJNZ R6,LP ACALL STEP MOV R6,#20 DJNZ R5,LP MOV R5,#71H
LP: RETI
STEP: LOOP: MOV A,R2 MOVC A,@A+DPTR MOV P1,A INC R2 DEC R5
編者:方園
RET
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
DB 0FEH,0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H
DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH
DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H
DB 01H,00H,01H,03H,07H,0FH,1FH,3FH
DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH
DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H
DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH
DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H
DB 80H,40H,20H,10H,08H,04H,02H,01H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H,00H
DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH END


文檔為doc格式
聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。
DSP-C代碼優(yōu)化總結(jié)
代碼優(yōu)化總結(jié) 在優(yōu)化一段代碼之前,首先要找出這段程序中最消耗時(shí)間的那一段程序,對(duì)最耗時(shí)程序段的優(yōu)化會(huì)帶來(lái)很大的優(yōu)化效果收益。 一般而言,這個(gè)最耗時(shí)的程序一般位于一個(gè)循......
代碼檢查
代碼檢查 摘要:代碼檢查是白盒測(cè)試的一種靜態(tài)測(cè)試方法,是眾多軟件測(cè)試方法中發(fā)現(xiàn)軟件缺陷最有效的方法之一。本文結(jié)合國(guó)內(nèi)外學(xué)者在相關(guān)領(lǐng)域的研究情況,介紹代碼檢查相關(guān)的基本......
中學(xué)代碼
010407師大附中 010301西安市第一中學(xué) 010202西安市第八十三中 010527西安中學(xué) 010101西安高級(jí)中學(xué) 碑林區(qū) 學(xué)校代碼學(xué)校名稱 010101西安高級(jí)中學(xué)(重點(diǎn)) 010102西工大附中(重點(diǎn)......
部門代碼
部門代碼 總經(jīng)理:GMD 行政人事部:AD 技術(shù)部:TD 發(fā)展部:RDD 宣傳部:PD 策劃部:SD 工程部:ED 造價(jià)部:EC 財(cái)務(wù)部:ACD 投融資部:FD 戰(zhàn)略計(jì)劃部:SPD 招標(biāo)合約部:BCD 審計(jì)部:ADD 招商部:MD 研......
數(shù)據(jù)庫(kù)上機(jī)實(shí)驗(yàn)總結(jié)(含代碼)
實(shí)驗(yàn)一 (1)無(wú)條件單表查詢 select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student; (2)有條件單表查詢 SELECT sname,sdept,sage......
網(wǎng)站建設(shè)基礎(chǔ)HTML代碼總結(jié)
網(wǎng)站建設(shè)基礎(chǔ)HTML代碼總結(jié) 1、title “擒賊先擒王”而這個(gè)王就是網(wǎng)站的title,網(wǎng)站最關(guān)鍵的就是一個(gè)頁(yè)面中的TITLE,注意,在我們自己一個(gè)網(wǎng)站上所有的TITLE不要一模一樣,如果是一......
WebService客戶端代碼生成方式總結(jié)
一、Webservice可以使用的框架很多。AXIS、CXF 、JAX、XFIRE,這些框架都可以根據(jù)wsdl文件生成ws的服務(wù)器和客戶端代碼。 二、Ws的調(diào)用方式有三種,http post、http get、soap p......
flash常用代碼總結(jié)五篇范文
1、flash停頓多少秒后播放 setInterval()在執(zhí)行完一次代碼之后,經(jīng)過(guò)了那個(gè)固定的時(shí)間間隔,它還會(huì)自動(dòng)重復(fù)執(zhí)行代碼 setTimeout()只執(zhí)行一次那段代碼 兩個(gè)方法用法一樣 1、如......