第一篇:單片機開發(fā)經驗總結
單片機開發(fā)經驗總結 單片機開發(fā) 2010-07-20 00:54:19 閱讀77 評論0字號:大中小 訂閱
1、與發(fā)光二極管串聯(lián)的電阻(排阻)的計算和選取,一般發(fā)光二極管的正常發(fā)光的電流是3~10mA,在發(fā)光二極管上產生的壓降是1.7
V(軌管)R=(5-1.7)/3~10(k)
2、單片機TTL電平高電平:+5V;低電平:0V。
RS232串口電平高電平:—12V ;低電平:+12V??梢酝ㄟ^MAX232電平轉換芯片,轉換之間的電平。
3、單片機上電IO口的寄存器為高電平,其余寄存器為低電平。
4、三極管的開關作用:在B、E間接正向電壓,E、C是導通的。
5、蜂鳴器:
1)有源蜂鳴器直接接上額定電壓就可以連續(xù)發(fā)聲。
2)無源蜂鳴器和電磁揚聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。
3)有源蜂鳴器帶振蕩源,無源的不帶。
4)有源蜂鳴器的理想信號是直流電。
5)無源蜂鳴器的理想信號為方波信號。
方波發(fā)聲函數(shù):void beep()
{fmq=0;
delay 500us();
fmq=1;
delay 500us();
}
6、計算單片機指令周期:
指令周期(us)=12 /晶振頻率(Mhz)
選用12M的晶振,一個指令周期為1us7、89C51的芯片最高支持24M的晶振
目前介紹單片機應用的文章很多,但介紹單片機開發(fā)工具制作的文章卻較少。由于單片機是一門實踐性很強的課程,如果采用傳統(tǒng)的開發(fā)模式,則要購買價格昂貴的仿真器、編程器等開發(fā)工具來作實驗。其實由于芯片功能的日益完善,我們可以利用芯片的在系統(tǒng)編程(ISP)功能制作出實用而低價的開發(fā)工具。本文旨在幫助DIY愛好者開發(fā)制作出適合自己的開發(fā)工具。
1當前常用開發(fā)模式
目前,基本上有兩種開發(fā)模式可供選擇:用仿真器、用編程器。
①用仿真器。優(yōu)點:方便,可以設置斷點,可以觀察存儲器及寄存器的內容。缺點:價格昂貴,不同類型的單片機要購買不同的仿真器;仿真器終究不是單片機,有時代碼在仿真器上能通過,但在單片機中不能正常工作,反而增加了調試的難度。
②用編程器。優(yōu)點:價格相對便宜,通常一款編程器可編程多種器件。缺點:操作相當不便,每次要將芯片在目標板與編程器之間轉移,并且還要在編譯操作界面與編程器操作界面之間切換,大部分時間在做簡單的重復工作。
2新的開發(fā)模式介紹及芯片選擇
本文介紹的開發(fā)工具采用一種新的開發(fā)模式(類似于編程器開發(fā)模式)。由于利用了芯片的在系統(tǒng)編程功能,因此不需要移動芯片。在軟件設計時設計成:一旦代碼文件被重新編過,即自動下載到芯片,并自動復位運行,是真正的“所編即所得”。
目前很多單片機都支持在系統(tǒng)編程。8051系列單片機支持在系統(tǒng)編程的也很多,但大多數(shù)是支持通過PC機的串口對單片機進行編程。這樣有四個不方便的地方:一是項目本身與PC機串行通信不方便;二是要增加1片MAX232電平轉換芯片;三是有的芯片要按特定的步驟進入下載模式,編程過程需要手工干預;四是有的芯片需要固件(定制的程序)的支持,如果不小心損壞了固件,則芯片的在系統(tǒng)編程功能也沒有了。
經過比較,Atmel公司生產的AT89S8252是一種比較理想的芯片,適合制作開發(fā)工具。此芯片有如下特點:
◆ 與8051兼容;
◆ 內含8KB可擦寫1000次的程序存儲器,2KB可擦寫超過100 000次的數(shù)據(jù)存儲器及256字節(jié)8位寬內部RAM;
◆ 可通過SPI接口在系統(tǒng)串行編程,與8051兼容
◆ 串行編程時有自動擦寫周期,在調試大程序時可以分段下載,節(jié)約時間;
◆ 低電壓下載,無需12V編程電壓。
3AT89S8252串行編程
(1)AT89S8252串行編程模式
當芯片的RST引腳置高電平時,所有程序和數(shù)據(jù)存儲器可以通過SPI總線接口[SCK,MOSI(input),MISO(output)]編程。RST變高以后,在編程或擦除操作之前必須首先發(fā)送一條編程允許命令。在串行編程模式下,芯片會在字節(jié)編程之前自動插入一個擦除周期。因此,除非芯片的代碼保護位被編程,編程之前不需要執(zhí)行全片擦除命令。SPI接口之SCK時鐘頻率須低于晶振頻率的1/40。
(2)AT89S8252串行編程步驟
①在XTAL1與XTAL2之間連接一個3~24MHz的晶振;在VCC與GND之前加上電源電壓,將RST置高,等待10ms。
②發(fā)送串行編程允許命令。
③發(fā)送寫/讀/擦除等命令及數(shù)據(jù),串行數(shù)據(jù)高位在前,低位在后,數(shù)據(jù)在時鐘的上升沿鎖定。④如果上一步是寫命令,至少等待2.5ms。
⑤需要時重復③、④兩步。
⑥將RST置低,芯片開始運行。
(3)AT89S8252串行編程命令
AT89S8252串行編程命令如表1所列。
表
(4)AT89S8252串行編程時序圖
AT89S8252串行編程時序如圖1所示。
圖
14硬件設計
①通過計算機并口與單片機SPI口連接;
②為了保護計算機并口,需要增加1片74HC244作為隔離。
實用的原理圖如圖2所示。(已經過實踐檢驗,可放心使用。)
圖
25用VB編程進行并口控制
打印端口的基地址一般為0x278、0x378或0x3BC,可以從控制面板中查到。為了方便讀者,表2列出了常用打印端口引腳及寄存器位元的說明。
表
在Windows環(huán)境下最簡單易學的語言恐怕非VB莫屬,所以我們的開發(fā)工具也選用VB作為編程語言。但由于Windows的保護,VB無法直接讀寫打印端口,因此我們需要另外的程序模塊來實現(xiàn)打印端口的直接讀寫。在Internet網上可以找到許多此類模塊,并且相當多的模塊可以免費使用。經過試用,筆者推薦使用Winio v2.0。該模塊支持Win9X/NT/2000/XP(http:// Yariv Kaplan),并且?guī)в性敿毜膸椭?、例子程序及源碼。使用時,將Winio.sys、Winio.dll、Winio.vxd
及Winio.bas四個文件拷貝到工作目錄下,在VB中直接添加Winio.bas模塊即可。本例中用到的函數(shù)有四個,分別說明如下。
①Initialize():允許端口控制函數(shù)。在使用端口輸入輸出函數(shù)之前調用一次,成功返回“1”,失敗返回“0”。
②Shutdown():關閉端口控制函數(shù)。在退出程序時執(zhí)行一次,成功返回“1”,失敗返回“0”。③GetPortVal(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte)As Boolean:讀取端口函數(shù),PortAddr 為端口地址, Portval為端口值,bSize為要讀取的字節(jié)數(shù)。讀取成功時返回“1”,失敗時返回“0”。
④SetPortVal(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte)As Boolean:寫端口函數(shù)。PortAddr 為端口地址, Portval為要寫的值,bSize為要寫入的字節(jié)數(shù)。寫入成功返回“1”,失敗返回“0”。
四個函數(shù)在Winio.bas模塊中的聲明如下:
Declare Function InitializeWinIo Lib “WinIo.dll”()As Boolean
Declare Function ShutdownWinIo Lib “WinIo.dll”()As Boolean
Declare Function GetPortVal Lib “WinIo.dll”(ByVal PortAddr As Integer, ByRef Portval As Long, ByVal bSize As Byte)As Boolean
Declare Function SetPortVal Lib “WinIo.dll”(ByVal PortAddr As Integer, ByVal Portval As Long, ByVal bSize As Byte)As Boolean
6Intel HEX 格式文件
由于一般編譯軟件產生的用于寫入芯片的文件都是Intel HEX格式的文件。Intel HEX文件屬于文本文件,可以用記事本查看。一個Intel HEX文件的一行稱為一個記錄,每個記錄都是由十六進制字符組成的,兩個字符表示一個字節(jié)的值。Intel HEX文件通常由若干條記錄組成,每個記錄都具有如下的形式:
:LLAAAATTDD...DDCC
“:”——記錄的起始標志;
LL——記錄長度,表示該記錄中的數(shù)據(jù)字節(jié)數(shù);
AAAA——數(shù)據(jù)裝入的首地址(16位);
TT——記錄類型,00表示數(shù)據(jù)記錄,01表示文件結束;(注意:有的編譯軟件會產生大于01的記錄類型,本應用中對大于01記錄類型的記錄忽略掉即可。)
DD——數(shù)據(jù)值(字節(jié));
CC——校驗和。(將其本身與記錄中除起始標志外的所有字節(jié)相加應為0,不為0則有錯。)
VB編程詳細說明見本刊網絡補充版(http://.cn)。(由于各子程序的流程都較簡單,所以直接給出源碼,而未畫出流程圖。程序采用由底至頂?shù)脑O計方法。)
結語
雖然上述程序能實現(xiàn)各種基本的功能,但并不完善,并未考慮各種異常情況,讀者可根據(jù)實際情況進行完善。編程功力較差的朋友可直接到筆者的網站(http: //)下載相對較完善的應用程序。如果充分理解了上述程序,那么DIY一個AVR或PIC單片機的開發(fā)工具也非難事。在筆者的網站也有制作完成的“MCS51/AVR/PIC三合一下載器資料”供愛好者下載。
由于AT89S8252的價格還是較貴,所以現(xiàn)在市場上較難買,不過Atmel公司推出的替代
AT89C51/52的AT89S51/52也有在系統(tǒng)編程功能,且價格便宜。其在系統(tǒng)編程的實現(xiàn)方法與
AT89S8252類似,對本例部分程序稍作修改即可支持該器件。筆者制作的“MCS51/AVR/PIC三合一下載器”增加了對AT89S51/52的支持。
文章來源:http:///wz_17380.htmPowerd by laogu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再來幾點:
先從最簡單的AT89C5X(51,52,55等等)說起吧,做這個的時間最長,知道的可能多些,書本上的東西這里我不多說,主要談些實際應用中的經驗與教訓。書可以參看北航出的一本專門講AT89系列的,還不錯,建議大家購買。
AT89C51我認為是一個非常標準的51單片機了,4個P口,1個串口,RAM只有標準的128Byte,F(xiàn)lash也只有4K,功能還算齊全,我就以它為基礎,所以開發(fā)過程中遇到的問題吧。
第一個問題:復位源的問題
大家最常用的復位方式就是電阻加電容吧,AT89C51是高電平復位,這種方式不穩(wěn)定,在產品調試時可以使用,因為在調試時我們一般使用了仿真器,而許多仿真器都會自己輸出復位信號,而屏蔽掉目標板產生的復位信號,所以調試時復位信號是沒有問題的,我們公司使用的是長沙菊陽的仿真器,用的是比較先進的技術,還算可以,仿真AT89系列的芯片一點問題沒有,還很穩(wěn)定的說。這里有一個非常重要的問題要說下,大家有時候會遇到這樣的一個問題:自己的程序在仿真時運行一點問題也沒有,但燒錄后卻不行了。結合我的經驗有兩種原因。一是時序可能變了,這個大家都知道,我不多說,還有一個原因就是復位信號的問題。具體情況如下:
(1)復位電路有問題,不能正常產生復位信號。因為調試時仿真器可能給你提供了復位信號,而脫離仿真器后就沒有了;
(2)看門狗的問題。有些51芯片帶有看門狗復位功能,如At89c55WD,當程序開啟了看門狗后,有時候程序的初始化內容太多了,往往會產生了復位信號,特別是用C語言編程功能時,有時候雖然你明明在程序開始時某個地方關閉了看門狗,但程序依然會復位,這是因為C語言執(zhí)行效率比匯編低,看似幾行代碼,有時候要很長時間的,所以在使用開門狗時一定要注意這個問題。而這個問題在使用仿真器時容易被忽視,因為即使你的程序里看門狗復位了,但是仿真器(菊陽仿真器可以開啟/屏蔽這個功能)往往會屏蔽了這個復位信號,所以程序仍然會正常運行的。當你把程序燒好后再運行時,你卻為發(fā)現(xiàn)剛調試好的程序卻無法正常運行了,那是因為你的程序一直在不停復位了,注意用示波器觀察RST腳可能看不到復位信號的,因為看門狗復位并不影響RST腳的電平。再一種情況就是芯片內部不帶看門狗,但是電路中有CPU監(jiān)控芯片的,它往往是可以提供復位信號的,而且是多種原因的復位信號,如果你發(fā)現(xiàn)上述情況,就可以用示波器查看RST腳看是否有電平變化。
所以建議大家做51產品開發(fā)時盡量使用CPU監(jiān)控芯片,向X5045就是非常好用的,因為它還帶有Eprom功能,這在很多場合使用的到的,也可以用MAX708等專用復位芯片了,既穩(wěn)定又方便。
第二篇:單片機開發(fā)工程師求職簡歷
基本簡歷
姓名: 李先生
國籍: 中國
目前所在地: 廣州
民族: 漢族
戶口所在地: 廣東省
身材: 172 cm?56 kg
婚姻狀況: 未婚
年齡: 25 歲
求職意向
人才類型: 普通求職?
應聘職位: 嵌入式軟件開發(fā)(單片機/DLC/DSp):單片機開發(fā)工程師、工作年限: 2 職稱: 無職稱
求職類型: 全職
可到職日期: 一個星期
月薪要求: 3500--5000
希望工作地區(qū): 廣州
工作經歷
公司名稱: 番禺致豐微電器有限公司起止年月:2008-03 ~ 2009-09
擔任職務: 測試工程師
工作描述: 進行MCS51單片機(STC系列、AT89系列等)、ARM(LpC21XX)編程和硬件設計,熟悉uc/os和small rtos嵌入式實時操作系統(tǒng)。
教育背景
畢業(yè)院校: 韶關學院
最高學歷: 本科
獲得學位: 工學學士
畢業(yè)日期: 2008-06-0
1所學專業(yè): 自動化
語言能力
外語: 英語優(yōu)秀
國語水平: 精通 粵語水平: 優(yōu)秀
工作能力
嵌入式系統(tǒng)開發(fā)應用技術(MCS51、ARM),熟練掌握匯編語言,C語言,熟悉C++.精通常用通信協(xié)議及相關總線:1-wire、I2C、SpI、UART、RS232、RS485等;以KEIL, RealView-MDK/ ADS1.2 , platform Builder 5.0和 eMbedded Visual C++ 4.0為程序開發(fā)平臺,進行嵌入式系統(tǒng)開發(fā);掌握uc/os和WINCE5.0嵌入式操作系統(tǒng)。熟悉模擬電子技術、數(shù)字電子技術和電力電子技術,硬件設計平臺為ORCAD和 protel99SE.個人自傳
能吃苦耐勞,工作積極肯干,自學能力和動手能力強,能進行MCS51單片機(STC系列、AT89系列等)、ARM(LpC21XX)編程和硬件設計,熟悉uc/os和small rtos嵌入式實時操作系統(tǒng)。
聯(lián)系方式
通訊地址:
聯(lián)系電話: ***
電子郵件: diyifanwen@glzy8.com
個人主頁: http://004km.cn
第三篇:項目開發(fā)經驗總結
項目開發(fā)經驗總結
本人做項目經理工作多年,感到做這個工作最要緊的就是要明白什么是因地制宜、因勢利導,只有最合適的,沒有什么叫對的,什么叫錯的,項目經理最忌諱的就是完美主義傾向,尤其是做技術人員出身的,喜歡尋找標準答案,耽誤了工作進度,也迷茫了自己。
項目開始階段是一個最重要的階段。項目經理在接手一個新項目的時候,首先要盡可能地多從各個方面了解項目的情況,如:
1.這個項目是什么項目,具體大概做什么事情,是誰提出來的,目的是解決什么問題。在國內很多客戶都很不成熟的情況下,千萬不要根據(jù)項目的名稱望文生義地去想象項目的目標。一個名為“辦公自動化”的項目很有可能在你進場以后一個月才發(fā)現(xiàn)客戶其實需要的是一個計算機生產管理輔助信息系統(tǒng)系統(tǒng)。前期了解情況的工作越詳細,后面的驚訝就越少,項目的風險就越小。
2.這個項目里牽涉哪些方面的人,如投資方、具體業(yè)務干系方、項目建成后的運營方、技術監(jiān)督方等等,很多項目里除了業(yè)主單位的結構很復雜以外,還有一些其他單位也會牽涉進來,如項目監(jiān)理公司、業(yè)主的行業(yè)主管機構等。項目經理需要了解每個方面的人對這個項目的看法和期望是什么。事先了解各個方面的看法和期望,可以讓你在做項目碰到問題的時候,就每件事情分析哪些人會在什么方面支持你,哪些人會出于什么目的反對你,從而提前準備聯(lián)合朋友去對抗敵人,讓事情向你所希望的方向發(fā)展。沒有永遠的朋友,也沒有永遠的敵人,只有一致的利益,這句話作為項目經理是一定要記住的;
3.基本了解了客戶的情況后,下面的事情就是了解自己公司各方面對這個項目的看法。
4.在做整體項目計劃前,還要大致計算一下你手上的資源。首先是時間,現(xiàn)在市場競爭
激烈,往往很多項目要求在幾乎不可能的時間范圍里完成。對于這一點,你在做項目的風險控制計劃的時候要充分考慮。其次是人員,根據(jù)項目預算和已往經驗,大致計算一下未來的項目小組有多少種角色,每個角色目前公司是否有人,是否能完全歸這個項目使用,是否需要另外招聘一些人員,招聘的準備工作要盡早啟動。最后就是一些設備的準備,項目所需大件關鍵設備要盡早預定,以后不管發(fā)生設備等人還是人等設備的情況,浪費的都是你的時間;
5.現(xiàn)在是做項目說明書的時候了。一份好的項目說明書不僅將要做的事情描述得很清楚
7.明白了要做哪些事情和你手上的籌碼以及你做這個項目的總體策略,現(xiàn)在是成立項目小組的時候了。很多項目經理都沒有自己選擇組員的權利,那么,就盡量發(fā)揮你的影響力去尋找那些你想要的人吧。成員的組成根據(jù)項目不同,相差較大,很難有什么具體要求,但是,一定要有精通客戶業(yè)務的人,很多小項目里,這個人就是項目經理本人,大項目里會配
客戶了,不知道自己要做什么,更不懂怎么做還要指手畫腳的客戶到處存在,但是要明白,是客戶選擇了你,而不是你選擇了客戶,有了客戶你才有工資拿,心平氣和一點吧;
8.如果你在一個部門時間做長了,對這些規(guī)則的運用覺得是一件理所應當?shù)氖虑?,但是,你現(xiàn)在面對的是多個部門甚至多個單位,不把溝通規(guī)則說清楚,你以后就會吃虧。下面的東西看起來無聊,其實還是很管用的:第一個是規(guī)定信息的流動方式和介質,是推還是拉。推的意思就是項目經理將主動發(fā)布信息,不管通過電話、郵件還是書面方式,保證將信息傳達到每個人。這種情況適合小項目,人少;拉的意思就是項目經理就是一個類似web服務器,你自己需要什么信息就去問他。當然,沒有項目經理把自己搞得那么累,他會用發(fā)布信息到公共介質的方式公布信息,簡單的是白板,復雜一點的是項目的公共信息交互區(qū),潛規(guī)則就是我發(fā)了你沒去看就不要說我沒告訴你。說這些看似很無聊,其實里面牽涉信息傳達不完全的責任問題。當然,這些都是指一般的方式,而且不要絕對化,一般情況下,主動溝通和被動訪問是同時存在的,尤其是對領導,項目經理更加應該主動去和領導溝通。第二個問題就是文檔問題,很多人怕寫文檔,但是項目經理一定要牢記“好記性不如爛筆頭”的道理。有理所以項目經理開始就要和客戶說清楚有些共識的東西,比如會議紀要,甚至領導的講話記錄,都要寫成文檔,雙方簽字,這樣以后扯皮的時候,就能做到有據(jù)可查。記住:說了的就和沒說一樣,只有寫下來大家簽字后才算真正發(fā)生了的。還有一些問題,比如你提交的報告,給領導(包括本方領導和客戶領導)做一個選擇題,結果領導壓住不批,讓你無所適從,結果拖延了進度。這時候,你可以等,但是注意要留記錄,標明是誰的責任;另外,如果你在開始階段就和領導商定:如果批示提交
三天后沒有得到領導答復就算對方同意,這樣你就會主動很多。再比如不同事件的審批流程問題:什么等級的事情記錄在項目日志里、什么等級的事情要雙方項目經理專門簽署備忘錄、什么等級的事情要雙方領導出面簽署合同附件等等。事先想得越周到,以后的工作就越主動。
9.定義了一些游戲規(guī)則,現(xiàn)在是坐下來做計劃的時候了。這一節(jié),首先是找?guī)讉€關鍵組員,比如客戶業(yè)務專家、系統(tǒng)分析員等等,做一下項目模塊劃分工作。項目分成幾塊去做,每一塊完成什么,模塊之間的信息如何交換等等。需求定義的是做什么
每件事情需要什么資源,他們之間的前后關系如何,消耗的時間有多長,完成后有什么標志等。所有的結果最后用一個叫做甘特圖的形式表現(xiàn)出來。你做完這個表以后會驚奇地發(fā)現(xiàn),甘特圖上項目的結束時間會遠遠落后于你的計劃結束時間(簽合同的人永遠不會先征求你的意見的)。當然,學過項目管理的人會大談什么WBS、優(yōu)化路徑之類的東西,但是我的經驗是你再優(yōu)化也不可能把這些東西安排到計劃的時間結束。如果你沒碰到這個問題,在我恭喜你挑了一個輕松活之前,請你再去確認你是否羅列了所有要做的事情和正確評估了他們所需要的時間。這時候,你就要考慮犧牲一些任務的時間(也意味著質量)了。按照什么標準犧牲?這個項目的戰(zhàn)略!我們在第三節(jié)提到過的戰(zhàn)略。我的經驗是如果你什么都趕進度,其結果可能就是十件事情你一件也沒做好,想想多么失敗啊。所以,把資源投到你熟悉和有把握的事情上,最后的結果是十件事情,你有三件做成了精品,三件完成,還有四件因為某些原因延誤,成績單是否靚麗了很多呢?戰(zhàn)略決定優(yōu)先級,而正確排列事情的優(yōu)先級是一個項目經理能力的主要體現(xiàn)。
現(xiàn)在項目已經完成了前期工作,了解了項目的目標、搞清楚了手上的資源,制定了項目的策略,然后編制了項目的整體計劃,項目進入實施階段。進入這個階段反而是項目經理比較空閑的時候,不像前期的時候項目經理要象記者一樣到處和不同的人接觸,搞清楚他們在說什么,努力猜測他們在想什么和他們的真正目的,那才是最累人的事情。當然,小項目的項目經理往往自己也是一個資源,要做很多事情,這時候反而比誰都苦。項目經理這段時間的主要工作是保持和客戶領導以及自己領導的溝通。和客戶領導溝通時特別要注意,除非你需要對方給你支持,那么你才需要講得具體一點,否則,告訴他一切正常就可以了,而且態(tài)度要積極一些,千萬不要說一些領導不懂的細節(jié),比如:“王局長,最近項目進度還算正常,就是JVM經常發(fā)生一些內存泄漏的情況…”
項目經驗總結(2)
前陣子負責一個接口項目的開發(fā),雖然技術上沒有太大問題,但過程并不順利?,F(xiàn)在總結一下經驗上的不足:
一是,前期沒有明確的分析文檔、用例圖和活動圖,為了讓快點看到成果,只憑著簡單的需求文檔進行開發(fā)。
二是,中期沒有補上缺失的文檔,而是在原來代碼上修修補補,最后由于變化很大,所以基本上完全重構。
三是,給潛在客戶的文檔不明確方向,技術上太細致化,而且沒有一個明確的世界觀,不能在一個比較高的層面上表現(xiàn)接口的功能。
四是,接口散亂,沒有統(tǒng)一的中心流程,雖然可以用,卻經常走入死胡同。建議:
第四篇:校本課程開發(fā)經驗總結
強化校本課程總結
校本課程的設置,是國家基礎教育課程管理的一個重要組成部分,是國家和地方課程的主要補充,對教師、學生、學校的發(fā)展具有十分重要的意義。幾年來,我校認真貫徹上級有關指示精神,本著“強隊伍、優(yōu)課堂、重質量、創(chuàng)特色、樹品牌”的辦學目標,從實際出發(fā),在校本課程的開發(fā)和建設中,進行了有益的嘗試與探索,取得了階段性成果。下面,就我校所取得的點滴經驗與做法,向各位領導和各位同仁做一簡要的匯報:
一、加強領導,讓校本課程融入到常規(guī)管理中。
我校自校本課程開發(fā)以來,為了切實將校本課程落到實處:一是定期召開專題會議,認真落實《特色學校建設活動方案》精神,從學?,F(xiàn)有實際出發(fā),因地制宜,本著既不增加負擔,又符合兒童智力和能力發(fā)展需要的原則,集思廣益,積極采納基層領導、骨干教師的建議,逐漸完善校本課程的開發(fā)與建設。二是切實加強校本課程的管理,建立了領導組織,實行校長負責制,組建了校本課程開發(fā)小區(qū),配備了專職校教師,制定了相應的管理、考核和評價制度,形成了學校決策把關、課程教師組織實施、家長委員會監(jiān)督的管理體制,為校本課程有條不紊地開展奠定了堅實的基礎。
二、勇于實踐,讓校本課程扎根于日常教學中。
在認真貫徹落實國家、地方兩級課程管理的基礎上,我校依據(jù)校情,結合兒童特點,把校本課程開發(fā)的目標定位在“以學生發(fā)展文本、以教師的專業(yè)發(fā)展為本、以學校的可持續(xù)發(fā)展為本”之上,《我愛泥塑》和《學學剪窗花》。經過一年的教學實踐,即有教師、有課表安排;保證課堂教學時間、保證課堂教學質量;體現(xiàn)校本課程教學成果階段性展示。每學期除了舉辦座談會、演講會,還廣泛向教師、學生、家長、社會征求意見和建議,為校本課程的開發(fā)和建設廣開言路。由于教材定位準確,目標明確,管理到位,教師的工作熱情高,學生的學習興趣濃,出現(xiàn)了校園內人人關心校本課程,人人參與校本課程,社會上全面關注校本課程,家長大力支持校本課程的良好局面。
三、注重研究,為校本課程開發(fā)提供不竭的動力。
我們認為:校本課程所蘊涵的新理念、新方法以及實施中所出現(xiàn)和遇到的各種各樣的新問題,都是過去的經驗和理論難于解釋和應付的。教師不能被動
持“校校有特色,生生有特長”的辦學理念,把校本課程的特色創(chuàng)建作為提升我校素質教育質量的重要工作來抓。
1、陽光體育豐富多彩。我校十分重視陽光體育活動的開展,做到了因地制宜,豐富多彩,特色鮮明。
2、特長教育有聲有色。學校成立了美術、書法、音樂、舞蹈等興趣活動小組,由學生自主進行選擇。
幾年的實踐,使我們深刻體會到:雖然我校在校本課程的開發(fā)利用上做了一些工作,取得了點滴成績,但距兄弟校還相差甚遠。我們決心在今后的校本教研的開發(fā)和探索中,積極努力學習,借鑒先進經驗,不斷探索創(chuàng)新,把我校的校本課程開發(fā)工作做實、做細、做好、做強,為我校的校本課程開發(fā)做出我們應有的貢獻!
第五篇:ORACLE數(shù)據(jù)庫開發(fā)經驗總結
ORACLE數(shù)據(jù)庫開發(fā)經驗總結
----ORACLE數(shù)據(jù)庫作為大型數(shù)據(jù)庫管理系統(tǒng),近年來一直占有世界上高端數(shù)據(jù)庫的最大 份額,其強大而完善的數(shù)據(jù)庫管理功能,以及ORACLE公司推陳出新的不斷努力,一直成 為IT業(yè)界矚目的焦點。嶺澳核電站的數(shù)據(jù)庫平臺采用了ORACLE7.3作為后端平臺,前端選 擇了ORACLE公司的DEVELOPER 2000 及DESIGNER 2000作為開發(fā)工具,采用了目前流行的
CLIENT/SERVER模式。本人在ORACLE系統(tǒng)的開發(fā)中,就ORACLE的整套開發(fā)工具提出一些自
己的體會,供同行參考。
----一.ORACLE SQL PLUS 使用技巧:----①查找重復記錄:
SELECT DRAWING,DSNO FROM EM5_PIPE_PREFAB WHERE ROWID!=(SELECT MAX(ROWID)FROM EM5 _PIPE_PREFAB D WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);----執(zhí)行上述SQL語句后就可以顯示所有DRAWING和DSNO相同且重復的記錄。----刪除重復記錄:
DELETE FROM EM5_PIPE_PREFAB WHERE ROWID!=(SELECT MAX(ROWID)FROM EM5 _PIPE_PREFAB D WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);----執(zhí)行上述SQL語句后就可以刪除所有DRAWING和DSNO相同且重復的記錄。----② 快速編譯所有視圖
----當在把數(shù)據(jù)庫倒入到新的服務器上后(數(shù)據(jù)庫重建),需要將視圖重新編譯一遍,因 為該表空間視圖到其它表空間的表的連接會出現(xiàn)問題,可以利用PL/SQL的語言特性,快 速編譯。
SQL >SPOOL ON.SQL SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
COMPILE;’ FROM TAB;SQL >SPOOL OFF 然后執(zhí)行ON.SQL即可。
SQL >@ON.SQL 當然,授權和創(chuàng)建同義詞也可以快速進行,如:
SQL >SELECT ‘GRANT SELECT ON ’ ||TNAME||’ TO USERNAME;’ FROM TAB;SQL >SELECT ‘CREATE SYNONYM
‘||TNAME||’ FOR USERNAME.’||TNAME||’;’ FROM TAB;③ 用外聯(lián)接提高表連接的查詢速度
在作表連接(常用于視圖)時,常使用以下方法來查詢數(shù)據(jù): SELECT PAY_NO, PROJECT_NAME FROM A WHERE A.PAY_NO NOT IN(SELECT PAY_ NO FROM B WHERE VALUE >=120000);----但是若表A有10000條記錄,表B有10000條記錄,則要用掉30分鐘才能查完,主要因 為NOT IN要進行一條一條的比較,共需要10000*10000次比較后,才能得到結果。該用外
聯(lián)接后,可以縮短到1分左右的時間: SELECT PAY_NO,PROJECT_NAME FROM A,B WHERE A.PAY_NO=B.PAY_NO(+)AND B.PAY_NO IS NULL AND B.VALUE >=12000;----④ 怎樣讀寫文本型操作系統(tǒng)文件
----在PL/SQL 3.3以上的版本中,UTL_FILE包允許用戶通過PL/SQL讀寫操作系統(tǒng)文件。如下: DECALRE FILE_HANDLE UTL_FILE.FILE_TYPE;BEGIN
FILE_HANDLE:=UTL_FILE.FOPEN(‘C:’,’TEST.TXT’,’A’);
UTL_FILE.PUT_LINE(FILE_HANDLE,’ HELLO,IT’S A TEST TXT FILE’);UTL_FILE.FCLOSE(FILE_HANDLE);END;----相關UTL_FILE數(shù)據(jù)庫包詳細信息可以參見相關資料。----⑤ 怎樣在數(shù)據(jù)庫觸發(fā)器中使用列的新值與舊值
----在數(shù)據(jù)庫觸發(fā)器中幾乎總是要使用觸發(fā)器基表的列值,如果某條語句需要某列修改 前的值,使用:OLD就可以了,使用某列修改后的新值,用:NEW就可以了。如:OLD.DEPT_ NO,:NEW.DEPT_NO。
----二.ORACLE DEVELOPER 2000使用技巧:
----① 改變FORM(FMX模塊)運行時的Runform4.5的題頭:
----DEVELOPER2000中FMX默認題頭為:Developer/2000 Forms Runtime for Windows
/ NT 你可以改為自己定義的標題,----1.在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE----2.在此觸發(fā)器中寫如下代碼:
set_window_property(FORMS_MDI_WINDOW,TITLE,'POINT SYSTEM 歡迎使用');----② 如何隱藏菜單中的window選項:
----在創(chuàng)建自己的菜單時,最后選項總有window項,下面介紹如何去掉它,----1.創(chuàng)建一個Menu
----2.在Menu中建立一個Item,命名為WINDOW。----3.設置該Item屬性如下:----
Menu Item Type:Magic Command Type:Null Magic Item:Window Lable:為空
----③ 怎樣創(chuàng)建動態(tài)下拉列表List
----Developer 2000 中的列表是通過設置相關屬性而完成數(shù)據(jù)項的列表設置的,但那
只是靜態(tài)的,有時你想讓某項成為動態(tài)的列表,隨輸入數(shù)據(jù)的改變而改變,就需要動手 去編個小程序。下面詳細介紹怎樣去做:----有塊EBOP_CABLE_ACCOUNT,下有SPECIFICATION數(shù)據(jù)項,當一進入該模塊時,就將
SPECIFICATION項在數(shù)據(jù)庫中存儲的值動態(tài)顯示出來,先在Form4.5中建立一個PRCEDURE,命名為DYN_LIST: PROCEDURE DYN_LIST IS
CURSOR C1 IS
SELECT DISTINCT(SPECIFICATION)FROM EBOP_CABLE_ACCOUNT;CNT NUMBER;i NUMBER;TNAME EBOP_CABLE_ ACCOUNT.SPECIFICATION%TYPE;BEGIN
CLEAR_LIST('EBOP_CABLE_ ACCOUNT.SPECIFICATION');SELECT COUNT(DISTINCT
(SPECIFICATION))INTO CNT FROM EBOP _CABLE_ACCOUNT;open C1;FOR i IN 1..CNT LOOP
FETCH C1 INTO TNAME;EXIT WHEN C1%NOTFOUND OR C1%NOTFOUND IS NULL;ADD_LIST_ELEMENT('EBOP_CABLE_ACCOUNT.SPECIFICATION',i,TNAME,TNAME);END LOOP;DELETE_LIST_ELEMENT('EBOP_CABLE_ACCOUNT.SPECIFICATION',CNT+1);CLOSE C1;END;然后在FORM的WHEN-NEW
-FORM-INSTANCE觸發(fā)子中加入一行: DYN_LIST;----這樣一進入該FMX,就會動態(tài)刷新該列表。除此之外,SPECIFICATION數(shù)據(jù)項改為列 表項。
----④ 當顯示多條記錄且數(shù)據(jù)項特別多時,如何組織錄入及顯示界面:----如上圖所示,PRN代碼及設備代碼在畫布1(CONTENT型)上,其它數(shù)據(jù)項在畫布2(ST ACK型)上,所有數(shù)據(jù)項為一個表的列或一個塊的數(shù)據(jù)項。在拉動水平滾動條時或用TAB或 敲回車鍵時,將看到全部數(shù)據(jù)項。這種排布方法適用于數(shù)據(jù)項特別多又想顯示多條記錄 時用。主要制作順序為:先建立兩個畫布,畫布1(CONTENT型),畫布2(STACK型),然后
建立塊,選畫布時用畫布1,這樣所有項都顯示在畫布1上,然后選中除PRN代碼及設備代 碼之外的所有數(shù)據(jù)項,選TOOLS菜單下的PROPERTIES選項,將這些數(shù)據(jù)項的CANVAS屬性選
為畫布2(STACK型),然后調整整體位置就可以了。----⑤ 如何在FORM的受限觸發(fā)子中提交保存數(shù)據(jù)
----在FORM中很多觸發(fā)子是不能用COMMIT WORK語句的,當你在該觸發(fā)子中使用了UPDA
TE,DELETE等操作并想立即存盤時,就需要COMMIT WORK語句了。首先在服務器端建立D B_SQL_COMMIT這個過程(采用ORACLE7.3數(shù)據(jù)庫),PROCEDURE DB_SQL_COMMIT IS source_cursor integer;ignore integer;V7 NUMBER :=2;BEGIN
source_cursor:=dbms_sql.open_cursor;dbms_sql.parse(source_cursor,'COMMIT WORK',V7);ignore:=dbms_sql.execute(source_cursor);DBMS_SQL.CLOSE_CURSOR(source_cursor);END;----然后在FORM中該觸發(fā)子中調用過程DB_SQL_COMMIT;就可以了,當然你可以根據(jù)自己
需要將該過程加入參數(shù),這樣通過參數(shù)可以得到執(zhí)行DML語句的權限。----⑥ 如何在FORM中實現(xiàn)某數(shù)據(jù)項自動按記錄序號加一操作
----設塊名為VO,要操作的數(shù)據(jù)項為VO_ID,在該塊中建立塊級觸發(fā)子WHEN-CREATE-REC
ORD,加入如下代碼:
:VO_ID:=:System.Trigger_Record;----這樣每當生成新記錄時VO_ID就會自動加一了。
----⑦ 如何在一個FORM中調用另一個FORM,或在一個塊中調用另一個塊時顯示特定的 記錄有時用戶會要求在調用另一個FORM時,只顯示相關的記錄,舉例如下,在一個FORM 的塊中有一個按鈕,在按鈕觸發(fā)子中加入如下代碼: DECLARE PM PARAMLIST;BEGIN
PM:=GET_PARAMETER_LIST('PM');IF NOT ID_NULL(PM)THEN
DESTROY_PARAMETER_LIST('PM');END IF;PM:=CREATE_PARAMETER_LIST('PM');......................ADD_PARAMETER(PM,'THE_WHERE', TEXT_PARAMETER,'EM_NAME=''EM4'' AND EM_PROJECT_NAME=''支架預制''');OPEN_FORM('PAYMENT',ACTIVATE,SESSION,PM);END;
----其中EM_NAME,EM_PROJECT_NAME為本FORM某塊的數(shù)據(jù)項,PAYMENT為要調用的FORM 模塊。這樣通過傳遞參數(shù)列表就可以得到想要的結果。在FORM PAYMENT.FMB中,建立一 參數(shù)THE_WHERE,CHAR型,長1000,然后在PAYMENT.FMB中建立FORM級觸發(fā)子WHEN-NEW-F ORM-INSTANCE,在該觸發(fā)子中加入以下語句:
IF :PARAMETER.THE_WHERE IS NOT NULL THEN SET_BLOCK_PROPERTY('PAYMENT', DEFAULT_WHERE,:PARAMETER.THE_WHERE);END IF;----其中PAYMENT為要顯示的塊,這樣通過參數(shù)傳遞就得到想要的某些特定條件的數(shù)據(jù) 了。
----⑧ 在FORM中當有主從塊時,連續(xù)輸入記錄如何避免被不斷的提示保存:
----每輸入一條主記錄和若干條該主記錄的從記錄后,此時再導航到主塊輸下一條記錄,F(xiàn)ORM就會提示你是否要保存記錄,而你并不希望FORM提示,讓它自動保存,此時你可 以到Program Units中找到過程PROCEDURE Clear_All_Master_Details,然后在這個過程 中找到語句
Clear_Block(ASK_COMMIT);----將其改為Clear_Block(DO_COMMIT);就可以了。----⑨ 在Report開始時選擇排序項:
----在報表開始的Parameter Form中選擇報表按哪個數(shù)據(jù)項排序,----1.先在USER PARAMETER 中創(chuàng)建SORT參數(shù),為字符型,長20。
----2.初始值選’責任方’,然后將這四個值輸入到DATA SELECTION中,形成列表。----3.然后處理QUERY中的SQL語句: select CHARGER,FCO_NO,EM_NAME,FCO _NO,DESCRIPTION, FCR_POINT from FCR_MAIN ORDER BY DECODE(:SORT,'責任方',CHARGER,'FCO號', FCO_NO,'FCR號',FCR_NO,'FCR號',EM_NAME)----⑩ 在Developer 2000中如何讀寫操作系統(tǒng)文件
----在用Developer 2000的開發(fā)工具開發(fā)應用程序時,經常碰到需要讀寫外部文件的問
題,可以用ORACLE 帶的包TEXT_IO來完成這項需求。例如: DECLARE
IN_FILE TEXT_IO.FILE_TYPE;OUT_FILE TEXT_IO.FILE_TYPE;LINE_BUFER VARCHAR2(80);/*若不用IN_FILE,可以將各字段聯(lián)接在一起賦值給此變量*/
BEGIN
IN_FILE:=TEXT_IO.FOPEN(‘C:TEMPTEST1.TXT’,’r’);OUT_FILE:=TEXT_IO.FOPEN(‘C:TEMPTEST2.TXT’,’w+’);
LOOP
TEXT_IO.GET_LINE(IN_FILE,LINE_BUFER);TEXT_IO.PUT(LINE_BUFER);TEXT_IO.NEW_LINE;TEXT_IO.PUT_LINE(OUT_FILE,LINE_BUFER);END LOOP;EXCEPTION
WHEN no_data_found THEN
TEXT_IO.PUT_LINE(‘CLOSING THE FILE ,PLEASE WAITING....’);TEXT_IO.FCLOSE(IN_FILE);TEXT_IO.FCLOSE(OUT_FILE);END;----三.數(shù)據(jù)庫管理
----① 在刪除一個表中的全部數(shù)據(jù)時,須使用TRUNCATE TABLE 表名;因為用DROP TAB
LE,DELETE * FROM 表名時,TABLESPACE表空間該表的占用空間并未釋放,反復幾次DR OP,DELETE操作后,該TABLESPACE上百兆的空間就被耗光了。----② 數(shù)據(jù)庫文件的移動方法
----當想將數(shù)據(jù)庫文件移動到另外一個目錄下時,可以用ALTER DATABASE命令來移動(比ALTER TABLESPACE適用性強):
----1.使用SERVER MANAGER關閉實例.SVRMGR > connect internal;SVRMGR > shutdown;SVRMGR >exit;----2.使用操作系統(tǒng)命令來移動數(shù)據(jù)庫文件位置(假設這里操作系統(tǒng)為SOLARIS 2.6).在UNIX中用 mv命令可以把文件移動到新的位置,#mv /ora13/orarun/document.dbf /ora12/orarun----3.裝載數(shù)據(jù)庫并用alter database命令來改變數(shù)據(jù)庫中的文件名.SVRMGR > connect internal;SVRMGR > startup mount RUN73;SVRMGR > alter database rename file
> ‘/ ora13/orarun/document.dbf’
> ‘/ ora12/orarun/document.dbf’;----4.啟動實例.SVRMGR > alter database open;----ORACLE數(shù)據(jù)庫開發(fā)經驗總結