存儲器實驗總結
❶ 實訓總結通用版5篇範文
實訓從時空上分,有校內實訓和校外實訓,包括教學見習、教學實訓和生產實訓.實訓 總結 怎麼寫呢?下面是我給大家帶來的實訓總結通用版,希望對您有所幫助!
實訓總結通用版1
20__年新學期的開始,我們進行了為期兩個星期的校內實習。兩個星期的實習生活是辛苦的、緊張、美好的,也是很有意義的。實習期間,我們新分成的小組別在指導老師的帶領下,在校領導、其他老師的支持和指導下,轟轟烈烈的展開了校內實習活動。作為體育校內實習生,我一直以教師身份嚴格要求自己,處處注意言行和儀表,並緊記實習守則,尊重學校領導和指導老師,虛心聽取他們的意見,學習他們的 經驗 ,主動完成指導老師布置的任務。現在,我的實習工作得了比較圓滿的成功。 對此,本人甚感欣慰。下面就我校內實習的主要工作進行總結:
在實習期間,我主要完成了3方面的工作:一是見習,實習開始我們主要是聽取其他老師的講課,並認真的記下來聽課記錄,學習 教學 方法 和吸取教學經驗。 二是親自上課,在老師的指導下,認真准備所需的上課教案,體會和發現自己上技術課的不足之處,通過指導老師和同學們的相互討論糾錯,自己取得了極大的進步。三是及時與指導老師和其他實習生進行經驗交流不斷完善自我。
我們實習的課程大多數圍繞球類等專業課展開教學,我的實習的假象對象是中小學生。他們活潑好動,教學要從他們的實際出發,結合這個年齡的生理心理特點,尋求一條讓他們感到容易理解和接受的教學方法,對於初為人師的實習生,這是有一定難度的。
由於我們剛從大學學生角色進入中學教師角色,會有意無意的把大學老師的教學方法、模式帶入中學課堂。並沒有考慮到教學對象及環境的不同致使教學方法與大學有很大的不同所以一開始並不適應,總是有意無意地習慣於大學老師的教學模式,教的很快,一節45分鍾的內容30分鍾就講完了,可學生的學習效果並不高,很多動作教完了,學生還是沒有掌握。當然在後來不斷的實踐和指導老師的幫助講解下,我們也逐漸學習了中學的教學方法、模式,教學效果也隨之會好了起來。
作為一個教師,也許你的課講得很透徹、明白,也許你對學生如慈母般關愛,也許你是個俊男靚女,但具備任何一個條件,都不會使你在學生中的地位更高,我們需要具備的是綜合素質、為人師表。你既不能是學生口中的法西斯,也不能是他們眼中的和事佬,要讓學生真正的服你,只有去挖掘你的人格魅力。什麼叫「人格魅力」了。
第一:幽默機制。
幽默可以給人帶來笑聲,無論在課堂上還是在課外活動時,任何一個學生都不喜歡那種死氣沉沉的壓抑的氛圍。適時的發揮你的幽默,會得到意想不到的效果,學生也會因此而喜歡你。
第二:豐富的知識儲備。
教師的主要任務是教。都說給學生一杯水,教師要有一桶水。實際上教師更應作長流水。課上,你可能想像不到學生會問出怎樣的問題,所以不僅在備課時要多看教材以及一些學術著作,平時更要多讀專業書籍,以豐富自己的知識儲備。 第三:衣著整齊、干凈、得體。
作為年輕人,這一方面應該是最值得注意的。年輕有年輕的資本,我們是教師,不能穿奇裝異服,不能梳怪誕發型,這是基本要求。但我們完全沒必要穿得很嚴肅,很正式,很古板。而應該是青春的、充滿活力的。此外,我們一定要時刻注意自己的形象,時刻都要保持整潔,給學生清新自然親切的感覺,這樣學生也願意和你接觸。
第四:靈活的語言藝術。
現在的學生已經在逐漸形成自己的處事方法,這也就決定了教師既不能生硬的說教,也不能一味的哀求。在同學們說話鬧翻天時,我不知所措。剛開始我聲色俱厲地向他們大喊,但是他們連聽都聽不見。如果怒目以對,也許良久他們才能看到我。所以就要一開始說話吸引住學生的注意力,不給他們自己聊的機會。
其次,通過本次的實習,我在各多方面都得到了很大的提高:
第一、通過實習,掌握了一些基本的教學方法和教學技能,提高了教學效果和教學水平。在一次次的教學實踐中,在一次次的和指導老師的交流的過程中,我的教學水平和對教學認識已經提高了許多。
第二、通過實習,增強了教師的責任感和榮譽感。教師承擔著「教書育人」和培養祖國未來人才的重任,因而他是光榮的。
第三、通過實習,增強了交際能力和口頭表達能力。如何處理與老師及同小組同學的關系。在這個相處的過程中也提高了自身的交際與溝通能力。為今後的工作打下了良好的基礎。
針對自身在實習中的不足所指出的努力方向:
1、培養自己應用所學的 教育 理論觀察分析教育問題的能力。可能的話,進行教育調查,這樣將更有利於自己的教學。
2、每次課後應認真進行自我分析,虛心聽取其他教師的意見,及時寫好課後小結。
以上就是我自己在教育實習之中的一些收獲。我相信在實習中,我們大家都付出了很多,同時也得到學到的更多。這段時光對於想致力於教育事業的人來說,這是一個開始,應該讓它變成一段美好的回憶;而對於那些無心致力於教育事業的人來說,這是第一次也許是最後一次做老師,相信也會是人生中一段美好的回憶。
實訓總結通用版2
為期來兩個星期的電子商務實訓課在今天結束了。
說實在的時間過得很快,因為這兩個星期很多公共假期,校運會、亞運會開幕的假期沖掉了我們實訓的一些課,短短的時間里,我們並不可能充分地完全掌握電子商務的知識,但起碼我們對它有深入一層的認識了。實訓期間,我們最先接觸到的是「網路營銷能力秀活動」,在這個平台上,我們可以看到更多別人對網路營銷的簡解和建議,從中可以學到很多自己沒接觸過的知識。
之後我們通過注冊淘寶、易趣、拍拍的帳號,對比它們網站之間的異與同,分析它們在網頁設計上的特點才知道原來同是購物網站,但確定的網站定位、服務人群等方面的不一樣,就會造成網站對網民影響力的不同。這是一個長期積累經驗的過程,選擇的方向很重要,所以網路營銷並不像我們想像中的那麼簡單,並不是單單在網上注冊一家網店就可以完成任務,它需要網店方向的定位、網店後期的管理、網店的推廣等。
同時這也是一個作業接著不斷來的實訓,體驗感受、網站分析 報告 、與賣家客戶人員的網路客戶分析報告、第三方物流公司選擇的分析報告,這些作業都需要我們親自去事件或者上網去調查、去了解才可以完成的作業。雖然同學們抱怨生不斷,但我們清楚,完成這些作業最大的得益者不是老師而是我們自己,畢竟自己親自實踐過比別人說得在多都要好,完成這些作業不僅僅是完成作業,是一種網路營銷體驗的過程,也是思想的一種拓展。
兩個星期的實訓並不能讓我們完全了解網路營銷,之後需要我們自己更多的關注和學習。
實訓總結通用版3
實訓又到要結束的時候了。在實訓期間基本了解數控銑床的功能和分類,數控銑床的結構及主要指令。了解了數控銑床的常用刀具和數控的加工指令。
熟悉了數銑編程指令、程序格式、編程方法。而後我對於刀具半徑的補償功能的不了解對於我之後的學習帶來了許多的困難。之後我了解到如果直接按工件輪廓線編程,在加工工件內輪廓時候,實際的輪廓線將大了一個刀具半徑;在加工工件外輪廓時候則剛好相反。然後隨著時間的推移我又學習到刀具長度補償、固定循環加工、子程序、宏程序。通過6周的實訓期間。我了解到現代機械行業的未來,並且熟悉到了數銑方面的知識,更為重要的是讓我知道了自己在數銑方面的知識太少而且學習的不積極,學習應該腳踏實地,不能馬馬虎虎,就像是數銑編程一樣的性質。不能錯半點,程序方面錯了一點點,工件就可能會沒用了,刀具、機床、人生安全都保證不了的損傷。
所以在這方面的解決辦法我想應該是通過自己對於知識的掌握於操作技能方面的加強,才能夠是有效的避免這類事情的發生。這讓我總結到了數銑是一個細心穩重的工作,不能容下半點馬虎。在這次數銑的實訓期間,老師對我們的嚴格要求,要求每次實訓結束後打掃衛生、遵守 安全生產 章程等。培養了勞動觀點,安全生產觀念、最重要的是自覺性,現在我就在想當我們面臨步入社會的難題,即將就業了,就業單位就不會像老師那樣的點點滴滴細致的要求我們將工件做好,就不會像學校這樣的多的機會來學習,更多的是需要我們去觀察、學習。如果連上面的條件都難以達到的話,那麼在社會上的困難會比現在的要難的多。
就從現在要對面多事情的苦難要迎難而上,不能像現在的樣子每天都是混混噩噩的度過,這段時間我會永遠的記得,在我最低迷的時候,最無所事事的時間段內。不管以後會是什麼樣子,每天都要給予自己最大的勇氣。
六周的實訓給我帶來的難以忘記的記憶,他會是我以後的動力,學習到的東西我會選擇將他寫下。這不僅僅是實操與模擬給我帶來的專業知識,更多的是在以後的人生我該要如何去書寫他。對自己情況的了解是從實訓第二周開始的,從編程開始的,一開始就對專業知識的輕視,認為其很是簡單,但是到了現在我清楚的知道,數銑編程並不是那麼簡單能學好的,學點皮毛太過簡單,真想要學得好就不是那麼簡單的。實訓期間,彭四海老師和其他三位老師傅的敬業、嚴謹精神也讓我們敬佩。
只要工件有什麼不足之處,老師都會細心的指出來,老師還會一次又一次地給同學演示如何操作,直到同學真正清楚。這種精神值得我們每一個人學習。在我們自己操作機床時,老師都會在機床旁看著,如有操作不正確時老師都會及時的指出來,避免發生安全事故。我覺得機加實訓對我自己來說非常有意義,非常實在。它給我的大學生活添上了出色的一筆。它讓我更貼近技術工人的生活,讓我增長了更多的專業知識,讓我熟悉到自己的優點與不足。最後藉此機會我謝謝兩位老師的細心教導。謝謝您們教育我的各種知識。
實訓總結通用版4
光陰似箭,日月如梭。為期四個禮拜的plc實訓已近結束,但我們對plc的學習始終沒有結束。雖然學習的時間說長不長,說短不短,但這段時間我確確實實收獲了不少,無論從方面為人處事,還是專業課的學習方面都有了很大層次的提升。
首先我想 說說 我們的專業老師,我個人覺得他是我見過最為負責的一個任課老師,無論從 言行舉止 到行為動作無從不讓我感到崇敬,上課的時候他喜歡從我們的角度去考慮問題,不管我們懂或不懂他都要講到我們懂為止,由此可見他的耐心是多麼的好;其次他尊重任何同學的 學習態度 ,不管你是學或不學你都要從嚴要求自己,不要擾亂他人,不要擾亂課堂秩序,教會你為人處事的道理等;再次他喜歡從職業的角度來審視我們的學習態度,教導我們企業是需要什麼樣的人才,什麼樣的人才企業才會保留,不管你是聽或不聽你都要聽進去且要有所收獲,有所感悟,他也經常講一些他在企業時的想法與感受,通過自己的親身經歷來教導我們,以在企業中實際的舉例來說服我們在坐的每位同學,他就是我們可親、可愛、幽默、落落大方、有才幹、有實力的講師———朱光耀。
雖然學習了四周的plc但我們的學習始終建立在基礎學習之上,其中我們的學習以西門子S7——200系列為主學習包括plc的分類、組成、編程方法、注意事項等等。
1、plc的組成它是由電源、CPU、輸入、輸出、通訊、存儲器等;
2、plc的分類從大體方面分為點數和形狀,其中點數包括小、中、大型機;形狀包括整體式、模塊;
3、編程方法主要是以基本編程方法與順控指令編程、移植法為主;
4、注意事項書寫梯形圖的基本規則:
a、線圈不能與左母線直接相連;
b、觸點不能直接與右母線相連;
c、編程的時候上重下輕,左重右輕等等;我們做過的項目有三相非同步電動機的正、反轉;電動機星——三角降壓啟動控制;c620與c6140車床線路控制的改造;四節傳送帶的順控指令編程;交通燈的基本指令與順控指令編程;簡易彩燈的順控指令編程等等。學過的指令有置位指令、復位指令、傳送指令、狀態存儲器s、中間存儲器M等等;
其中最為重要的是PLC的編程步驟要求;
1、I/O分配表;+
2、硬體接線圖;
3、程序編輯;
其次對plc控制要求分析以三相非同步電動機正、反轉為例;
1、按下正轉按鈕電動機正轉,按下反轉按鈕電動機反轉,按下停止按鈕電動機停止;
2、確定輸入、輸出信號且需考慮預留量其中輸入信號包括按鈕、熱繼電器、行程開關、感測器;輸出信號包括交流接觸器、電燈既不是輸入也不是輸出的是KT、KA,KT用T37替代、KA用M替代;
3、硬體選型;
4、I/O分配表;
5、硬體接線圖;
6、實物圖接線;
7、程序編輯(編程);
8、機器調試;作為我們新手常常採用的是移植法也稱轉換法,它的適用范圍有限只能是適用現有繼電器的改造,像c620、c6140等。
實訓總結通用版5
站在長城腳下,我們有說不盡的千言萬語,看著茫茫雲霧,我們似乎想對長城說:我的——中國夢!看著若隱若現的房屋,看著遠處信號燈還閃爍著迷離的燈光,你是否想高聲吶喊:我有夢想,有美麗的夢想?這是發自動內心的吶喊,這是發自內心的心聲,這是發自內心的激情。
在學校領導的高度重視下,我們數控車工實訓取得了良好的成績,使學生學習了數控車編程理論,同時大大提高了實際操作能力,增強學生的安全文明生產的意識和企業意識。
本學期我擔任了學生的數控車間實習實訓指導教學工作。開學完成了實習實訓教學計劃,根據教學計劃開展實習實訓。主要擔任15屆機械班,長達一學期的數控車工實訓任務。針對學校教學安排,擬定教學計劃,根據學生實際情況進行實訓指導。至今,學生的車間實訓已經圓滿結束了。這短短的一個學期的實訓,使我體會到做一位老師的樂趣,體會到了一個作為老師的責任和義務。對本次實訓情況及效果總結如下:
一、實訓目的:
1、為了完成理論與實際操作的結合、提高學生與社會的溝通能力,進一步提高學生的思想覺悟、實踐能力,尤其是觀察、分析和解決問題的實際工作能力,以便把學生培養成為社會所需要的高素質的技能型人才。實習實訓重在運用教學成果,檢驗學習效果,激發學生學習興趣,根據學生自身情況,促進學生理論與實踐的結合,加快學生理論知識轉化為扎實操作技能。
2、培養學生的實際操作能力,而這種實際操作能力的培養單靠課堂教學是遠遠不夠的,必須從課堂走向實作車間,因為學生面臨的是社會就業。讓學生通過親身實踐,了解實際的機械加工原理和工藝過程,熟悉工廠管理的基本環節,達到加工要求,進行實件加工。用實踐去體會一個從事機械加工工人的基本素質和要求,以培養自己的適應能力、組織能力、協調能力和分析解決實際問題的工作能力。
少年強則國強,少年興則國興,作為新時代的中職生,我們應記住自己的歷史使命,記住祖國的未來需要我,為實現中國的偉大復興而努力,樹立正確的世界觀,人生觀,價值觀,提高思想道德修養和科學 文化 修養,做有理想有道德有文化有紀律的四有公民。
二、實訓效果
1、實訓期間我們的實訓指導工作是以「安全第一」為思想教育指導,嚴格要求我們的學生要注意安全問題,要嚴格遵守車間市場的 規章制度 。採取課前講安全、課中復強調。實習期間,沒有學生出現過受傷或者其他安全事故。
2、通過直接參與加工的運作過程,學到了實踐知識,同時進一步加深了對理論知識的理解,達到理論聯系實際,使理論與實踐知識都有所提高,到達了實訓基本目的。首先是讓學生了解、復習理論知識。熟悉數控車(GSK928TE數控系統)的基本操作方法及編程,接著是數控車床的實際操作,有了理論學習的基礎,操作機床變的簡單易懂,保證在一周的時間,學生便可獨力完成部分簡單的實踐操作,隨著操作技能的提升,從難到易進行實體加工。把握校企合作的契機,推薦部分學生在校園企業中進行產品生產,增強學生企業意識。本期實訓在領導的大力支持下、學生們的共同努力下圓滿地完成了教學實踐任務,學生基本達到中級工以上水品。這次的實訓,提高了學生的實際工作能力,為今後學習以及將來的工作奠定了一定的基礎,同時取得了一些寶貴的實踐操作經驗。
3、本次實訓最大的成功是每個學生都能獨立的完成課件安排,還能獨立的設計、編程、製造工藝品類零件加工。每一個作品都對他們有著實訓的紀念意義。激發今後學習的積極性。
4、學生的實習實訓總結,每天每周我們都進行大小總結。課堂教學、課後交流。通過學生的總結,了解了學生對本次實訓的態度,可以看出學生都很珍惜這次的實作機會,並收獲了許多書本上沒有的知識。
「中國夢」不是一句空話,需要我們的實際行動。一萬年太久,只爭朝夕。愛國不應只是空談,我們應付諸於行動,那麼作為職業學校的一名學生我們應把愛國之志轉化成愛國之行?我認為我們能做的有很多,比如:我們應遵守法律法規,這應是起碼的要求。學好專業知識,加強鍛煉,以便將來報效祖國,為祖國健康工作五十年。
三、展望未來
一步登天做不到,一步一個腳印能做到;一鳴驚人有困難,一股勁做好一件事還可以。每天進步1%,是小成功到大成功的日積月累,是實現人生目標的最佳路徑。每天進步1%,貴在每天,難在每天。每天都超越昨天,日有所進,月有所變,用心寫好進步1%的加號,讓青春厚重而充實。讓我們用行動實現中國夢。
這學期的工作取得的成績是顯而易見的,圓滿完成教學上的安排,這些都是學校領導對本期實訓工作的大力支持和同學們的積極配合,才能取得這么耀眼的成績。成績只能是過去、經驗,將在下期的工作中不斷創新,力爭更上一層樓。
實訓總結通用版5篇 範文 相關 文章 :
★ 大學生實習總結報告萬能模板
★ 2021優秀大學生個人實習總結通用版
★ 應屆大學生個人實習總結(通用版)五篇
★ 畢業實習總結報告通用5篇
★ 通用版大學生實習心得體會範例5篇
★ 2021大學生實訓報告1500字通用
★ 2021實習期工作總結通用版5篇
★ 2021頂崗實習工作總結通用範文5篇
★ 實習結束個人工作總結通用模板範文2020【5篇】
★ 實習個人工作總結通用版範文2020【5篇】
❷ 總結在存儲器窗口觀察內部數據存儲器、外部數據存儲器窗口、程序存儲器窗口的
摘要 親很高興為您解答這個問題我已經幫您找到答案希望對您有幫助。 程序存儲器:一般程序存儲器一般採用只讀存儲器,因為這種存儲器在電源關閉後,仍能保存程序(此特性成為非遺失性),在系統上電後CPU可去除這些指令重新執行。只讀存儲器簡稱ROM,ROM中的信息一旦寫入,就不能隨意更改,特別是不能在程序運行過程中寫入新的內容,故稱為只讀存儲器 數據存儲器:RAM(Random Access Memory) 隨機存儲器。存儲單元的內容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關的存儲器。這種存儲器在斷電時將丟失其存儲內容,故主要用於存儲短時間使用的程序。 按照存儲信息的不同,隨機存儲器又分為靜態隨機存儲器(Static RAM,SRAM)和動態隨機存儲器(Dynamic RAM,DRAM)。
❸ 計算機組裝與維護實訓報告總結 6000字急用!!!
只找到這個!改成xp就行了
計算機組裝實習報告
WIN98安全設置
(1).對系統進行安全設置的基本思路
公用微機的操作者一般分為三大類:第一類是系統管理員,系統管理員擁有對系統的絕對控制權,一般來說沒有必要對系統管理員的許可權進行限制;第二類是普通用戶,普通用戶使用計算機完成各種工作,因此必須獲得一定的許可權,不過也要防止普通用戶超越許可權或破壞系統;第三類為非法入侵者,入侵者根本無權使用計算機,對入侵者一定要將系統的一切功能全部屏蔽。
按照這個思路,首先必須對Windows 98的正常操作人員(包括超級用戶)進行設置,將操作人員名單全部輸入到系統中,然後分別對他們的許可權進行適當設置,這樣既保證了他們的安全,又禁止他們越權操作,最後便是採取措施,防止非法用戶「入侵」,確保系統安全。
(2).微機操作人員的設置
Windows 95系統是一個多用戶操作系統,但它在用戶管理方面卻非常混亂,非法入侵者甚至可以在啟動時通過密碼確認框直接添加新的用戶,這對控制系統帶來了很大的不便。不過Windows 98對此進行了改進,它提供了用戶名的選擇性登錄功能,所以可事先將所有用戶全部添加到系統中,然後由系統在啟動時將這些用戶列表顯示出來,不同用戶從中選擇自己的用戶名並輸入相應的密碼之後即可以自己的名義啟動系統,而非法用戶則無法通過密碼確認框直接創建新用戶,他們只能通過按下「取消」按鈕或Esc鍵來進入系統。這樣,機器便能明確地區分正常用戶(包括超級用戶和普通用戶)與非法入侵者——通過登錄框選擇用戶名並輸入密碼進入的是正常用戶,使用「取消」按鈕進入的是非法入侵者,可以據此分別對他們的許可權進行限制。
須要說明的是,Windows 98在默認情況下仍然採用與Windows 95相同的「老式」用戶名登錄方式,我們想要使用用戶名選擇性登錄方式則應執行如下步驟:
下面1~4步驟主要用於在Windows 98中設置用戶名及密碼,若用戶已經設置過,則可跳過這些步驟,直接從第5步開始。
1.雙擊Windows 98「控制面板」中的「密碼」圖標,打開「密碼屬性」設置框。
2.復選「用戶可自定義首選項及桌面設置,登錄時,Windows將自動啟用個人設置」選項。
3.根據需要決定是否選擇將「開始」菜單添加到用戶的自定義設置中(一般應選擇「是」),然後單擊「確定」按鈕,接著根據屏幕提示設置適當的用戶密碼。
4.單擊「確定」按鈕退出設置框。
重新啟動計算機,此時系統就會彈出一個常規性的密碼設置窗口,可輸入剛設置的用戶名及密碼,按正常方式啟動Windows 98。
5.啟動「控制面板」,雙擊「網路」圖標,打開「網路」設置框。
6.在「網路」設置框中選擇「配置」選項卡。
7.從「主網路登錄」列表框中選擇「Microsoft友好登錄」選項。
8.單擊「確定」按鈕並重新啟動計算機。
此後,Windows 98啟動時彈出的密碼設置框就會發生根本性的變化,它會將所有已經添加的用戶名全部以列表方式顯示出來,廣大用戶只須在「選擇用戶名」列表框中選擇自己的名稱,然後再在「密碼」框中輸入相應的密碼即可啟動各自的系統配置。
執行上述步驟之後,系統安裝用戶(超級用戶)已經被添加到了Windows 98中,接下來就應將操作用戶(普通用戶)添加到Windows 98中。由於採用選擇性登錄方式,系統不允許直接在Windows 98的用戶登錄窗口中創建新的用戶,必須通過雙擊「控制面板」中的「用戶」圖標,打開「添加用戶」窗口,並在「添加用戶」向導的幫助下逐步將本台計算機上所有普通用戶的用戶名及密碼逐一添加到系統中(此後就會出現在Windows 98的啟動登錄框中),然後就可以分別對這些用戶的許可權進行設置了。
(3).對超級用戶許可權的設置
對超級用戶而言,其操作許可權一般不應作太多限制(否則誰來對系統進行控制呢?),不過仍須對電源管理、屏幕保護等功能設置必要的密碼,以維護自己離機時系統的安全,防止其他用戶非法入侵。為此,我們可重新啟動計算機,當系統彈出用戶登錄框時選擇自己的名字並輸入相應的密碼,採用超級用戶身份登錄系統,然後根據需要分別對有關密碼進行設置。
為Windows 98的電源管理功能設置密碼
1.單擊「開始」按鈕,然後依次選擇「設置」、「控制面板」,啟動Windows 98的控制面板。
2.雙擊「控制面板」中的「電源管理」圖標,打開「電源管理屬性」設置框。
3.從「電源管理屬性」設置框中選擇「高級」標簽。
4.復選「計算機退出待機狀態時提示輸入密碼」選項。
5.選擇「電源管理屬性」設置框中的「電源方案」標簽。
6.在「系統等待狀態」列表框中選擇計算機在沒有操作多長時間之後自動啟動電源管理功能(即進入「掛起」狀態),主要有「從1分鍾之後」到「從不」等多種選項,我們應根據需要選擇不同的選項,建議選擇「從10分鍾之後」。
7.為關閉監視器和關閉硬碟設置合適的時間間隔。
8.單擊「確定」按鈕,關閉「電源管理屬性」設置框。
這樣就啟動了Windows 98的電源管理功能,並為其設置了保護的密碼,今後如果用戶在指定的時間(10分鍾)內沒有對計算機進行任何操作(包括移動鍵盤和滑鼠),計算機就將自動進入「掛起」狀態,以便節省電力消耗(單擊「開始」按鈕並選擇「關閉系統」命令,然後從彈出的「關閉系統」對話框中選擇「將您的計算機轉入睡眠狀態」也可達到同樣的目的),而後用戶通過敲擊鍵盤或移動滑鼠來激活計算機時,系統將會要求用戶輸入密碼,不輸入密碼將不能返回正常狀態,這就進一步保護了用戶數據的安全。注意的是,Windows 98電源管理功能並沒有自己單獨的密碼,它的密碼與用戶的啟動密碼相同!
為屏幕保護程序設置密碼
1.用滑鼠右鍵單擊桌面空白處,然後從彈出的快捷菜單中執行「屬性」命令,打開「顯示屬性」設置框。
2.單擊「屏幕保護程序」標簽,然後從「屏幕保護程序」列表框中選擇所需的屏幕保護程序,復選「密碼保護」選項。
3.單擊「更改」按鈕,打開「更改密碼」對話框,重復兩次輸入密碼並單擊「確定」按鈕,關閉「更改密碼」對話框。
4.單擊「設置」按鈕,對屏幕保護的有關功能進行適當設置:在「等待」框中設置多長時間不使用計算機後系統自動啟動屏幕保護(一般可選擇5分鍾)。
5.單擊「確定」按鈕,保存設置並關閉「顯示屬性」設置框。
這樣,就達到了為屏幕保護設置密碼的目的。此後只要離開計算機(即不操作計算機)的時間達到5分鍾,系統就會自動啟動屏幕保護程序,而當用戶移動滑鼠或敲擊鍵盤想返回正常工作狀態時,系統就會打開一個密碼確認框,只有輸入正確的密碼之後才能返回系統,不知道密碼的用戶將無法進入工作狀態,從而保護了數據的安全。須要說明的是,部分設計不完善的屏幕保護程序沒有屏蔽系統的Ctrl+Alt+Del組合鍵,非法用戶只要按下Ctrl+Alt+Del鍵即可強行將這些屏幕保護程序關閉,從而使其失去應有的保護作用。判斷一個屏幕保護程序是否屏蔽了Ctrl+Alt+Del組合鍵,可採用如下辦法:為其設置密碼後激活它,然後移動滑鼠,打開它的密碼確認框,再按下Ctrl+Alt+Del鍵。若能彈出「關閉程序」對話框則表明該程序沒有屏蔽Ctrl+Alt+Del鍵,不能使用;若無法彈出「關閉程序」對話框則表明該程序屏蔽了Ctrl+Alt+Del鍵,可放心使用。
現在還有個問題,屏幕保護最快只能在用戶離開1分鍾之後自動啟動,這就存在一個時間差的問題!解決的方法是,可以打開Windows 98的SYSTEM子目錄,找到相應的屏幕保護程序(*.SCR文件),將它們拖曳到桌面上,選擇彈出菜單中的「在當前位置創建快捷方式」命令,在桌面上為這些屏幕保護程序建立一個快捷方式。此後,在離開計算機時雙擊這個快捷方式即可快速啟動屏幕保護。
另外,利用屏幕保護程序的密碼保護功能,還可令Windows 98一啟動就自動運行屏幕保護程序,此後只有輸入密碼才能啟動計算機。不過此功能絕對不能通過Windows 98的「啟動」程序組來實現(Windows 98「啟動」程序組中的所有程序在啟動時都可通過按下Ctrl鍵跳過,從而無法啟動屏幕保護功能),只有通過修改注冊表數據才能確保設置萬無一失。具體步驟為:
1.運行regedit命令,
2.展開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run分支
3.在Run主鍵中新建一個名為「密碼確認」的字元串值
4.雙擊新建的「密碼確認」字元串,打開「編輯字元串」對話框
5.在「編輯字元串」對話框的「鍵值」欄中輸入相應的屏幕保護程序名及所在的路徑。
通過這樣的設置,此後每次啟動Windows 98時屏幕保護程序都會自動運行(利用Ctrl鍵試圖跳過啟動程序和按Ctrl+Alt+Del試圖強行關閉系統都無能為力),只有在輸入密碼之後才能使用,從而確保了系統的安全。
禁止光碟的自動運行功能
光碟的自動運行功能會帶來麻煩。Windows 98具有自動運行光碟的功能,當在光碟機中插入CD之後,CD會自動進行播放,而當插入根目錄中帶有AUTORUN.INF文件的光碟之後,光碟也會自動運行。Windows 98的屏幕保護功能並沒有禁止光碟的自動運行功能,也就是說即使處於屏幕保護程序密碼的控制之下,用戶在插入一張根目錄中含有AUTORUN.INF文件的光碟之後,系統仍會自動運行,這就給惡意攻擊者帶來了可乘之機(據說市面上已經出現了一種專門用於破解屏幕保護程序密碼的自動運行光碟,插入該光碟後,系統就會自動對屏幕保護功能的密碼進行分析並破譯出密碼,然後再將密碼寫到軟盤上,接下來……),因此必須將光碟的自動運行功能關閉,讓屏幕保護真正發揮它應有的安全保護作用。關閉光碟的自動運行功能,可以按如下步驟操作:
1.單擊「我的電腦」圖標,然後從彈出的快捷菜單中執行「屬性」命令,打開「系統屬性」設置框
2.單擊「設備管理器」標簽
3.展開CDROM分支,從中選擇用戶所使用的光碟機
4.單擊「屬性」按鈕,打開光碟機屬性設置框
5.單擊「屬性」標簽
6.取消「自動插入功能」選項
7.連續單擊兩次「確定」按鈕,保存設置並退出所有對話框。
執行上述步驟後,無論誰在光碟機中插入根目錄中含有AUTORUN. INF文件的光碟之後,系統都不會自動運行。
(4).對普通用戶許可權的限制
對這些用戶,一方面應根據工作需要賦予他們適當的許可權,如啟動計算機,打開相應的應用程序,對自己的數據文件進行拷貝、刪除等操作,以保證他們工作的正常開展,另一方面,為了防止他們對系統進行修改而破壞整個系統,必須對他們的許可權進行必要的限制,如不允許他們使用控制面板中的某些設置項目以防任意修改系統,不允許使用注冊表編輯器、隱藏系統文件所在的分區以防意外等。
對普通用戶許可權進行設置的步驟為:
啟動Windows 98,系統彈出啟動登錄框後從中選擇須要限制其許可權的普通用戶,並輸入相應的密碼,以該用戶的身份進入系統。參照超級用戶的有關步驟對電源管理、屏幕保護等項目設置密碼,然後根據需要對他們的許可權進行必要的限制(注意,由於工作原因,不同普通用戶可能須要擁有不同的操作許可權,因此在對他們的許可權進行設置時必須根據實際情況有選擇地加以限制),最後將啟動密碼、電源管理及屏幕保護的密碼通知相應用戶,要求其獨立對這些初識密碼進行更改。所以,對相應用戶許可權的限制工作也告完成,此後即可由他們在限制的許可權內正常對計算機進行操作。對普通用戶的許可權進行限制的措施主要包括:
刪除「開始」菜單中的有關命令和項目
為了防止用戶利用Windows 98「開始」菜單上的「查找」、「運行」等命令來運行一些特殊的應用程序,必須採用適當方法將它們刪除:
對「開始」菜單中「收藏夾」選項的操作:
1.運行Regedit命令
2.展開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer分支
3.在Explorer主鍵下新建一個名為NoFavoritesMenu的DWORD值,雙擊該值,在「編輯DWORD值」對話框中將鍵值由0改為1
4.單擊「確定」按鈕,關閉「編輯DWORD值」對話框,重新啟動Windows 98,「開始」菜單中的「收藏夾」選項就會消失。
對「開始」菜單中「文檔」選項的操作:
在Explorer主鍵下新建一個名為「NoRecentDocsHistory」的DWORD值,並將其值修改為1,則「文檔」菜單中的內容不能被修改;在Explorer主鍵下新建一個名為「ClearRecentDocs OnExit」的DWORD值,並將其值修改為1,則每次退出系統時,Windows 98將自動清除文檔菜單中的歷史記錄,在Explorer主鍵下新建一個名為「NoRecentDocs Menu」的二進制值,並將其值修改為「01 00 00 00」,則「文檔」菜單將從Windows的「開始」菜單中消失。
對「開始」菜單中「運行」選項的操作:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoRun」的DWORD值,並將其值修改為1,則「運行」命令將從Windows 98的「開始」菜單中消失。
對「開始」菜單中「設置」選項的操作:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoSetFolders」的二進制值,並將其值修改為「01 00 00 00」,則「設置」子菜單將從Windows 98的「開始」菜單中消失;在Explorer主鍵下新建一個名為「NoSetTaskbar」的二進制值,並將其值修改為「01 00 00 00」,將不能再對Windows 98的任務欄屬性進行設置(前面設置了「NoSetFolders」二進制值之後,Windows 98的「設置」菜單不復存在,不過仍可通過右擊Windows 98任務欄,並執行「屬性」命令打開「任務欄」屬性對話框,這顯然不能滿足關閉「任務欄」屬性的要求,而設置此參數後,右擊任務欄的方法也將失效)。
對「開始」菜單中「查找」選項的操作:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoFind」的DWORD值,並將其值修改為1,「開始」菜單中的「查找」子菜單就會消失。
對「開始」菜單中「關閉系統」選項的操作:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoClose」的DWORD值,並將其值修改為1,「關閉系統」命令就將從「開始」菜單中消失。
對「開始」菜單中「注銷」選項的操作:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoLogOff」的二進制值,並將其值修改為「01 00 00 00」,則「注銷」命令將從Windows 98的「開始」菜單中消失。
取消用戶的環境設置:
利用上面相同的方法,在Explorer主鍵下新建一個名為「NoSaveSettings」的二進制值,並將其值修改為「01 00 00 00」,此後每次退出Windows 98時系統都不會保存用戶對環境所作的設置。
經過上述設置後,可以滿足不同用戶的需要。
隱藏「開始」菜單中的應用程序
對於普通用戶,可能要防止他們使用某些應用程序,這時就應採用下面的方法將Windows 98「開始」菜單中的應用程序隱藏起來:
1.用滑鼠右鍵單擊「開始」菜單,從彈出的快捷菜單中執行「打開」命令,打開「Start Menu」文件夾窗口
2.在「Start Menu」文件夾窗口中找到希望隱藏的應用程序的快捷方式。
3.右擊該快捷方式,然後從彈出的快捷菜單中執行「屬性」命令,打開相應快捷方式的屬性設置框。
4.復選「隱藏」選項,然後單擊「確定」按鈕,關閉所有對話框。
此後,這些隱藏的快捷方式就會從Windows 98的「開始」菜單中消失,從而在一定程度上達到了保密的目的(取消這些快捷方式的隱藏屬性後即可令其重新顯示)。
刪除「網上鄰居」等系統圖標
基於某些特殊需要,可能要禁止普通用戶使用桌面上的「網上鄰居」、「我的文檔」、「回收站」等系統圖標,而它們又不能採用常規方法刪除。為此,可執行如下步驟:
1.運行注冊表編輯器Regedit打開注冊表
2.展開注冊表的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace主鍵
3.此時可以從NameSpace 主鍵中看到「網上鄰居」、「我的文檔」、「回收站」等分支,只須刪除這些分支即可達到刪除桌面上相應系統圖標的目的。
在圖形界面下隱藏某個驅動器圖標
為防止普通用戶的破壞,希望將保存系統文件的磁碟分區(如C盤)以及光碟機、軟碟機等隱藏起來,為此可以進行下面的操作:
1.運行注冊表編輯器Regedit打開注冊表
2.展開注冊表的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer分支
3.用滑鼠右鍵單擊桌面空白處,然後執行快捷菜單中「新建」子菜單中的「二進制值」命令,創建一個名為「NoDrives」的二進制值。該二進制值(「NoDrives」)就是用於設置是否隱藏某個驅動器的,它由四個二進制位元組構成(預設值為00 00 00 00),每個位元組的每一位都分別對應一個磁碟驅動器的盤符。當某位為1時,資源管理器及「我的電腦」中的相應驅動器圖標即會隱藏起來。驅動器的值是這樣確定的:A~Z的值依次為2的0至25次方,把要禁止的驅動器的值相加,轉換為十六進制,就是NoDrives的鍵值。如要禁止A、D、E,則為1+8+16=25,轉換為十六進制數19,修改NoDrives的值為「19 00 00 00」即可。
完成上述操作後,相應的磁碟驅動器圖標就會從Windows 98的圖形界面中消失,無論是從「資源管理器」、「我的電腦」及有關文件的打開、關閉對話框還是在其它外掛文件管理器(如Windows Commander等)中都無法發現這些隱藏了的磁碟分區的蹤跡,從而滿足了防止普通用戶對系統文件進行破壞的需要,同時也使得他們不能使用任何外來程序(光碟機、軟碟機都不能訪問,光碟機的自動運行功能又被禁止,還能安裝、運行其它程序嗎?),很好地保護了系統的安全。
❹ 單片機ram 存儲器讀寫實驗
這個不太好解答了。
樓主問的應該是ROM吧?
RAM是內存,掉電丟數據的。
一般儲存器是指ROM,掉電不會丟失數據。
而單片機也太籠統了,好多品牌和型號呢,51和STM32用的比較多,不知道樓主要哪種的常式?
還有就是ROM也分很多呀,可以是FLASH,也可以使EPPROM等等~~~
當然不管是什麼ROM,大部分都有一個特性是要先擦除後寫入~~~而且擦除的速度比較慢。
給個採納唄~
❺ 存儲器實驗 1.指出本實驗中存儲器的實際容量有多大,為什麼
8086/8088系統中,存儲器為什麼要分段?一個段最大為多少位元組?最小為多少位元組?
解:分段的主要目的是便於存儲器的管理,使得可以用16位寄存器來定址20位的內存空間。一個段最大為64KB,最小為16B。
❻ 微機原理課程總結心得
一學期的微機原理與應用課程,從基礎知識與實驗應用兩方面,讓我全面而深入地了解了計算機、單片機。
計算機工作原理部分最為精妙之處在於,在數字電路的基礎上引入了預先可存儲的指令、規范化的指令集與由門電路組成的控制器,這是硬體與軟體的銜接,「馮諾依曼機」的出現為靜態的硬體電路賦予可編程、可操作的未來。基於這一理念,微機控制技術、指令執行方式得到了長足的飛躍,出現了操作系統與集成化單片機。
單片機簡單的微機系統,集成了CPU、存儲器、IO結構,配合精簡的操作系統(預設的指令集),接入特殊的外設易於實現特定的功能。介面技術從定址方式、指令系統、中斷操作開始講解,讓我了解到單片機系統中匯編語言與機器碼的交互方式;而後的時鍾、串口、ADC模塊,則賦予單片機極高的工程價值。
❼ 操作系統存儲管理實驗
#include<stdio.h>#include <dos.h>#include<stdlib.h>#include<conio.h>#include<iostream.h>
#define n 10 /*假定系統允許的最大作業數為n,假定模擬實驗中n值為10*/ #define m 10 /*假定系統允許的空閑區表最大為m,假定模擬實驗中m值為10*/ #define minisize 100 /*空閑分區被分配時,如果分配後剩餘的空間小於minisize,則將該空閑分區全部分配,若大於minisize,則切割分配*/
struct { float address; /*已分配分區起始地址*/ float length; /*已分配分區長度,單位為位元組*/ int flag; /*已分配區表登記欄標志,用"0"表示空欄目*/ }used_table[n]; /*已分配區表*/
struct { float address; /*空閑區起始地址*/ float length; /*空閑區長度,單位為位元組*/ int flag; /*空閑區表登記欄標志,用"0"表示空欄目,用"1"表示未分配*/ }free_table[m]; /*空閑區表*/
void allocate(char J,float xk) /*給J作業,採用最佳分配演算法分配xk大小的空間*/ { int i,k; float ad; k=-1;
for(i=0;i<m;i++) /*尋找空間大於xk的最小空閑區登記項k*/ if(free_table[i].length>=xk&&free_table[i].flag==1) if(k==-1||free_table[i].length<free_table[k].length) k=i; if(k==-1)/*未找到可用空閑區,返回*/ { printf("無可用空閑區\n"); return; }
/*找到可用空閑區,開始分配:若空閑區大小與要求分配的空間差小於minisize大小,則空閑區全部分配;若空閑區大小與要求分配的空間差大於minisize大小,則從空閑區劃出一部分分配*/ if(free_table[k].length-xk<=minisize) { free_table[k].flag=0; ad=free_table[k].address; xk=free_table[k].length; } else { free_table[k].length=free_table[k].length-xk; ad=free_table[k].address+free_table[k].length; } /*修改已分配區表*/ i=0; while(used_table[i].flag!=0&&i<n) /*尋找空表目*/ i++;
if(i>=n) /*無表目可填寫已分配分區*/ { printf("無表目填寫已分分區,錯誤\n");
/*修正空閑區表*/ if(free_table[k].flag==0) /*前面找到的是整個空閑分區*/ free_table[k].flag=1; else {/*前面找到的是某個空閑分區的一部分*/ free_table[k].length=free_table[k].length+xk; return; } } else {/*修改已分配表*/ used_table[i].address=ad; used_table[i].length=xk; used_table[i].flag=J; }
return; }/*主存分配函數結束*/
void reclaim(char J) /*回收作業名為J的作業所佔主存空間*/ { int i,k,j,s,t; float S,L;
/*尋找已分配表中對應登記項*/ s=0; while((used_table[s].flag!=J||used_table[s].flag==0)&&s<n) s++;
if(s>=n)/*在已分配表中找不到名字為J的作業*/ { printf("找不到該作業\n"); return; }
/*修改已分配表*/ used_table[s].flag=0;
/*取得歸還分區的起始地址S和長度L*/ S=used_table[s].address; L=used_table[s].length; j=-1;k=-1;i=0;
/*尋找回收分區的空閑上下鄰,上鄰表目k,下鄰表目j*/ while(i<m&&(j==-1||k==-1)) { if(free_table[i].flag==1) { if(free_table[i].address+free_table[i].length==S)k=i;/*找到上鄰*/ if(free_table[i].address==S+L)j=i;/*找到下鄰*/ } i++; }
if(k!=-1) if(j!=-1) /* 上鄰空閑區,下鄰空閑區,三項合並*/ { free_table[k].length=free_table[j].length+free_table[k].length+L; free_table[j].flag=0; } else /*上鄰空閑區,下鄰非空閑區,與上鄰合並*/ free_table[k].length=free_table[k].length+L; else if(j!=-1) /*上鄰非空閑區,下鄰為空閑區,與下鄰合並*/ { free_table[j].address=S; free_table[j].length=free_table[j].length+L; } else /*上下鄰均為非空閑區,回收區域直接填入*/ { /*在空閑區表中尋找空欄目*/ t=0; while(free_table[t].flag==1&&t<m) t++; if(t>=m)/*空閑區表滿,回收空間失敗,將已分配表復原*/ { printf("主存空閑表沒有空間,回收空間失敗\n"); used_table[s].flag=J; return; } free_table[t].address=S; free_table[t].length=L; free_table[t].flag=1; } return; }/*主存回收函數結束*/
int main( ) { int i,a; float xk; char J;
/*空閑分區表初始化:*/ free_table[0].address=10240; /*起始地址假定為10240*/ free_table[0].length=10240; /*長度假定為10240,即10k*/ free_table[0].flag=1; /*初始空閑區為一個整體空閑區*/ for(i=1;i<m;i++) free_table[i].flag=0; /*其餘空閑分區表項未被使用*/
/*已分配表初始化:*/ for(i=0;i<n;i++) used_table[i].flag=0; /*初始時均未分配*/
while(1) { printf("選擇功能項(0-退出,1-分配主存,2-回收主存,3-顯示主存)\n"); printf("選擇功項(0~3) :");
scanf("%d",&a); switch(a) { case 0: exit(0); /*a=0程序結束*/
case 1: /*a=1分配主存空間*/ printf("輸入作業名J和作業所需長度xk: "); scanf("%*c%c%f",&J,&xk); allocate(J,xk); /*分配主存空間*/ break;
case 2: /*a=2回收主存空間*/ printf("輸入要回收分區的作業名"); scanf("%*c%c",&J); reclaim(J); /*回收主存空間*/ break;
case 3: /*a=3顯示主存情況*/ /*輸出空閑區表和已分配表的內容*/ printf("輸出空閑區表:\n起始地址 分區長度 標志\n"); for(i=0;i<m;i++) printf("%6.0f%9.0f%6d\n",free_table[i].address,free_table[i].length, free_table[i].flag); printf(" 按任意鍵,輸出已分配區表\n"); getch(); printf(" 輸出已分配區表:\n起始地址 分區長度 標志\n"); for(i=0;i<n;i++) if(used_table[i].flag!=0) printf("%6.0f%9.0f%6c\n",used_table[i].address,used_table[i].length, used_table[i].flag); else printf("%6.0f%9.0f%6d\n",used_table[i].address,used_table[i].length, used_table[i].flag); break;
default:printf("沒有該選項\n"); }/*case*/ }/*while*/
return 1;}
❽ 使用Transact-SQL創建函數和存儲過程的實驗感想
函數和存儲過程對SQL SERVER來說有很大的區別:
1.在SQL SERVER2K以前,沒有自定義函數UDF,只有系統函數。
2.無論系統函數和UDF,在系統啟動是就進行編譯並載入,所以UDF的效率比SP要高,SP只是在調用時才載入(擴展的存儲過程除外)。
3.有些函數getdate,exec..都在UDF里不能用!
4.函數必須有返回值,SP則不一定。
5.函數可以包括在FROM子句中,SP則不可以。
6.在SQL SERVE2K中SP可以DEBUG,UDF不可以。 用戶定義函數
函數是由一個或多個 Transact-SQL 語句組成的子程序,可用於封裝代碼以便重新使用。Microsoft® SQL Server™ 2000 並不將用戶限制在定義為 Transact-SQL 語言一部分的內置函數上,而是允許用戶創建自己的用戶定義函數。
可使用 CREATE FUNCTION 語句創建、使用 ALTER FUNCTION 語句修改、以及使用 DROP FUNCTION 語句除去用戶定義函數。每個完全合法的用戶定義函數名 (database_name.owner_name.function_name) 必須唯一。
必須被授予 CREATE FUNCTION 許可權才能創建、修改或除去用戶定義函數。不是所有者的用戶在 Transact-SQL 語句中使用某個函數之前,必須先給此用戶授予該函數的適當許可權。若要創建或更改在 CHECK 約束、DEFAULT 子句或計算列定義中引用用戶定義函數的表,還必須具有函數的 REFERENCES 許可權。
在函數中,區別處理導致刪除語句並且繼續在諸如觸發器或存儲過程等模式中的下一語句的 Transact-SQL 錯誤。在函數中,上述錯誤會導致停止執行函數。接下來該操作導致停止喚醒調用該函數的語句。
❾ c語言實驗報告心得
c語言實驗心得:
1、只有頻繁用到或對運算速度要求很高的變數才放到data區內,如for循環中的計數值。
2、其他不頻繁調用到和對運算速度要求不高的變數都放到xdata區。
3、常量放到code區,如字型檔、修正系數。
4、邏輯標志變數可以定義到bdata中。
在51系列晶元中有16個位元組位定址區bdata,其中可以定義8*16=128個邏輯變數。這樣可以大大降低內存佔用空間。定義方法是: bdata bit LedState;但位類型不能用在數組和結構體中。
5、data區內最好放局部變數。
因為局部變數的空間是可以覆蓋的(某個函數的局部變數空間在退出該函數是就釋放,由別的函數的局部變數覆蓋),可以提高內存利用率。當然靜態局部變數除外,其內存使用方式與全局變數相同;
6、確保程序中沒有未調用的函數。
在Keil C里遇到未調用函數,編譯器就將其認為可能是中斷函數。函數里用的局部變數的空間是不釋放,也就是同全局變數一樣處理。這一點Keil做得很愚蠢,但也沒辦法。
7、如果想節省data空間就必須用large模式。
將未定義內存位置的變數全放到xdata區。當然最好對所有變數都要指定內存類型。
8、使用指針時,要指定指針指向的內存類型。
在C51中未定義指向內存類型的通用指針佔用3個位元組;而指定指向data區的指針只佔1個位元組;指定指向xdata區的指針佔2個位元組。如指針p是指向data區,則應定義為: char data *p;。還可指定指針本身的存放內存類型,如:char data * xdata p;。其含義是指針p指向data區變數,而其本身存放在xdata區。
以前沒搞過C51,大學時代跟單片機老師的時候也是搗鼓下匯編,現在重新搞單片機,因為手頭資料不多,找到一些C51的程序,發現裡面有這些關鍵字,不甚明了,沒辦法只好找了下,發現如下描述:
從數據存儲類型來說,8051系列有片內、片外程序存儲器,片內、片外數據存儲器,片內程序存儲器還分直接定址區和間接定址類型,分別對應code、data、xdata、idata以及根據51系列特點而設定的pdata類型,使用不同的存儲器,將使程序執行效率不同,在編寫C51程序時,最好指定變數的存儲類型,這樣將有利於提高程序執行效率(此問題將在後面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應不同的實際硬體系統,也將有不同的編譯結果。
在51系列中data,idata,xdata,pdata的區別
data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。
idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪問效果很好)
xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。
pdata:外部擴展RAM的低256個位元組,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優點,具體用法屬於中級問題,這里不提。
三、有關單片機ALE引腳的問題
"單片機不訪問外部鎖存器時ALE端有正脈沖信號輸出,此頻率約為時鍾振盪頻率的1/6.每當訪問
外部數據存儲器是,在兩個機器周期中ALE只出現一次,即丟失一個ALE脈沖."這句話是不是有毛
病.我覺得按這種說法,應該丟失3個ALE脈沖才對,我一直想不通是怎麼回事,希望大蝦們幫幫我.
小弟感激涕零.
答:
其他所有指令每6個機器周期發出一個ALE,而MOVX指令佔用12個機器周期只發出一個ALE
四、如何將一個INT型數據轉換成2個CHAR型數據?
經keil優化後,char1=int1/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一樣的。
五、在KEIL C51上模擬完了,怎樣生成HEX文件去燒寫??
右鍵點項目中Target 1,選第二個,在OUTPUT中選中CREAT HEX
六、typedef 和 #define 有何不同??
typedef 和 #define 有何不同》》》 如
typedef unsigned char UCHAR ;
#define unsigned char UCHAR ;
typedef命名一個新的數據類型,但實際上這個新的數據類型是已經存在的,只不過是定義了
一個新的名字.
#define只是一個標號的定義.
你舉的例子兩者沒有區別,但是#define還可以這樣用
#define MAX 100
#define FUN(x) 100-(x)
#define LABEL
等等,這些情況下是不能用typedef定義的
七、請問如何設定KELC51的模擬工作頻(時鍾)
用右鍵點擊左邊的的target 1,然後在xtal一欄輸入
八、不同模塊怎樣共享sbit變數,extern不行?
把SBIT定義單獨放到一個.H中,每個模塊都包含這個.h文件
九、C51中對於Px.x的訪問必須自己定義嗎?
是的。
如sbit P17 = 0x97;即可定義對P1.7的訪問
十、SWITCH( )語句中表達式不可以是位變數對嗎?
可以用位變數:
#include
#include
void main()
{
bit flag;
flag=0;
switch(flag)
{
case '0':{printf("0\n");break;}
case '1':{printf("1\n");break;}
default:break;
}
}
bit 變數只有兩種狀態,if 語句足夠啦,!!!
十一、const常數聲明占不佔內存???
const 只是用來定義「常量」,所佔用空間與你的定義有關,如:
const code cstStr[] = {"abc"};
佔用代碼空間;而如:
const char data cstStr[] = {"abc"};
當然佔用內存空間。
另外,#define 之定義似乎不佔用空間。
十二、philips的單片機P89C51RD+的擴展RAM在C51中如何使用?
試一試將auxr.1清0,然後在c語言中直接聲明xdata類型的變數
十三、BUG of Keil C51
程序中用如下語句:
const unsigned char strArr[] = {"數學"};
結果發現strArr[] 內容為 {0xCA,0xD1,0xA7},真奇怪!
凡是有0xfd,則會通通不見了,所以只能手工輸入內碼了,例如 uchar strArr[]=
{0xCA,0xfd,0xd1,0xa7}(用Ultraedit會很方便)。
十四、Keil C51中如何實現代碼優化?
菜單Project下Option for target "Simulator"的C51.
看到Code optimization了嗎?
十五、請教c的!和 ~ 符號有甚區別??
!是邏輯取反,~是按位取反。
十六、c51編程,讀埠,還要不要先輸出1?
我怎麼看到有的要,有的不要,請高手給講講,到底咋回事?謝了
要輸出1的,除非你能保證之前已經是1,而中間沒有輸出過其他值。
十七、當定時器1(T1)用於產生波特率時,P3^5還是否可以用作正常的I/O口呢?
p3.5完全可以當普通的io使用
十八、C51中 INT 轉換為 2個CHAR?
各位高手:
C51中 INT 轉換為 CHAR 如何轉換諸如:
X = LOW(Z);
Y = HIGH(Z);
答:
x=(char)z;
y=(char)(z>>8);
十九、如果我想使2EH的第7位置1的話,用位操作可以嗎?
現在對位操作指令我一些不太明白請各位多多指教:
如 SETB 07H 表示的是20H.7置1,對嗎?(我在一本書上是這么看到的)
那麼如果我想使2EH的第7位置1的話,象我舉的這個例子怎麼表示呢?謝謝!
SETB 77H
setb (2eh-20h)*8+7
20h-2fh每位元組有8個可位操作(00h-7fh),其它RAM不可位直接操作
二十、char *addr=0xc000 和char xdata *addr=0xc000有何區別?
char *addr=0xc000;
char xdata *addr=0xc000;
除了在內存中佔用的位元組不同外,還有別的區別嗎?
char *addr=0xc000; 是通用定義,指針變數 addr 可指向任何內存空間的值;
char xdata *addr=0xc000; 指定該指針變數只能指向 xdata 中的值;
後一種定義中該指針變數(addr)將少佔用一個存儲位元組。
uchar xdata *addr=0xc000;指針指向外ram;
如果:data uchar xdata *addr=0xc000;指針指向外ram但指針本身存在於內ram(data)
中
以此類推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;
data uchar idata *addr=0xa0;.........
二十一、while(p1_0)的執行時間?
假設,P1_0為單片機P1口的第一腳,請問,
while(P1_0)
{
P1_0=0;
}
while(!P1_0)
{
P1_0=1;
}
以上代碼,在KEIL C中,需要多長時間,執行完。能具體說明while(P1_0)的執行時間嗎?
模擬運行看看就知道了,
我模擬了試了一下,約14個周期
二十二、怎樣編寫C51的watchdog程序?
各位大蝦,我用KEIL C51 編寫了一個帶外部開門狗的程序,可程序無法運行起來,經過查
找,發現程序在經過C51編譯後,在MAIN()函數的前部增加了一端初始化程序,等到進入
主程序設置開門狗時,開門狗已經時間到,將我的程序復位了,請問我怎樣才能修改這一端
初始花程序,使他一運行,就設置開門狗?
可以在startup.a51中加入看門狗刷新指令,當然用匯編,然後重新編譯startup.a51
,將他和你的程序連接即可。新的startup.a51會自動代替系統默認的啟動模塊。
二十三、keil C51 怎樣把修改的startup.a51 加到工程文件中
直接加入即可
注意不要改動?STACK,?C_START,?C_STARTUP等符號。startup.a51直接加入項目,不用修改也可。可在內面自己修改匯編的一些限制或堆棧指針。
二十四、關於波特率的設置
我在設定串口波特率時發現一個問題:在晶體震盪器為11.0592MHz時,若設9600BPS的話,
TH1=0XFD,TL1=0XFD,而要設19200BPS的話,TH1、TL1有否變化,如果沒變,為什麼?
如果變了,又為什麼?(因為我看書上倆個是一樣的),希望大家點撥。
答:
當電源控制寄存器(PCON)第BIT7(SMOD)為1時波特率加倍。
TH1和TL1的值不變.
二十五、如何在C中聲明保留這部分RAM區不被C使用?
我不知道在C源程序中怎麼控制這個,但在匯編程序中加入下面一段就行:
DSEG AT 20H
AA: DS 10
這樣C51就不會佔用20H--29H了
或者在c51里這樣定義:
uchar data asm_buff[10] _at_ 0x20;
二十六、問浮點運算問題
我在用C51時發現它對傳遞浮點參數的個數有限制,請問:
1)參數是以全局變數的形式傳遞的,請問以全局變數的形式傳遞的參數也有限制嗎?
2)這種傳遞浮點參數的限制有多少呢?
3)float*float的結果是float類型還是double類型?能否直接賦值給float類型的變數?
答:
由於KEIL C51的參數傳遞是通過R0-R7來傳遞的,所以會有限制。
不過KEIL提供了一個編譯參數,可以支持更多參數的傳遞。具體
的內容見KEIL的PDF文檔。
我建議你把多個要傳遞的參數定義到指針或結構體中去,傳遞參
數通過指針或結構進行,這樣好一些。
第3個問題回答是YES,你自己試試不就知道了。
二十七、如何在某一個地址定義ram
用_at_ 命令,這樣可以定位靈活一點的地址
uchar xdata dis_buff[16] _at_ 0x6020 ;//定位RAM
將dis_buff[16]定位在0x6020開始的16個位元組
二十八、keil c中,用什麼函數可以得到奇偶校驗位?
例如32位數據,將四個位元組相互異或後檢查P即可,若耽心P被改變,可用內嵌匯編。
#include
unsigned char parity(unsigned char x){
x^=x;
if(P)return(1);
else return(0);
}
unsigned char parity2(unsigned int x){
#pragma asm
mov a,r7
xrl ar6,a
#pragma endasm
if(P)return(1);
else return(0);
}