版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
財(cái)經(jīng)基本技能(第3版)教學(xué)指南+課后習(xí)題答案財(cái)經(jīng)基本技能(第3版)教學(xué)指南+課后習(xí)題答案財(cái)經(jīng)基本技能(第3版)教學(xué)指南+課后習(xí)題答案教材綜述一、教材的內(nèi)容和特色本教材主要內(nèi)容有:?jiǎn)纹瑱C(jī)最小系統(tǒng)的學(xué)習(xí)和制作、單片機(jī)編程軟件的使用、程序燒錄軟件的操作、C語(yǔ)言編程、程序流程圖的繪制和各種外圍電路的安裝與制作等??勺鳛橹械嚷殬I(yè)學(xué)校電子專業(yè)的選修課教材。本書具有以下特色:結(jié)構(gòu)和內(nèi)容的創(chuàng)新性:首先是結(jié)構(gòu)新,本書取消了傳統(tǒng)教材的章節(jié)結(jié)構(gòu),設(shè)置了教學(xué)項(xiàng)目和任務(wù),把專業(yè)知識(shí)和技能落實(shí)到具體的項(xiàng)目和任務(wù)中,通過(guò)項(xiàng)目引領(lǐng)任務(wù)驅(qū)動(dòng)教學(xué)進(jìn)程,讓學(xué)生在任務(wù)的實(shí)施中鞏固知識(shí),習(xí)得技能。其次是內(nèi)容新,在本書的編寫過(guò)程中,編寫人員有意識(shí)的聯(lián)系當(dāng)前的社會(huì)實(shí)際,及時(shí)吸收新理論、新知識(shí)、新技術(shù)、新工藝。2、突出職業(yè)性和實(shí)踐性:“以服務(wù)為宗旨,以就業(yè)為導(dǎo)向、以能力為本位”的中等職業(yè)教育擔(dān)負(fù)著培養(yǎng)初、中級(jí)技能型人才和數(shù)以億計(jì)的高素質(zhì)勞動(dòng)者的任務(wù)。中職的教材必須為中職的教學(xué)改革服務(wù),為學(xué)生的就業(yè)服務(wù)。本教材作為電子專業(yè)的技能訓(xùn)練教材非常注重職業(yè)性和實(shí)踐性。3、教材、教案、學(xué)案三合一:本書按行動(dòng)導(dǎo)向教學(xué)原則編寫,通過(guò)任務(wù)情境、任務(wù)描述、計(jì)劃與實(shí)施、練習(xí)與評(píng)價(jià)、任務(wù)資訊呈現(xiàn)內(nèi)容,展開教學(xué)和學(xué)習(xí)過(guò)程,力求做到教材、教案、學(xué)案三合一。5、知識(shí)、技能、情感相結(jié)合:本書不僅注重鞏固知識(shí)、突出技能,還通過(guò)情境模擬、總結(jié)評(píng)價(jià)滲透?jìng)€(gè)人品德、職業(yè)道德和社會(huì)公德教育。二、教學(xué)策略建議1、以促進(jìn)學(xué)生發(fā)展為本本課程以提高學(xué)生的綜合素質(zhì)和綜合職業(yè)能力為目的,在對(duì)單片機(jī)簡(jiǎn)單電路的教學(xué)和基本技能的訓(xùn)練過(guò)程中,應(yīng)體現(xiàn)對(duì)職業(yè)道德和職業(yè)意識(shí)的培養(yǎng),使學(xué)生掌握專業(yè)學(xué)習(xí)方法,提高自主學(xué)習(xí)能力,為學(xué)生的可持續(xù)發(fā)展奠定基礎(chǔ)。為適應(yīng)不同專業(yè)需求及學(xué)生的多樣性和差異性,可通過(guò)對(duì)選學(xué)模塊及較高要求內(nèi)容的靈活選擇,以及考核評(píng)價(jià)方式上,體現(xiàn)課程的選擇性和教學(xué)要求的層次性。教學(xué)中應(yīng)從學(xué)生的實(shí)際出發(fā),針對(duì)不同層次的學(xué)生,采用分層教學(xué),使每一個(gè)學(xué)生在原有的基礎(chǔ)上有所提高,有所發(fā)展。2、轉(zhuǎn)變教學(xué)觀念,改進(jìn)教學(xué)方法改變以課堂為中心、以知識(shí)傳授為主的單一教學(xué)模式,積極探索將理論教學(xué)環(huán)節(jié)和實(shí)踐教學(xué)環(huán)節(jié)相結(jié)合,將課堂知識(shí)與生產(chǎn)生活的實(shí)踐相結(jié)合,倡導(dǎo)具有職業(yè)教育特色的行為導(dǎo)向教學(xué)方法。教學(xué)過(guò)程中要根據(jù)課程內(nèi)容、學(xué)生實(shí)際和學(xué)校條件,合理選擇、綜合運(yùn)用多種教學(xué)方法,并結(jié)合中職學(xué)生思維方式特點(diǎn),充分利用各種教學(xué)資源和教學(xué)媒體,設(shè)計(jì)教學(xué)活動(dòng),創(chuàng)設(shè)學(xué)習(xí)情境,使教學(xué)內(nèi)容具體化、直觀化和形象化,引導(dǎo)學(xué)生通過(guò)任務(wù)的完成、工作過(guò)程的體驗(yàn)或典型電子產(chǎn)品的制作等,掌握相應(yīng)的知識(shí)和技能,提高學(xué)習(xí)興趣,激發(fā)學(xué)習(xí)動(dòng)力。3、加強(qiáng)實(shí)踐性教學(xué)環(huán)節(jié),突出知識(shí)的應(yīng)用教學(xué)中要充分利用和創(chuàng)設(shè)實(shí)驗(yàn)、實(shí)訓(xùn)條件,增加學(xué)生動(dòng)手實(shí)踐操作的機(jī)會(huì),強(qiáng)化實(shí)踐技能的培養(yǎng)。在電子基本技能的訓(xùn)練過(guò)程中,融入理論知識(shí)的學(xué)習(xí),體現(xiàn)理論在實(shí)踐過(guò)程中的指導(dǎo)與應(yīng)用。對(duì)于課程教學(xué)內(nèi)容中的主要器件和典型電路,教學(xué)中要突出其實(shí)際應(yīng)用,引導(dǎo)學(xué)生通過(guò)查閱相關(guān)資料分析其外部特性和功能,分析其在生產(chǎn)、生活實(shí)踐中的典型應(yīng)用,了解其工作特性和使用方法,并學(xué)會(huì)正確使用。在教學(xué)過(guò)程中,要重視本專業(yè)領(lǐng)域新技術(shù)、新知識(shí)、新工藝、新設(shè)備的介紹,體現(xiàn)時(shí)代性;貼近生產(chǎn)現(xiàn)場(chǎng),體現(xiàn)實(shí)用性。4、加強(qiáng)與現(xiàn)代教育技術(shù)的整合教師應(yīng)重視現(xiàn)代教育技術(shù)與課程的整合,努力推進(jìn)現(xiàn)代教育技術(shù)在職業(yè)教育教學(xué)中的應(yīng)用,更新觀念,改變傳統(tǒng)的教學(xué)方法,充分發(fā)揮計(jì)算機(jī)、互聯(lián)網(wǎng)等現(xiàn)代媒體技術(shù)的優(yōu)勢(shì),合理應(yīng)用多種媒體組合,為教師教學(xué)和學(xué)生學(xué)習(xí)提供豐富多樣的教學(xué)資源、教學(xué)工具和教學(xué)環(huán)境。提倡在教學(xué)過(guò)程中,利用數(shù)字化教學(xué)資源大容量、多媒體、超文本、交互性、共享性的特點(diǎn),與各種教學(xué)要素和教學(xué)環(huán)節(jié)有機(jī)結(jié)合,提高教學(xué)的效率和效果。數(shù)字化教學(xué)資源(如教學(xué)演示軟件、多媒體光盤、虛擬仿真實(shí)訓(xùn)軟件、電子試題庫(kù)等)可作為輔助教學(xué)的工具,也可用于情境創(chuàng)設(shè)、協(xié)作交流等教學(xué)活動(dòng),有利于創(chuàng)建符合個(gè)性化學(xué)習(xí)及加強(qiáng)實(shí)踐技能培養(yǎng)的教學(xué)環(huán)境,并推動(dòng)教學(xué)模式和教學(xué)方法的變革。5、考核評(píng)價(jià)的多元化考核與評(píng)價(jià)的目的不僅是為了考察教學(xué)結(jié)果的達(dá)成情況,更重要的是及時(shí)向教師和學(xué)生提供反饋信息,以便更有效的改進(jìn)和完善教師的教學(xué)和學(xué)生的學(xué)習(xí)活動(dòng),激發(fā)學(xué)生學(xué)習(xí)熱情,促進(jìn)學(xué)生個(gè)人的發(fā)展。考核與評(píng)價(jià)的功能要從單純注重水平鑒定和選拔淘汰,過(guò)渡到注重促進(jìn)學(xué)生的發(fā)展,積極倡導(dǎo)與實(shí)施以導(dǎo)向、診斷、激勵(lì)及過(guò)程調(diào)控為主的發(fā)展性教學(xué)評(píng)價(jià)。(1)考核與評(píng)價(jià)主體的多元化從傳統(tǒng)考核與評(píng)價(jià)方式的主體單一性(即只有教師的評(píng)價(jià)),過(guò)渡到考核與評(píng)價(jià)主體的多元化,即教師的評(píng)價(jià)與學(xué)生的相互評(píng)價(jià)、學(xué)生的自我評(píng)價(jià)相結(jié)合。(2)考核與評(píng)價(jià)標(biāo)準(zhǔn)的多元化從傳統(tǒng)的只注重評(píng)價(jià)學(xué)生的學(xué)習(xí)情況與學(xué)業(yè)成績(jī)的單一性考核與評(píng)價(jià),過(guò)渡到對(duì)學(xué)生在本課程學(xué)習(xí)過(guò)程中各方面活動(dòng)及發(fā)展?fàn)顩r給予全面關(guān)注的多元化考核。(3)考核與評(píng)價(jià)的過(guò)程,從傳統(tǒng)的以結(jié)果性為主,過(guò)渡到過(guò)程性與結(jié)果性相結(jié)合,逐步建立學(xué)生的發(fā)展性考核與評(píng)價(jià)體系。(4)考核與評(píng)價(jià)的方式,從傳統(tǒng)的以量化為主,過(guò)渡到定量考核與定性描述相結(jié)合。三、課程性質(zhì)與任務(wù)單片機(jī)基礎(chǔ)與技能實(shí)訓(xùn)課程適用于中職電子相關(guān)專業(yè),屬于專業(yè)選修課,是電氣、電子等大類專業(yè)重要的綜合性基礎(chǔ)性實(shí)踐教學(xué)課程。本課程內(nèi)容側(cè)重于實(shí)際應(yīng)用,教學(xué)上應(yīng)以單片機(jī)結(jié)構(gòu)及應(yīng)用設(shè)計(jì)為主,使學(xué)生通過(guò)本課程的學(xué)習(xí),具備獨(dú)立設(shè)計(jì)簡(jiǎn)單單片機(jī)控制電路的能力。使學(xué)生對(duì)于單片機(jī)的組成原理和結(jié)構(gòu)有比較深刻的理解,基本掌握單片機(jī)基礎(chǔ)及應(yīng)用的系統(tǒng)設(shè)計(jì)方法,可比較靈活地使用單片機(jī)構(gòu)成系統(tǒng)的外圍芯片,具備單片機(jī)軟件設(shè)計(jì)和編程能力。對(duì)于學(xué)生學(xué)習(xí)單片機(jī)原理及其應(yīng)用具有指導(dǎo)意義。為學(xué)生進(jìn)一步學(xué)習(xí)計(jì)算機(jī)控制技術(shù)及相關(guān)專業(yè)知識(shí)和職業(yè)技能,提高全面素質(zhì),增強(qiáng)適應(yīng)職業(yè)變化的能力和繼續(xù)學(xué)習(xí)的能力打下一定的基礎(chǔ)。本書共9個(gè)項(xiàng)目,以典型的LED控制電路、彩燈控制電路、數(shù)碼管控制電路、按鍵控制電路、蜂鳴器控制電路、數(shù)模模數(shù)轉(zhuǎn)換電路和溫度顯示電路為載體,通過(guò)安裝和調(diào)試整機(jī)的過(guò)程,使學(xué)生熟悉單片機(jī)最基礎(chǔ)的應(yīng)用電路,讓學(xué)生了解單片機(jī)的工作原理,掌握單片機(jī)程序設(shè)計(jì)、連接I/O設(shè)備的接口技術(shù)。對(duì)單片機(jī)應(yīng)用系統(tǒng)的軟、硬件設(shè)計(jì)有一定了解,為開發(fā)單片機(jī)及其應(yīng)用系統(tǒng)打下基礎(chǔ)。通過(guò)本課程的實(shí)踐,希望能夠使學(xué)生掌握單片機(jī)的使用方法、開拓學(xué)習(xí)知識(shí)的視野。使學(xué)生了解單片機(jī)的構(gòu)造原理,掌握其內(nèi)部的主要結(jié)構(gòu)和C語(yǔ)言的編程應(yīng)用,學(xué)習(xí)單片機(jī)常用的接口,常用的外圍電路設(shè)計(jì)等,使學(xué)生具備應(yīng)用單片機(jī)進(jìn)行簡(jiǎn)單的控制系統(tǒng)開發(fā)的能力,注重培養(yǎng)和提高學(xué)生應(yīng)用單片機(jī)進(jìn)行創(chuàng)新設(shè)計(jì)、解決簡(jiǎn)單的實(shí)際問(wèn)題的能力。四、預(yù)備知識(shí)由于本課程涉及到C語(yǔ)言編程,課本中對(duì)每個(gè)語(yǔ)句都有詳細(xì)的說(shuō)明,但是學(xué)生如果具備C語(yǔ)言的基礎(chǔ)知識(shí),會(huì)對(duì)編程方面更加得心應(yīng)手,比如:子程序和主程序的基本結(jié)構(gòu)、位定義、變量的定義、宏定義、條件選擇語(yǔ)句、左移右移指令和基本的運(yùn)算符等;其次,學(xué)生要具備簡(jiǎn)單電路的分析能力,如歐姆定律、節(jié)點(diǎn)電流定律等;除此之外,學(xué)生還應(yīng)具備數(shù)電和模電的基礎(chǔ)知識(shí),如數(shù)制轉(zhuǎn)換、三極管的特性、數(shù)碼管的結(jié)構(gòu)等;另外,完成每個(gè)任務(wù)都需要制作外圍電路,所以學(xué)生應(yīng)具備電路安裝與焊接的基本技能。項(xiàng)目一初識(shí)單片機(jī)項(xiàng)目?jī)?nèi)容本項(xiàng)目?jī)?nèi)容主要包括單片機(jī)的內(nèi)、外部結(jié)構(gòu)、引腳、單片機(jī)應(yīng)用開發(fā)流程的介紹;各種數(shù)制及其相互轉(zhuǎn)換的學(xué)習(xí);單片機(jī)最小應(yīng)用系統(tǒng)的認(rèn)識(shí)及制作單片機(jī)最小應(yīng)用系統(tǒng)的實(shí)訓(xùn)。教學(xué)提要教學(xué)重點(diǎn):?jiǎn)纹瑱C(jī)最小應(yīng)用系統(tǒng)的構(gòu)成和制作。教學(xué)難點(diǎn):?jiǎn)纹瑱C(jī)各引腳的功能識(shí)別。教學(xué)建議課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一認(rèn)識(shí)單片機(jī)1任務(wù)二認(rèn)識(shí)數(shù)制1任務(wù)三制作單片機(jī)最小應(yīng)用系統(tǒng)2教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法教學(xué)要點(diǎn)任務(wù)一主要是通過(guò)實(shí)物展示讓學(xué)生認(rèn)識(shí)各種單片機(jī)及其各引腳,還要讓學(xué)生認(rèn)識(shí)各種仿真器和編程器,要讓學(xué)生知道程序是如何燒錄到單片機(jī)里面的,而單片機(jī)的內(nèi)部結(jié)構(gòu)讓學(xué)生了解即可;任務(wù)二主要是介紹二進(jìn)制和十六進(jìn)制,以及他們和十進(jìn)制之間的轉(zhuǎn)換,本內(nèi)容以練習(xí)為主,教師要讓學(xué)生知道學(xué)習(xí)這些數(shù)制的目的所在;任務(wù)三主要以實(shí)訓(xùn)為主,教師可以給學(xué)生購(gòu)買一個(gè)單片機(jī)最小系統(tǒng)的套件,學(xué)生制作完最小系統(tǒng)后,教師再根據(jù)成品講解最小系統(tǒng)的構(gòu)成以及使用方法。實(shí)訓(xùn)指導(dǎo)單片機(jī)最小系統(tǒng)是完成后續(xù)各種電路的基礎(chǔ),所以要確保每位學(xué)生都能順利完成這個(gè)電路的制作。如果是給學(xué)生購(gòu)買套件進(jìn)行制作,要求學(xué)生按照先低后高的順序安裝元器件,還要確保元器件的極性不要接錯(cuò)。如果使用萬(wàn)用板或洞洞板制作,則要注意布局,確保整個(gè)系統(tǒng)安裝在同一塊電路板上。電路板制作好以后,教師幫助學(xué)生通過(guò)燒錄一個(gè)程序來(lái)驗(yàn)證電路是否正常運(yùn)行。任務(wù)一【練一練】答案AT89S51單片機(jī)的VSS是公共接地端,即接電源負(fù)極;RST/VPD是復(fù)位端,具有復(fù)位功能,另外,VCC掉電后,此引腳可外接備用電源,在低功耗下保持著RAM中的數(shù)據(jù);是外部ROM使能端口,訪問(wèn)外部程序存儲(chǔ)器時(shí),該腳輸出低電平,控制外部程序存儲(chǔ)器輸出數(shù)據(jù)。2、AT89S51單片機(jī)的內(nèi)部由中央處理器、存儲(chǔ)器、中斷系統(tǒng)及輸入輸出電路等構(gòu)成;中央處理器主要有運(yùn)算器和控制器組成,運(yùn)算器執(zhí)行各種算術(shù)運(yùn)算和邏輯運(yùn)算,控制器的作用是:根據(jù)接收到的指令或運(yùn)算器的運(yùn)算結(jié)果來(lái)決定或發(fā)出相應(yīng)的控制信號(hào)從而完成一個(gè)個(gè)指令的提取、運(yùn)算和控制任務(wù)。存儲(chǔ)器RAM稱為隨機(jī)存取存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器,用以存儲(chǔ)可以讀寫的數(shù)據(jù),如運(yùn)算的中間量、最終結(jié)果和要顯示的數(shù)據(jù)等;ROM稱為只讀存儲(chǔ)器或程序存儲(chǔ)器,用以存放程序、原始數(shù)據(jù)和表格等。I/O電路即輸入輸出電路,其作用是實(shí)現(xiàn)單片機(jī)與外部電路的數(shù)據(jù)交換。中斷是單片機(jī)與外部信息傳遞的方式之一,通過(guò)中斷控制器可以讓單片機(jī)暫時(shí)停止原程序的執(zhí)行,轉(zhuǎn)而執(zhí)行中斷請(qǐng)求的程序,并在此程序執(zhí)行完成后自動(dòng)返回原程序。略任務(wù)二【練一練】答案1、(1)43(2)24(3)11.9375(4)272、(1)1010110 (2)10001010 (3)1000101003、(1)2B (2)B34、(1)11100 (2)10110111(3)110100115、(1)1001001 (2)1101100010(3)1000010110016、(1)68 (2)915(3)278(4)5.4任務(wù)三【練一練】答案1、填空題:(1)電源、時(shí)鐘電路、復(fù)位電路(2)XTALl、XTAL2(3)RST、高電平2、略【項(xiàng)目檢測(cè)】答案一、判斷題 1、對(duì)2、錯(cuò)3、對(duì)4、錯(cuò)5、對(duì)6、對(duì)二、計(jì)算題1、5=(101)2=(5)16,17=(10001)2=(11)16,56=(111000)2=(38)16,87=(1010111)2= (57)16,178=(10110010)2=(B2)162、3795.4三、項(xiàng)目二點(diǎn)亮發(fā)光二極管項(xiàng)目?jī)?nèi)容本項(xiàng)目通過(guò)“點(diǎn)亮發(fā)光二極管”這一任務(wù)的驅(qū)動(dòng),讓學(xué)生知道用C語(yǔ)言編寫單片機(jī)程序的基本組成部分和常用運(yùn)算符號(hào),會(huì)寫最簡(jiǎn)單的單片機(jī)程序,會(huì)對(duì)單片機(jī)的某一位進(jìn)行控制;會(huì)使用Keil軟件對(duì)程序進(jìn)行編譯,會(huì)使用軟件將程序燒錄到單片機(jī)中;會(huì)對(duì)單片機(jī)的I/O口進(jìn)行總線控制。教學(xué)提要1、教學(xué)重點(diǎn):編寫“點(diǎn)亮一只發(fā)光二極管”的程序以及兩個(gè)軟件的使用。2、教學(xué)難點(diǎn):I/O口的總線控制方式。教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一點(diǎn)亮一只發(fā)光二極管1任務(wù)二點(diǎn)亮多只發(fā)光二極管2(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)任務(wù)一主要是通過(guò)編寫程序控制一只LED發(fā)光,由于學(xué)生是第一次接觸單片機(jī)編程,所以教學(xué)以教師的演示為主,通過(guò)編程讓學(xué)生知道一個(gè)完整的單片機(jī)程序包括哪幾部分,同時(shí)學(xué)會(huì)Keil軟件的使用方法,通過(guò)燒錄程序,讓學(xué)生學(xué)會(huì)燒錄軟件的使用方法,由于在后續(xù)的程序中會(huì)出現(xiàn)很多邏輯運(yùn)算,所以筆者在本節(jié)將常用的邏輯運(yùn)算符羅列下來(lái),教師要對(duì)學(xué)生進(jìn)行必要說(shuō)明;任務(wù)二的目的是讓學(xué)生學(xué)會(huì)進(jìn)行總線控制,完成了任務(wù)一以后,任務(wù)二就可以給予學(xué)生更多的主動(dòng)權(quán),如電路的制作,程序的編寫,編程方面教師可以引導(dǎo)學(xué)生按照任務(wù)一提到的位定義的方法進(jìn)行,之后再給學(xué)生介紹總線控制方式。(四)實(shí)訓(xùn)指導(dǎo)由于在單片機(jī)最小系統(tǒng)中,P1.0口接有一只LED,因此任務(wù)一的電路就不需要另外制作,直接編寫程序控制這個(gè)LED即可。Keil軟件的使用過(guò)程中,有幾個(gè)關(guān)鍵點(diǎn)需要教師強(qiáng)調(diào):1、源程序的保存要加“.c”的后綴;2、要將源程序添加到項(xiàng)目組當(dāng)中;3、最后要輸出HEX文件,才能燒錄到單片機(jī)中。在任務(wù)二當(dāng)中,單片機(jī)要控制三只LED發(fā)光,因此,要制作三組LED與電阻串聯(lián)的電路,在制作電路時(shí)要注意LED的極性問(wèn)題,確定采取共陽(yáng)極或共陰極接法,接法不同,無(wú)論是位控制還是總線控制,賦的值都不一樣,教師要做必要說(shuō)明;單片機(jī)與外圍電路要用排線進(jìn)行連接。任務(wù)一【練一練】答案頭文件為用戶定義了單片機(jī)常用寄存器的內(nèi)存地址,它其實(shí)就是一種聲明,將單片機(jī)中的一些常用的符號(hào)變量進(jìn)行定義聲明,對(duì)一些特殊功能寄存器進(jìn)行聲明,對(duì)一些關(guān)健字進(jìn)行定義;另外,用戶可以根據(jù)需要在頭文件中定義其它寄存器地址,凡是在頭文件中定義過(guò)的寄存器地址,編程時(shí)就不需要定義了。2、#include<reg51.h>sbitL1=P1^2;voidmain(){L1=1;}任務(wù)二【練一練】答案P1口的輸出情況被點(diǎn)亮的LED0x7fL70x66L7L4L3L00x9eL6L5L00xabL6L4L20x17L7L6L5L4【項(xiàng)目檢測(cè)】答案一、填空題1、頭文件、符號(hào)變量、特殊功能寄存器、關(guān)鍵字2、文件名.h3、main、入口4、11111110、16進(jìn)制數(shù)5、低電平、高電平語(yǔ)句解釋1、sbitP10=P1^0:將P1口的第0位定義為P102、L1=0:給變量L1賦值為03、P0=0xfe:給P0口的8位進(jìn)行賦值為0xfe連線題*按位與/測(cè)試等于==除!=邏輯或&&測(cè)試不等于||邏輯非!邏輯與>>乘<<按位取反&按位或|按位異或^位左移~位右移四、簡(jiǎn)答題1、新建文件夾、打開Keil軟件、點(diǎn)擊“工程---新建工程”新建一個(gè)工程、在彈出的對(duì)話框中選擇新建的文件夾存放新建工程并取名后保存。2、1)設(shè)置編程器及接口;2)選擇芯片;3)設(shè)置熔絲位;4)加載所要燒錄的程序文件;5)編程燒錄。項(xiàng)目三制作節(jié)日彩燈項(xiàng)目?jī)?nèi)容本項(xiàng)目主要介紹單片機(jī)控制一只或多只LED進(jìn)行閃爍的方法,通過(guò)幾個(gè)程序給學(xué)生介紹了延時(shí)子程序的編寫方法、子程序的調(diào)用方法、for語(yǔ)句和while語(yǔ)句的用法、帶參數(shù)子程序的作用以及循環(huán)左移和循環(huán)右移指令的應(yīng)用;還介紹了單片機(jī)控制多只LED以不同花樣進(jìn)行閃爍的方法。教學(xué)提要1、教學(xué)重點(diǎn):延時(shí)子程序、for語(yǔ)句和while語(yǔ)句、循環(huán)左移和循環(huán)右移指令2、教學(xué)難點(diǎn):指令的書寫和程序的格式。教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一讓發(fā)光二極管閃爍1任務(wù)二讓發(fā)光二極管循環(huán)閃爍2任務(wù)三控制LED以多種花樣進(jìn)行閃爍2(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)任務(wù)一主要是通過(guò)編寫程序控制一只LED閃爍,在編程之前,教師可以先讓學(xué)生分析如何才能讓LED閃爍,引導(dǎo)學(xué)生形成“LED工作狀態(tài)受電平高低影響”的概念,進(jìn)而引入延時(shí)程序的編寫方法;任務(wù)二涉及到八只LED的循環(huán)閃爍控制,也可以先讓學(xué)生獨(dú)立思考和討論,形成他們自己的思路,然后教師再介紹循環(huán)左移和循環(huán)右移的概念,另外,還要適當(dāng)加以拓展,比如循環(huán)左移兩位;任務(wù)三是對(duì)任務(wù)一和任務(wù)二的綜合應(yīng)用,主要目標(biāo)是讓單片機(jī)的兩組8個(gè)I/O口控制16只LED以不同的花樣進(jìn)行閃爍,在此任務(wù)的教學(xué)中要鼓勵(lì)學(xué)生設(shè)計(jì)更多的閃爍方式,然后讓同學(xué)之間相互分享,相互學(xué)習(xí)。(四)實(shí)訓(xùn)指導(dǎo)與項(xiàng)目二任務(wù)一一樣,本項(xiàng)目任務(wù)一的電路也不需要另外制作,直接編寫程序控制P1.0所接的LED即可。在編程方面,教師要引導(dǎo)學(xué)生獨(dú)立思考,不要照抄參考程序,每位學(xué)生的程序里面要有自己的思想內(nèi)容,比如延時(shí)時(shí)間的長(zhǎng)短要不一樣;在任務(wù)二中,學(xué)生首先要制作正確的外圍電路,可以隨意采取共陽(yáng)極和共陰極接法(或教師直接進(jìn)行分工),目的是便于程序方面的必要說(shuō)明,編程之前,教師還要引導(dǎo)學(xué)生認(rèn)真解讀程序流程圖,最好讓學(xué)生自己完成流程圖的設(shè)計(jì),之后再讓學(xué)生根據(jù)流程圖完成“填一填”的內(nèi)容,最后把程序?qū)懙絢eil軟件里,并進(jìn)行編譯和燒錄;任務(wù)三的外圍電路有16只LED,因此需要在任務(wù)二的基礎(chǔ)上再增加八只LED,電路制作完成后再完成“填一填”,但是最后寫程序時(shí)要將相應(yīng)的延時(shí)子程序?qū)戇M(jìn)去。任務(wù)一【練一練】答案#include<reg51.h>#defineucharunsignedchar//宏定義sbitL1=P1^0;sbitL2=P1^1;voiddelay(){uchara,b,c;for(a=20;a>0;a--)for(b=20;b>0;b--)for(c=248;c>0;c--);}voidmain(){while(1){L1=0;L2=1;delay();L1=1;L2=0;delay();}}任務(wù)二【練一練】答案#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintvoiddelay(uchar);voidmain(){ucharLED;LED=0xfc;while(1){P0=LED;delay(100);LED=_crol_(LED,2);}}voiddelay(ucharx){uinta,b;for(a=200;a>0;a--)for(b=x;b>0;b--);}任務(wù)三【練一練】答案1、共陰極接法和共陽(yáng)極接法;共陰極接法時(shí),P1=P2=0xff,共陽(yáng)極接法時(shí),P1=P2=0x00。2、可以通過(guò)按鍵來(lái)控制?!卷?xiàng)目檢測(cè)】答案一、填空題1、子程序2、1微秒3、聲明子程序4、宏定義5、循環(huán)右移、循環(huán)右移二、語(yǔ)句解釋1、語(yǔ)句while(a--)每執(zhí)行一次,變量a減1,只要a不為0,則一直執(zhí)行該語(yǔ)句,否則執(zhí)行下一條語(yǔ)句,因此,這個(gè)程序?qū)?zhí)行1001次while(a--),起到延時(shí)的作用。2、先讓i賦值為0,再判斷“i<8”是否為真,顯然“0<8”為真,則執(zhí)行一次花括號(hào)中的語(yǔ)句,然后讓i加1,重新判斷表達(dá)式“i<8”,因此,這個(gè)程序?qū)?zhí)行8次花括號(hào)中的語(yǔ)句,最終a=8。3、變量a循環(huán)左移一位計(jì)算題假設(shè)晶振頻率為12MHZ,計(jì)算下列延時(shí)程序的延時(shí)時(shí)間。1、t=100×200×2=40000微秒=0.04秒2、t=20×20×248×2=198400微秒≈0.2秒項(xiàng)目四制作定時(shí)器項(xiàng)目?jī)?nèi)容本項(xiàng)目的內(nèi)容主要包括數(shù)碼管的識(shí)別和檢測(cè)、單片機(jī)控制數(shù)碼管顯示數(shù)字的方法;數(shù)組變量的定義和使用、if語(yǔ)句的應(yīng)用;還有用動(dòng)態(tài)掃描的方式讓數(shù)碼管顯示數(shù)字、利用定時(shí)器中斷設(shè)置一秒的標(biāo)準(zhǔn)延時(shí);最后使用switch-case語(yǔ)句編程、制作60秒定時(shí)器。教學(xué)提要1、教學(xué)重點(diǎn):動(dòng)態(tài)掃描的含義和應(yīng)用2、教學(xué)難點(diǎn):定時(shí)器中斷及其初始化教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一讓單個(gè)數(shù)碼管顯示數(shù)字2任務(wù)二讓多個(gè)數(shù)碼管顯示數(shù)字2任務(wù)三完成60秒定時(shí)器的制作3(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)本項(xiàng)目通過(guò)創(chuàng)設(shè)短期實(shí)習(xí)的情境,給學(xué)生營(yíng)造工作的場(chǎng)景,進(jìn)而給出檢測(cè)數(shù)碼管的任務(wù),程序方面,循序漸進(jìn),從控制一個(gè)數(shù)碼管顯示數(shù)字開始,到顯示數(shù)字的不斷變化,然后完成單片機(jī)控制多個(gè)數(shù)碼管實(shí)現(xiàn)靜態(tài)顯示和動(dòng)態(tài)顯示的效果,最終實(shí)現(xiàn)60秒定時(shí)器的制作。教師在這些過(guò)程中,教授學(xué)生幾個(gè)重點(diǎn)的語(yǔ)句或指令,如if語(yǔ)句、switch-case語(yǔ)句;另外,關(guān)于定時(shí)器中斷,教師要想方設(shè)法讓學(xué)生理解它的作用和工作工程,并且要清楚如何開啟定時(shí)器中斷以及開啟哪個(gè)定時(shí)器中斷。(四)實(shí)訓(xùn)指導(dǎo)任務(wù)一先讓學(xué)生使用萬(wàn)用表檢測(cè)數(shù)碼管,確定數(shù)碼管的類型和各個(gè)管腳對(duì)應(yīng)的字段,在“測(cè)一測(cè)”里記錄下來(lái),然后制作外圍電路,此過(guò)程要特別注意接上拉電阻,最后通過(guò)編程控制數(shù)碼管顯示各個(gè)數(shù)字,再使用延時(shí)方式讓數(shù)碼管顯示不斷變化的數(shù)字;任務(wù)二是以四位數(shù)碼管為例進(jìn)行動(dòng)態(tài)掃描控制,教師也可以讓學(xué)生控制兩位數(shù)碼管進(jìn)行動(dòng)態(tài)顯示,電路連接方面要注意確定段控制和位控制的I/O口,編程方面要注意定時(shí)器中斷初值的設(shè)定要合適,初值太小顯示的數(shù)字會(huì)閃爍,初值太大會(huì)使顯示的數(shù)字產(chǎn)生互相干擾;如果任務(wù)二是使用兩位數(shù)碼管,則任務(wù)三就不需要另外制作外圍電路,編程方面最關(guān)鍵的是如何使用定時(shí)器中斷產(chǎn)生1秒的精確延時(shí)。任務(wù)一【練一練】答案填空題(1)共陽(yáng)極數(shù)碼管、電源正極、低(2)共陰極數(shù)碼管、電源負(fù)極、高、低2、#include<reg51.h>unsignedcharb,i;unsignedinta;unsignedcharcodetabledu[]={0x3f,0x06};voiddisplay();voiddelay(){for(a=5000;a>0;a--)for(b=100;b>0;b--);}voidmain(){i=0; while(1) {if(i==1) i=0; display(); i++;delay(); }}voiddisplay(){ P0=tabledu[i];}任務(wù)二【練一練】答案填空題:驅(qū)動(dòng)電路、靜態(tài)、動(dòng)態(tài)編程簡(jiǎn)單,顯示亮度高、占用I/O端口多1~2ms、余輝效應(yīng)計(jì)算題:假設(shè)AT89S51單片機(jī)晶振頻率為12MHz,要求定時(shí)時(shí)間8ms,使用定時(shí)器T0,工作方式0,計(jì)算定時(shí)器初值X。計(jì)數(shù)脈沖個(gè)數(shù)為:8ms/12/12MHz=8000;然后根據(jù)工作方式確定定時(shí)器初值:若為工作方式0,則計(jì)數(shù)初值為:2^13-8000=192=C0HTH0=00H,TL0=C0H任務(wù)三【練一練】答案1、計(jì)算題:(1)5(2)9(3)22、編程題:#include<reg51.h>unsignedchari,count;//i為位選變量,count為計(jì)數(shù)變量unsignedintt;//t為定時(shí)變量unsignedcharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定義段數(shù)組變量unsignedcharcodetablewe[]={0xfe,0xfd};//定義位數(shù)組變量voiddisplay();voidmain(){ i=0; t=0; count=60;//賦初值 TMOD=0x10;//選擇定時(shí)器1工作方式1TH1=(65536-5000)/256;TL1=(65536-5000)%256;//給定時(shí)器賦初值,保證中斷產(chǎn)生一次為0.005秒EA=1;ET1=1;TR1=1;//開中斷 while(1);}voidtime1()interrupt3using3//中斷子函數(shù){TH1=(65536-5000)/256;TL1=(65536-5000)%256;//恢復(fù)定時(shí)器初值 t++;//t遞增 if(t>=200)//t加到200時(shí),定時(shí)時(shí)間為1秒,執(zhí)行以下程序 { t=0;//t清零 if(count>0) count--; //count從60減到0 }; display();//執(zhí)行顯示子程序 if(i>=1)//i在0和1之間轉(zhuǎn)換 i=0; else i++;}voiddisplay(void){ switch(i)//判斷變量i { case0://如果i=0,執(zhí)行以下程序 { P2=tablewe[0];//選擇右邊的數(shù)碼管 P0=tabledu[count%10];//顯示count的個(gè)位 break; } case1://如果i=1,執(zhí)行以下程序 { P2=tablewe[1];//選擇左邊的數(shù)碼管 P0=tabledu[count/10];//顯示count的個(gè)位 break; } default: break; };}【項(xiàng)目檢測(cè)】答案一、填空題1、共陰極數(shù)碼管、共陽(yáng)極數(shù)碼管2、七段數(shù)碼管、八段數(shù)碼管3、數(shù)組4、定時(shí)器/計(jì)數(shù)器T0、定時(shí)器/計(jì)數(shù)器T15、中斷優(yōu)先級(jí)、所用工作寄存器組二、簡(jiǎn)答題1、1)確定工作方式;2)預(yù)置定時(shí)或計(jì)數(shù)的初值;3)根據(jù)需要開放定時(shí)器/計(jì)數(shù)器的中斷直接對(duì)IE位賦值,ET0(IE.1)為定時(shí)/計(jì)數(shù)器T0中斷允許位,ET1(IE.3)為定時(shí)/計(jì)數(shù)器T1中斷允許位,EA(IE.7)為CPU中斷允許(總允許位);4)啟動(dòng)定時(shí)器/計(jì)數(shù)器。2、首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語(yǔ)句,執(zhí)行后遇break語(yǔ)句就退出switch語(yǔ)句;若圓括號(hào)中表達(dá)式的值與所有case后面的常量表達(dá)式都不等,則執(zhí)行default后面的語(yǔ)句n+1,然后退出switch語(yǔ)句,程序流程轉(zhuǎn)向開關(guān)語(yǔ)句的下一個(gè)語(yǔ)句。編程題1、#include<reg51.h>unsignedcharb,i;unsignedinta;unsignedcharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0xec,0x39,0x5e,0xe9,0x71};voiddisplay();voiddelay(){for(a=5000;a>0;a--)for(b=100;b>0;b--);}voidmain(){i=0; while(1) {if(i==16) i=0; display(); i++;delay(); }}voiddisplay(){ P0=tabledu[i];}略項(xiàng)目五制作搶答器項(xiàng)目?jī)?nèi)容本項(xiàng)目主要涉及到單片機(jī)的按鍵控制,首先是使用按鍵讓單片機(jī)控制LED的工作狀態(tài),然后編寫按鍵消抖的程序來(lái)控制數(shù)碼管的顯示,最后是對(duì)矩陣鍵盤的介紹,要求使用矩陣鍵盤實(shí)現(xiàn)多路輸入。教學(xué)提要1、教學(xué)重點(diǎn):按鍵控制單片機(jī)輸出信號(hào)2、教學(xué)難點(diǎn):矩陣鍵盤的掃描方法、按鍵消抖的方法教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一制作模擬開關(guān)燈電路2任務(wù)二制作可控?cái)?shù)碼顯示電路2任務(wù)三完成16路搶答器的制作3(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)在任務(wù)一的教學(xué)中,首先要指導(dǎo)學(xué)生畫出正確的電路圖,特別是要讓學(xué)生理解上拉電阻的作用,然后引導(dǎo)學(xué)生畫流程圖,建構(gòu)編程的思路,最后師生共同完成程序的編寫和燒錄;任務(wù)二可以引導(dǎo)學(xué)生結(jié)合數(shù)碼管顯示和按鍵控制獨(dú)立完成程序編寫,根據(jù)出現(xiàn)的問(wèn)題進(jìn)行思考和討論,然后再引入按鍵消抖和松鍵消抖的概念和語(yǔ)句;任務(wù)三最重要的是給學(xué)生講清楚矩陣鍵盤的結(jié)構(gòu)和行掃描法。(四)實(shí)訓(xùn)指導(dǎo)任務(wù)一的首要步驟就是制作電路,在這里一般使用四腳的按鈕,學(xué)生要學(xué)會(huì)使用萬(wàn)用表檢測(cè)常開和常閉引腳,以使開關(guān)正常工作,安裝時(shí)要注意接上上拉電阻;任務(wù)二的外圍電路不用另外制作,利用現(xiàn)有的外圍電路即可構(gòu)成,編程方面,重點(diǎn)是要想辦法解決按鍵抖動(dòng)的問(wèn)題;任務(wù)三的電路可連接矩陣鍵盤模塊(如圖5.1所示),要讓學(xué)生完整編寫程序難度會(huì)比較大,所以教師要讓學(xué)生理解編程的思路,然后對(duì)程序進(jìn)行修改,以使數(shù)碼管的顯示內(nèi)容發(fā)生變化,強(qiáng)調(diào)對(duì)現(xiàn)有程序的應(yīng)用,而不是死記硬背。圖5.1任務(wù)一【練一練】答案編程題#include<reg51.h>sbitLED1=P1^0;sbitLED2=P1^1;sbitopen=P3^0;sbitclose=P3^1;voidmain(){LED1=1;LED2=0;while(1){if(LED1==1){if(!open){LED1=0;LED2=1;}else{LED1=1;LED2=0;}}else{if(!close){LED1=1;LED2=0;}Else{LED1=0;LED2=1;}}}}簡(jiǎn)答題為了確保I/O口作為輸入口時(shí)輸入高電平,作為輸出口時(shí)確保輸出電流足夠大。任務(wù)二【練一練】答案1、在按鍵閉合及斷開的瞬間均伴隨有一連串的抖動(dòng)2、在檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。任務(wù)三【練一練】答案1、填空題(1)矩陣鍵盤、16(2)行掃描法2、簡(jiǎn)答題(1)將P1口和0xf0進(jìn)行與運(yùn)算,如果結(jié)果不為0xf0,則說(shuō)明高四位不全為1。(2)通過(guò)檢測(cè)P1口高四位是否全為1,如果全為1,說(shuō)明已經(jīng)松手?!卷?xiàng)目檢測(cè)】一、填空題1、上拉、限流2、按鍵抖動(dòng)、按鍵消抖3、行掃描法二、簡(jiǎn)答題1、預(yù)先將接按鍵的I/O口設(shè)置為高電平,然后通過(guò)檢測(cè)I/O口輸入狀態(tài)是否發(fā)生變化來(lái)判斷按鍵是否按下。2、依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。三、編程題1、假設(shè)LED接單片機(jī)的P1.0口,按鈕K接P3.0,編寫程序?qū)崿F(xiàn)以下效果:按下K,LED開始閃爍。#include<reg51.h>sbitLED=P1^0;sbitK=P3^0;inta;voidmain(){LED=1;while(1){if(!K){a=50000; LED=0; while(a--); LED=1; a=50000;while(a--);}}}2、程序略,要注意進(jìn)行按鍵消抖處理。項(xiàng)目六制作消防車報(bào)警器項(xiàng)目?jī)?nèi)容本項(xiàng)目主要涉及到單片機(jī)對(duì)蜂鳴器的控制。介紹了有源蜂鳴器和無(wú)源蜂鳴器以及它們之間的區(qū)別、蜂鳴器的驅(qū)動(dòng)電路以及驅(qū)動(dòng)蜂鳴器發(fā)聲的程序;還介紹了利用I/O口定時(shí)翻轉(zhuǎn)電平產(chǎn)生矩形波對(duì)無(wú)源蜂鳴器進(jìn)行驅(qū)動(dòng)、通過(guò)改變I/O口輸出矩形波的頻率來(lái)改變蜂鳴器聲音的方法;最后介紹了使用邏輯非和按位異或運(yùn)算符,讓蜂鳴器發(fā)出消防車報(bào)警聲的編程方法。教學(xué)提要1、教學(xué)重點(diǎn):驅(qū)動(dòng)無(wú)源蜂鳴器發(fā)聲2、教學(xué)難點(diǎn):編程實(shí)現(xiàn)消防車報(bào)警聲教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一讓蜂鳴器發(fā)聲1任務(wù)二讓蜂鳴器發(fā)出音調(diào)漸變的聲音1任務(wù)三制作模擬消防車報(bào)警器2(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)本項(xiàng)目三個(gè)任務(wù)的電路部分完全一樣,程序方面的核心也相同,都是利用定時(shí)器中斷產(chǎn)生一定頻率的矩形波來(lái)驅(qū)動(dòng)蜂鳴器,唯一不同的是隨著單片機(jī)輸出頻率的變化,蜂鳴器發(fā)出的聲音也會(huì)產(chǎn)生變化,從而實(shí)現(xiàn)任務(wù)二和任務(wù)三所要達(dá)到的效果,因此,教師所要做的就是將每個(gè)程序里的關(guān)鍵語(yǔ)句做詳細(xì)解釋,幫助學(xué)生理解。(四)實(shí)訓(xùn)指導(dǎo)蜂鳴器的驅(qū)動(dòng)電路部分可以使用蜂鳴器模塊(如圖6.1),但是蜂鳴器模塊有無(wú)源蜂鳴器模塊和有源蜂鳴器模塊兩種。對(duì)于有源蜂鳴器模塊,單片機(jī)一個(gè)高(低)電平就可以讓其發(fā)出聲音,具體是什么電平觸發(fā),要看模塊中的三極管的類型,如果是NPN型三極管,則高電平觸發(fā),如果是PNP三極管,則低電平觸發(fā);對(duì)于無(wú)源蜂鳴器模塊,必須用2KHZ~5KHZ頻率的方波去驅(qū)動(dòng)它。所以,使用之前要注意區(qū)分模塊類型。圖6.1任務(wù)一【練一練】答案1、填空題:(1)壓電式蜂鳴器、電磁式蜂鳴器(2)有源蜂鳴器、無(wú)源蜂鳴器2、簡(jiǎn)答題:(1)PWM輸出口直接驅(qū)動(dòng),另一種是利用I/O口定時(shí)翻轉(zhuǎn)電平產(chǎn)生矩形波對(duì)蜂鳴器進(jìn)行驅(qū)動(dòng)。(2)PWM輸出口直接驅(qū)動(dòng)是利用PWM輸出口本身可以輸出一定的方波來(lái)直接驅(qū)動(dòng)蜂鳴器。任務(wù)二【練一練】答案1、響度、音調(diào)和音品2、音調(diào)3、編寫程序,讓蜂鳴器每隔一秒鐘改變一次音調(diào)。#include<reg51.h>unsignedcharfrq;sbitbeep=P1^0;voiddelay(x){uinta,b;for(a=200;a>0;a--)for(b=x;b>0;b--);}voidmain(){frq=10;EA=1;ET1=1;TMOD=0x10;TH1=(65536-5000)/256;TL1=(65536-5000)%256;TR1=1;beep=0;delay(frq);beep=1;delay(frq);while(1);}voidtime1()interrupt3using3{TH1=(65536-5000)/256;TL1=(65536-5000)%256; if(t>=200) { t=0;if(frq>=2000)frq=10;elsefrq=frq+10; };elset++;}任務(wù)三【練一練】答案1、0x012、0xee0xfe0x00【項(xiàng)目檢測(cè)】答案填空題1、多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱2、振蕩器、電磁線圈、磁鐵、振動(dòng)膜片3、有源、無(wú)源4、電源、振蕩音品語(yǔ)句解釋1、如果變量key為0,則給變量led賦值02、將0xe0賦給變量a3、對(duì)1取反4、對(duì)變量beep進(jìn)行按位取反三、簡(jiǎn)答題必須利用定時(shí)器來(lái)做定時(shí),通過(guò)定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來(lái)驅(qū)動(dòng)蜂鳴器了。編程題1、參考項(xiàng)目九任務(wù)一的程序。2、略項(xiàng)目七制作D/A、A/D轉(zhuǎn)換電路項(xiàng)目?jī)?nèi)容本項(xiàng)目主要介紹了D/A轉(zhuǎn)換和A/D轉(zhuǎn)換的原理,并使用D/A轉(zhuǎn)換器DAC0832和A/D轉(zhuǎn)換器ADC0804分別實(shí)現(xiàn)“讓LED逐漸變亮”和“用電位器逐個(gè)點(diǎn)亮8支LED”的效果;還介紹了分析工作時(shí)序圖的方法。二、教學(xué)提要1、教學(xué)重點(diǎn):編程控制DAC0832和ADC08042、教學(xué)難點(diǎn):分析工作時(shí)序圖教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一讓LED逐漸變亮2任務(wù)二用電位器逐個(gè)點(diǎn)亮8支LED2(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)任務(wù)一首先要讓學(xué)生了解D/A轉(zhuǎn)換器的作用和原理,然后針對(duì)“讓LED逐漸變亮”的任務(wù)展開教師分析和學(xué)生討論,讓學(xué)生思考:如何才能使LED逐漸變亮?DAC0832的工作時(shí)序圖要做重點(diǎn)分析,主要是要教給學(xué)生分析的方法,以便在今后拿到其它芯片的時(shí)序圖也能獨(dú)立分析;任務(wù)二的教學(xué)過(guò)程與任務(wù)一基本相同,由于在任務(wù)一當(dāng)中學(xué)生已經(jīng)接觸過(guò)時(shí)序圖,所以,在任務(wù)二教師可以先讓學(xué)生嘗試分析ADC0804的工作時(shí)序圖,然后再加以補(bǔ)充。(四)實(shí)訓(xùn)指導(dǎo)本項(xiàng)目的任務(wù)內(nèi)容都需要另外的芯片協(xié)助完成,因此完成芯片與單片機(jī)之間的電路連接是功能實(shí)現(xiàn)的關(guān)鍵,任務(wù)資訊已經(jīng)提供了電路原理圖,在安裝電路的時(shí)候要注意LED的極性不要接錯(cuò),電源端和接地端不能漏接;任務(wù)二可以使用A/D轉(zhuǎn)換模塊(如圖7.1所示)實(shí)現(xiàn),當(dāng)短路子置于上面兩個(gè)插針位置時(shí),內(nèi)部信號(hào)輸入可進(jìn)行有效的模/數(shù)轉(zhuǎn)換,此時(shí),用戶可以通過(guò)旋轉(zhuǎn)電位器來(lái)觀察,內(nèi)部電壓信號(hào)的模/數(shù)轉(zhuǎn)換過(guò)程,作為模塊的測(cè)試使用,當(dāng)短路子置于下面兩個(gè)插針位置時(shí),外部信號(hào)輸入可進(jìn)行有效的模/數(shù)轉(zhuǎn)換。圖7.1任務(wù)一【練一練】答案1、簡(jiǎn)答題:(1)1)分辨率2)線性度3)絕對(duì)精度和相對(duì)精度4)建立時(shí)間(2)1)分辨率8位2)電流建立時(shí)間1μS3)數(shù)據(jù)輸入可采用雙緩沖、單緩沖或直通方式4)輸出電流線性度可在滿量程下調(diào)節(jié)5)邏輯電平輸入與TTL電平兼容6)單一電源供電(+5V~+15V);7)低功耗,20mW。2、填空題:(1)最低有效位、最小變化值(2)數(shù)據(jù)寄存器、電流任務(wù)二【練一練】答案1、填空題:(1)數(shù)字、模擬、(2)逐次比較2、簡(jiǎn)答題:(1)1)分辨率2)量化誤差3)偏移誤差4)滿刻度誤差5)線性度6)絕對(duì)精度7)轉(zhuǎn)換速率(2)1)準(zhǔn)備階段。2)轉(zhuǎn)換階段。3)讀取階段?!卷?xiàng)目檢測(cè)】答案填空題1、線性度2、輸出值、理論值3、滿刻度變化4、電流5、時(shí)序6、模擬量、數(shù)字量7、模擬電壓8、有限位數(shù)、量化9、偏移誤差10、重復(fù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換逐次比較簡(jiǎn)答題首先向片內(nèi)D/A轉(zhuǎn)換器輸入10000000,若電壓比較器:VIN>VN(VN為片內(nèi)D/A轉(zhuǎn)換的輸出,VIN為A/D轉(zhuǎn)換器的輸入電壓),N位寄存器的首位置1(若VIN<VN,則寄存器的首位寫0);再向D/A轉(zhuǎn)換輸入11000000(首位寫0時(shí),輸入01111111),若VIN>VN,則寄存器第二位置1(若VIN<VN,則寫0);再向D/A轉(zhuǎn)換輸入11100000(或00111111),若VIN>VN,則寄存器第三位置1(若VIN<VN,則寫0);依次下去直到寄存器第8位賦值結(jié)束,控制邏輯檢測(cè)到比較器進(jìn)行8次后,EOC輸入信號(hào),讓A/D轉(zhuǎn)換器將結(jié)果通過(guò)鎖存緩存器輸出至D0~D7。項(xiàng)目八制作溫度顯示器項(xiàng)目?jī)?nèi)容本項(xiàng)目主要介紹了使用1602液晶屏幕和溫度傳感器DS18B20制作溫度顯示器的方法。在任務(wù)一中介紹了1602液晶模塊的引腳功能、1602寫數(shù)據(jù)和寫命令的格式、1602初始化程序以及1602液晶的顯示地址的設(shè)置;任務(wù)二主要介紹了DS18B20的時(shí)序圖、DS18B20的初始化程序和讀寫程序以及驅(qū)動(dòng)DS18B20的操作流程;最后一個(gè)任務(wù)完成了溫度顯示器的制作。二、教學(xué)提要教學(xué)重點(diǎn):1602液晶顯示器的使用、驅(qū)動(dòng)DS18B20芯片教學(xué)難點(diǎn):讓LCD顯示當(dāng)前溫度三、教學(xué)建議(一)課時(shí)分配任務(wù)內(nèi)容課時(shí)任務(wù)一讓1602液晶顯示器顯示字符2任務(wù)二驅(qū)動(dòng)DS18B20芯片2任務(wù)三讓LCD顯示當(dāng)前溫度2(二)教學(xué)方法情境教學(xué)法、任務(wù)驅(qū)動(dòng)法(三)教學(xué)要點(diǎn)要制作溫度顯示器,首先要學(xué)會(huì)讓液晶顯示器顯示指定的字符,任務(wù)一介紹的液晶顯示器是常用的1602液晶顯示器,所以任務(wù)一的教學(xué)要點(diǎn)就是講清楚1602液晶的時(shí)序圖,并根據(jù)時(shí)序圖畫出寫數(shù)據(jù)和寫命令的程序流程圖,至于液晶屏能否正常顯示字符以及字符顯示的位置,就要引導(dǎo)學(xué)生查看表8—1—3(見課本)的內(nèi)部指令,例如:寫入命令字“0x01”就起到清屏的作用;溫度傳感器種類很多,DS18B20溫度傳感器通常應(yīng)用于高精度、高可靠性的場(chǎng)合,其內(nèi)部含有數(shù)據(jù)存儲(chǔ)單元,具備記憶功能,配合指定的程序就可以將其儲(chǔ)存的數(shù)據(jù)讀取,所以任務(wù)二的關(guān)鍵是搞清楚“寫一個(gè)字節(jié)”和“讀一個(gè)字節(jié)”的程序指令;任務(wù)三是對(duì)前面兩個(gè)任務(wù)的綜合運(yùn)用,可以讓學(xué)生獨(dú)立完成。(四)實(shí)訓(xùn)指導(dǎo)任務(wù)一實(shí)訓(xùn)的首要任務(wù)是正確連接電路,因?yàn)橐壕э@示器的管腳比較多,所以要注意區(qū)分管腳的順序,電路連接好以后,學(xué)生可以直接將程序燒錄到單片機(jī)進(jìn)行測(cè)試,顯示器正常顯示以后,教師要求學(xué)生對(duì)顯示字符和顯示位置進(jìn)行改變,以達(dá)到熟悉控制指令的目的;任務(wù)二的電路部分較簡(jiǎn)單,所以要求學(xué)生嘗試完成“寫一個(gè)字節(jié)”和“讀一個(gè)字節(jié)”的程序指令,然后結(jié)合任務(wù)三完成溫度顯示器的制作,但是要求顯示內(nèi)容要略有不同,可以加上日期或其它文字。任務(wù)一【練一練】答案00、100x82任務(wù)二【練一練】答案1、溫度傳感器2、單總線、雙向3、480uS、15~60uS4、兩個(gè)、執(zhí)行溫度轉(zhuǎn)換、讀RAM5、說(shuō)出以下運(yùn)算的意義:(1)將變量dat與0x01按位求與,相當(dāng)于保留最低位;(2)將變量dat與0x80按位求或,即dat的高位補(bǔ)1。任務(wù)三【練一練】答案已知i為四位十進(jìn)制數(shù),試用適當(dāng)?shù)乃阈g(shù)運(yùn)算符表示其千位、百位、十位和個(gè)位。千位:i/1000百位:i%1000/100十位:i%100/10個(gè)位:i%10【項(xiàng)目檢測(cè)】答案填空題1、慢顯示2、字符地址3、顯示模式4、480uS5、拉高、存在脈沖6、一根I/O線語(yǔ)句解釋(5—9題為單片機(jī)向1602液晶寫指令的語(yǔ)句)1、將dat的各數(shù)據(jù)位右移1位2、將dat的各數(shù)據(jù)位和0x80按位求或3、將dat的各數(shù)據(jù)位和0x01按位求與,結(jié)果賦值給DQ4、將temp的各數(shù)據(jù)位和變量a按位求或5、lcd_w_com(0x38);
6、顯示關(guān)閉
7、開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍
8、顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移一位
9、清屏
附錄一C語(yǔ)言基礎(chǔ)知識(shí)匯總語(yǔ)言變量聲明和變量賦值1)基本數(shù)據(jù)類型在C語(yǔ)言中,僅有4種基本數(shù)據(jù)類型—整型、浮點(diǎn)型、指針和聚合類型(如數(shù)組和結(jié)構(gòu)等),所有其他的類型都是從這4種基本類型的某種組合派生而來(lái)。整型:整型家族包括字符、短整型、整型和長(zhǎng)整型,它們都分為有符號(hào)(signed)和無(wú)符號(hào)(unsigned)兩種版本。規(guī)定整數(shù)值相互之間大小的規(guī)則很簡(jiǎn)單:長(zhǎng)整型至少應(yīng)該和整型一樣長(zhǎng),而整型至少應(yīng)該和短整型一樣長(zhǎng)。浮點(diǎn)類型:諸如3.14159和2.3×1023這樣的數(shù)值無(wú)法按照整數(shù)存儲(chǔ)。第一個(gè)數(shù)為非整數(shù),而第二個(gè)數(shù)遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)整數(shù)所表達(dá)范圍,這樣的數(shù)就可以用浮點(diǎn)數(shù)的形式存儲(chǔ)。浮點(diǎn)數(shù)家族包括float、double和longdouble類型。通常,這些類型分別提供單精度、雙精度以及在某種擴(kuò)展精度的機(jī)器上提供擴(kuò)展精度。ANSI標(biāo)準(zhǔn)僅僅規(guī)定longdouble至少和double一樣長(zhǎng),而double至少和float一樣長(zhǎng)。標(biāo)準(zhǔn)同時(shí)規(guī)定了一個(gè)最小范圍:所有浮點(diǎn)類型至少能夠容納從10-37到1037之間的任何值。指針:變量的值存儲(chǔ)于計(jì)算機(jī)內(nèi)存中,每個(gè)變量都占據(jù)一個(gè)特定的位置。每個(gè)內(nèi)存的位置都由地址唯一確定并應(yīng)用,就像一條街上的房子由他們的門牌號(hào)碼標(biāo)識(shí)一樣,指針知識(shí)地址的另一個(gè)名字。2)變量聲明形式只知道基本的數(shù)據(jù)類型是遠(yuǎn)遠(yuǎn)不夠的,你還應(yīng)該知道怎樣聲明變量。變量的基本形式是:說(shuō)明符(一個(gè)或多個(gè))聲明表達(dá)式列表對(duì)于簡(jiǎn)單的類型,聲明表達(dá)式列表就是被聲明的標(biāo)識(shí)符的基本類型。對(duì)于相對(duì)比較復(fù)雜的類型,聲明表達(dá)式列表的每個(gè)條目實(shí)際上是一個(gè)表達(dá)式,顯示被聲明的名字的可能用途。例如:inta,doubleb;該語(yǔ)句就是一條聲明語(yǔ)句,其中a,b就是變量名,該語(yǔ)句指明了變量a,b是int數(shù)據(jù)類型。所有變量在使用前都必須寫在執(zhí)行語(yǔ)句之前,也就是變量聲明要與執(zhí)行語(yǔ)句相分離,否則就是出現(xiàn)編譯錯(cuò)誤。3)變量命名C語(yǔ)言中任何的變量名都是合法的標(biāo)示符。所謂標(biāo)識(shí)符就是由字母、數(shù)字和下劃線組成的但不以數(shù)字開頭的一系列字符。雖然C語(yǔ)言對(duì)標(biāo)示符的長(zhǎng)度沒(méi)有限制,但是根據(jù)ANSI標(biāo)準(zhǔn),C編譯器必須要識(shí)別前31個(gè)字符。C語(yǔ)言是對(duì)大小寫敏感的,即C語(yǔ)言認(rèn)為大寫字母和小寫字母的含義是不同的,因此a1和A1是不同的標(biāo)識(shí)符。到目前為止,沒(méi)有一種命名規(guī)則可以讓所有的程序員贊同,程序設(shè)計(jì)教科書一般都不指定命名規(guī)則。常用的命名規(guī)則有匈牙利命名法和駝峰命名法等,在實(shí)際操作中,我們會(huì)采取相對(duì)簡(jiǎn)單方便的命名規(guī)則,即“類型首字母”+“_”+“變量用途英文縮寫”,其中英文縮寫首字母為大寫,例如inti_Num,charc_Name[5]。4)變量賦值在一個(gè)變量聲明中,你可以給一個(gè)標(biāo)量變量指定一個(gè)初始值,方法是在變量名后面跟一個(gè)等號(hào)(賦值號(hào)),后面就是你想要給變量的值。例如:inti_Num=10;charc_Name[]=”student”;上述語(yǔ)句聲明i_Num為一個(gè)整數(shù)變量,其初始值為10,聲明c_Name為一個(gè)字符數(shù)組,其初始值為“student”。在C語(yǔ)言中,全局變量和靜態(tài)變量,如果沒(méi)有賦初值,則默認(rèn)初始值int,float,char分別為0,0.0,’\0’,除了全局變量和靜態(tài)變量以外,其他變量如果沒(méi)有賦初值,則默認(rèn)初始值為內(nèi)存中的垃圾內(nèi)容,對(duì)于垃圾內(nèi)容不能有任何假設(shè)。注意:定義指針后,默認(rèn)初始值不是0,而是隨機(jī)的一個(gè)值,故定義指針后,一定要初始化。在實(shí)際操作中,變量的賦值都是以賦值語(yǔ)句的形式出現(xiàn),賦值語(yǔ)句是由賦值表達(dá)式再加上分號(hào)構(gòu)成的表達(dá)式語(yǔ)句。其一般形式為:變量=表達(dá)式;在賦值語(yǔ)句的使用中需要注意以下幾點(diǎn):由于在賦值符“=”右邊的表達(dá)式也可以又是一個(gè)賦值表達(dá)式。下述形式:變量=(變量=表達(dá)式);該語(yǔ)句是成立的,從而形成了嵌套的情形。其展開后的一般形式為:變量=變量=…=表達(dá)式;例如:a=b=c=d=e=5;按照賦值運(yùn)算符的右結(jié)合性,因此實(shí)際上等效于:e=5;d=e;c=d;b=c;a=b;注意在變量聲明中給變量賦初值和賦值語(yǔ)句的區(qū)別給變量賦初值是變量說(shuō)明的一部分,賦初值后的變量與其后的其他同類變量之間仍必須用逗號(hào)隔開,而賦值語(yǔ)句則必須用分號(hào)隔開。例如:inta=5,b,c;在變量聲明中,不允許連續(xù)給多個(gè)變量賦初值。如下述說(shuō)明就是錯(cuò)誤的:inta=b=c=5;正確寫法為:inta=5,b=5,c=5;但是,賦值語(yǔ)句允許連續(xù)賦值。注意賦值表達(dá)式和賦值語(yǔ)句的區(qū)別。賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語(yǔ)句則不能。下述語(yǔ)句是合法的:If((x=y+7)>0)z=x;語(yǔ)句功能為若表達(dá)式x=y+5大于0則z=x。但是,下述語(yǔ)句是錯(cuò)誤的:If((x=y+7;)>0)z=x;因?yàn)閤=y+7;是語(yǔ)句,不能出現(xiàn)在表達(dá)式中。實(shí)例:#include“stdafx.h”voidmain(){ inti_Tmp,i_Type=8; floatf_Tmp; doubled_Tmp; charc_Tmp; d_Tmp=d_Tmp=f_Tmp=12; f_Tmp=i_Type; i_Tmp=i_Type+3; printf("a=%d,b=%d,c=%.3f,d=%.6lf",i_Tmp,i_Type,f_Tmp,d_Tmp);}算術(shù)運(yùn)算符及使用方式C語(yǔ)言提供了最基本的算術(shù)運(yùn)算符,如下表:運(yùn)算符含義舉例結(jié)果+加法運(yùn)算符a+ba和b的和-減法運(yùn)算符a-ba和b的差*乘法運(yùn)算符a*ba和b的乘積/除法運(yùn)算符a/ba除b的商%求余運(yùn)算符a%ba除b的余數(shù)++自加運(yùn)算符a++,++aa自加1--自減運(yùn)算符a--,--aa自減11)+、-、*、/都適用于浮點(diǎn)類型和整數(shù)類型,當(dāng)兩個(gè)操作數(shù)都為整數(shù)時(shí)進(jìn)行整數(shù)運(yùn)算,其余情況則進(jìn)行double型運(yùn)算;當(dāng)/除法運(yùn)算符的兩個(gè)操作數(shù)為整數(shù)時(shí),結(jié)果為整數(shù),舍去小數(shù)部分,例如5/3的結(jié)果為1;%求余運(yùn)算符只接受兩個(gè)整型操作數(shù)的運(yùn)算,結(jié)果為余數(shù)2)++、--:作用是使變量自加1或自減1,例如i++、++i,都是使i的值加1,但其執(zhí)行的步驟是不同的。例如:inti=3,j;j=i++;//i的值為4,j的值為3inti=3,j;j=++i;//i的值為4,j的值為4可見當(dāng)變量在左側(cè)時(shí),先進(jìn)行賦值運(yùn)算再進(jìn)行自加1操作,當(dāng)變量在右側(cè)時(shí),先進(jìn)行自加1操作再進(jìn)行賦值運(yùn)算。3)在賦值運(yùn)算符之前加上算術(shù)運(yùn)算符既構(gòu)成復(fù)合運(yùn)算符,例如:a+=b,等價(jià)于a=a+b。-=、*=、/=也是如此。位運(yùn)算符及使用方式(<<、>>、~、|、&、^)位運(yùn)算符是用來(lái)對(duì)二進(jìn)制位進(jìn)行操作,如下表:運(yùn)算符含義<<左移>>右移~取反|按位或&按為與^按為異或<<、>>:移位運(yùn)算符,例如左移運(yùn)算符:inti=3;i=i<<4;3的二進(jìn)制位為00000011,左移4位的結(jié)果為00110000,其操作中高位舍棄、低位補(bǔ)0,既i=48,等同于i乘以2的4次方。右移運(yùn)算符則有所不同,操作中是低位舍棄,高位則有兩種補(bǔ)位方式。一種為邏輯移位,高位補(bǔ)0;另一種為算術(shù)移位,當(dāng)符號(hào)位為1時(shí)高位全部補(bǔ)1,當(dāng)符號(hào)位為0時(shí)則高位全部補(bǔ)0。具體使用哪種移位方式則取決于當(dāng)前的編譯環(huán)境。~:取反運(yùn)算符,為單目運(yùn)算符,其操作是對(duì)操作數(shù)的二進(jìn)制位按位求反,既1變0,0變1。例如i=5,二進(jìn)制位為00000101,取反的結(jié)果為11111010。在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來(lái)表示和存儲(chǔ),其中最高位為符號(hào)位,用0表示正,1表示負(fù)。補(bǔ)碼的規(guī)定如下:對(duì)正數(shù)來(lái)說(shuō),最高位為0,其余各位代表數(shù)值本身,例如14的補(bǔ)碼為00001110;對(duì)負(fù)數(shù)而言,則將該數(shù)絕對(duì)值的補(bǔ)碼按位取反,再加1,得該數(shù)的補(bǔ)碼,既-i=~i+1。例如-14的補(bǔ)碼為14的二進(jìn)制00001110取反加1得11110010。|、&、^:均為雙目運(yùn)算符,對(duì)操作數(shù)的二進(jìn)位進(jìn)行運(yùn)行,且操作數(shù)以補(bǔ)碼的方式出現(xiàn)。|按位或,兩個(gè)對(duì)應(yīng)的二進(jìn)位至少有一個(gè)為1則為1,否則為0;&按位與,兩個(gè)對(duì)應(yīng)的二進(jìn)位都為1則為1,否則為0;^按位異或,兩個(gè)對(duì)應(yīng)的二進(jìn)位不同則為1,否則為0。例如:a=5;(00000101)b=14;(00001110)a|b=15;(00001111)a&b=4;(00000100)a^b=11;(00001011)關(guān)系運(yùn)算符及使用方式(>、>=、<、<=、==、!=)運(yùn)算符含義>大于>=大于或等于<小于<=小于或等于==等于!=不等于關(guān)系運(yùn)算符用于比較兩個(gè)數(shù)值之間的關(guān)系,例如:a>3為關(guān)系表達(dá)式,大于號(hào)為關(guān)系運(yùn)算符,當(dāng)表達(dá)式成立時(shí),“a>3”的值為“真”,當(dāng)“a>3”不成立時(shí),“a>3”的值為“假”。其中應(yīng)當(dāng)注意的是關(guān)系表達(dá)式的返回值為整型值,而不是布爾型。表達(dá)式為真時(shí)返回值為1,表達(dá)式為假時(shí)返回值為0。邏輯運(yùn)算符及使用方式(&&、||、!)運(yùn)算符含義舉例結(jié)果&&邏輯與a&&ba,b都為真則結(jié)果為真,否則為假|(zhì)|邏輯或a||ba,b至少有一個(gè)為真則結(jié)果為真,否則為假!邏輯非!a當(dāng)a為真則結(jié)果為假,當(dāng)a為假則結(jié)果為真其中應(yīng)當(dāng)注意邏輯或,例如a||b,當(dāng)a為真時(shí),C語(yǔ)言中直接跳過(guò)對(duì)b的判斷,其返回值為“真”。當(dāng)一個(gè)表達(dá)式包括幾種運(yùn)算符時(shí),則以運(yùn)算符的優(yōu)先級(jí)對(duì)表達(dá)式進(jìn)行運(yùn)算,表達(dá)式的優(yōu)先級(jí)如下:優(yōu)先級(jí)運(yùn)算符類型說(shuō)明1初等運(yùn)算符()、[]、->、.2單目運(yùn)算符!、~、++、--、*(指針運(yùn)算符)、&(取地址運(yùn)算符)3算術(shù)運(yùn)算符先乘除后加減4關(guān)系運(yùn)算符>、>=、<、<=、==、!=5邏輯運(yùn)算符&&、||6條件運(yùn)算符三目運(yùn)算符,例如?:7賦值運(yùn)算符=8逗號(hào)運(yùn)算符,數(shù)組數(shù)組是構(gòu)造類型,是一組具有相同類型數(shù)據(jù)的有序集合。每個(gè)數(shù)據(jù)成為數(shù)組的元素,用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來(lái)唯一地確定數(shù)組中的元素。一維數(shù)組的聲明方式為:<類型標(biāo)識(shí)符><數(shù)組名>[常量表達(dá)式]類型標(biāo)識(shí)符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型;數(shù)組名由用戶自定義,表示存儲(chǔ)空間的地址;常量表達(dá)式表示數(shù)組元素的個(gè)數(shù),也是數(shù)組的長(zhǎng)度。例:inta[6];表示一個(gè)整型、數(shù)組名為a、長(zhǎng)度為6的一維數(shù)組。(2)一維數(shù)組的引用形式:下標(biāo)法:數(shù)組名[下標(biāo)]例如:a[i];或p[i];a為數(shù)組名,p為指向數(shù)組的指針變量。注:C語(yǔ)言中不能依次引用整個(gè)數(shù)組,只能逐個(gè)引用數(shù)組中的各個(gè)元素。下標(biāo)就是被訪問(wèn)的數(shù)組元素在所定義的數(shù)組中的相對(duì)位置。下標(biāo)為0表示的是數(shù)組元素在數(shù)組的第一個(gè)位置上,下標(biāo)等于1表示的是數(shù)組元素在數(shù)組的第二個(gè)位置上,依次類推。例如:inta[10];a[0]=100;//正確a[10]=100;//不正確,下標(biāo)越界例如:下標(biāo)法:intmain(){inta[10];for(inti=0;i<10;i++)a[i]=2*i;for(inti=0;i<10;i++)printf(“%d\t”,a[i]);return0;}指針?lè)ǎ?(a+i)或*(p+i);a是數(shù)組名,p為指向數(shù)組的指針變量。例如:指針?lè)ǎ篿ntmain(){int*p=a;inti;for(i=0;i<10;i++)a[i]=2*i;for(i=0;i<10;i++)printf(“%d\t”,*(p+i));return0;}二維數(shù)組的聲明方式為:<類型標(biāo)識(shí)符><數(shù)組名>[常量表達(dá)式1][常量表達(dá)式2]:二維數(shù)組與一維數(shù)組的區(qū)別在于多出[常量表達(dá)式2]。[常量表達(dá)式1]是第一維,常稱為行;[常量表達(dá)式2]是第二維,也就是列。例:inta[3][5];表示一個(gè)3行5列的二維數(shù)組;數(shù)組元素的個(gè)數(shù)為:3*5=15個(gè)。二維數(shù)組的引用形式:下標(biāo)法:數(shù)組名[下標(biāo)][下標(biāo)]注:二維數(shù)組在引用時(shí)和一維數(shù)組一樣,只能逐個(gè)引用數(shù)組中的各個(gè)元素。例如:sz_A[5][6]下標(biāo)可以是整數(shù)表達(dá)式,如sz_A[8-5][2*3-1]。不要寫成sz_A[2,3]、sz_A[8-5,2*3-1]形式。注意:嚴(yán)格區(qū)分定義數(shù)組時(shí)用的sz_A[5][6]和引用元素時(shí)用的sz_A[5][6]的區(qū)別。前者sz_A[5][6]用來(lái)定義數(shù)組的維數(shù),后者sz_A[5][6]的5和6是下標(biāo),代表的是數(shù)組中的某一個(gè)元素?!纠?】分析程序的運(yùn)行結(jié)果源程序如下:#include<stdio.h>voidmain(){ intsz_Array[6];//一維數(shù)組 intsz_DlArray[3][5];//二維數(shù)組 inti_a;inti_dla; inti_dlb;//一維數(shù)組 for(i_a=0;i_a<6;i_a++) {sz_Array[i_a]=i_a*2+2; } printf("\n輸出一維數(shù)組元素為:\n"); for(i_a=0;i_a<6;i_a++) {printf("%d\t",sz_Array[i_a]); }//二維數(shù)組 for(i_dla=0;i_dla<3;i_dla++) {for(i_dlb=0;i_dlb<5;i_dlb++){sz_DlArray[i_dla][i_dlb]=i_dla+i_dlb;} }printf("\n輸出二維數(shù)組元素為:\n");for(i_dla=0;i_dla<3;i_dla++) {for(i_dlb;i_dlb<5;i_dlb++){ printf("%d",sz_DlArray[i_dla][i_dlb]); } printf("\n"); }}運(yùn)行結(jié)果為:輸出一維數(shù)組元素為:24681012輸出二維數(shù)組元素為:0123412345234563456745678指針?lè)ǎ嚎梢酝ㄟ^(guò)行指針來(lái)引用二維數(shù)組元素。定義行指針變量:int(*p)[3],指針p是指向一個(gè)由3個(gè)元素所組成的整型數(shù)組指針。例如:voidmain(){inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}int(*p)[4]=a;for(inti=0;i<3;i++){for(intj=0;i<4;j++)printf(“%d\t”,p[i][j]);printf(“\n”);}}字符數(shù)組字符數(shù)組的定義與賦值字符數(shù)組是一串字符的集合,其數(shù)組元素為字符型。字符數(shù)組的賦值形式:char數(shù)組名[常量表達(dá)式]=“字符串”;或char數(shù)組名[常量表達(dá)式]={“字符串”};例:charsz_A[5]={‘s’,‘t’,‘u’,‘d’,‘y’,};定義數(shù)組sz_A,包含5個(gè)元素,其在內(nèi)存中的存放情況為:sz_A[0]sz_A[1]sz_A[2]sz_A[3]sz_A[4]study則各元素賦值如下:sz_A[0]=‘s’;sz_A[1]=‘t’;sz_A[2]=‘u’;sz_A[3]=‘d’;sz_A[4]=‘y’如果花括號(hào)中的字符個(gè)數(shù)大于數(shù)組長(zhǎng)度,編譯系統(tǒng)就會(huì)報(bào)錯(cuò),如果花括號(hào)中的字符個(gè)數(shù)小于數(shù)組長(zhǎng)度,其余元素則由系統(tǒng)自動(dòng)定義為空字符,即‘\0’?!甛0’作為字符串的結(jié)束標(biāo)志,因此在定義數(shù)組長(zhǎng)度時(shí),應(yīng)在字符串原有的長(zhǎng)度上加1,為字符串結(jié)束標(biāo)志預(yù)留空間。例:charsz_A[6]={‘s’,‘t’,‘u’,‘d’,‘y’,};定義數(shù)組sz_A,包含6個(gè)元素,其在內(nèi)存中的存放情況為:sz_A[0]sz_A[1]sz_A[2]sz_A[3]sz_A[4]sz_A[5]study\0則各元素賦值如下:sz_A[0]=‘s’;sz_A[1]=‘t’;sz_A[2]=‘u’sz_A[3]=‘d’;sz_A[4]=‘y’;sz_A[5]=‘\0’【例3】分析程序的運(yùn)行結(jié)果源程序如下:#include<stdio.h>voidmain(){charsz_A[10]="workhard";inti;for(i=0;i<9;i++)printf("%c",sz_A[i]);}運(yùn)行結(jié)果:workhard以上實(shí)例中,逐個(gè)顯示字符數(shù)組的各個(gè)元素,但需注意的是在定義字符數(shù)組的下標(biāo)時(shí),至少比后面的字符串長(zhǎng)度大1。其中,字符串長(zhǎng)度應(yīng)包括其中空格的長(zhǎng)度。字符串操作函數(shù):字符串復(fù)制函數(shù)strcpy()格式:strcpy(字符數(shù)組1,字符數(shù)組2)功能:是將字符數(shù)組2中字符串復(fù)制到字符數(shù)組1中去。注:字符數(shù)組1的長(zhǎng)度必須大于字符數(shù)組2,從而能夠容納復(fù)制的字符數(shù)組2的字符串;字符數(shù)組1必須寫成數(shù)組名形式,字符數(shù)組2既可以是字符數(shù)組名,也可以是字符串;字符數(shù)組之間不能相互賦值。例如:charsz_str1[10],sz_str2[6]="workhard";Strcpy(sz_str1,sz_str2);printf("%s\n",sz_str1);運(yùn)行結(jié)果:workhard字符串連接函數(shù)strcat()strcat(字符數(shù)組1,字符數(shù)組2)功能:將字符數(shù)組1和字符數(shù)組2中的字符串連接起來(lái),字符數(shù)組2中的字符串2接到字符數(shù)組1中的字符串后面。注:字符數(shù)組1的長(zhǎng)度必須足夠大,能夠同時(shí)容納字符數(shù)組1中的字符串和字符數(shù)組2中的字符串。字符數(shù)組名2中的字符串連接到字符數(shù)組1的字符串時(shí),刪除字符數(shù)組1中的字符串后面的標(biāo)志‘\0’,只在新串的最后保留“\0”。例如:charsz_str1[10]="work",sz_str2[6]="hard";strcat(sz_str1,sz_str2);printf("%s\n",sz_str1);運(yùn)行結(jié)果:workhard字符串比較函數(shù)strcmp()strcmp(字符數(shù)組1,字符數(shù)組2)功能:比較字符數(shù)組1和字符數(shù)組2中字符串,通過(guò)函數(shù)返回值得出比較結(jié)果。若字符數(shù)組1中的字符串<若字符數(shù)組1中的字符串,函數(shù)返回值<0;若字符數(shù)組1中的字符串>若字符數(shù)組1中的字符串,函數(shù)返回值>0;若字符數(shù)組1中的字符串=若字符數(shù)組1中的字符串,函數(shù)返回值=0;注:比較規(guī)則:比較過(guò)程中,按照從左到右的順序,逐個(gè)比較字符的ASCII碼值,直到遇到不相同的字符或“\0”,即結(jié)束比較。例如:charsz_str1[10]="work",sz_str2[10]="hard";if(strcmp(sz_str1,sz_str2)>0) { printf("大于\n"); }if(strcmp(sz_str1,sz_str2)<0) { printf("小于\n"); }if(strcmp(sz_str1,sz_str2)==0) printf("相等\n");運(yùn)行結(jié)果:大于sprintf()sprintf(s,”%s%d%c”,”text”,1,’char’);將輸出結(jié)果寫入數(shù)組S中;其函數(shù)返回值為字符串長(zhǎng)度,相當(dāng)于strlen;計(jì)算長(zhǎng)度時(shí)不計(jì)算“\0”,而sizeof計(jì)算時(shí)是加上“\0”的。例如:charsz_str;sprintf(sz_str,"%s%d%c","work",6,"hard");i_Tmp=sprintf(sz_str,"%s%d%c","work",6,"hard");printf("sprintf結(jié)果輸出:%s\n",sz_str);printf("sprintf函數(shù)返回值輸出:%d\n",i_Tmp);sscanf()sscanf(s,”%d%f%s”,&a,&b,&c);從一個(gè)字符串中讀進(jìn)與指定格式相同的數(shù)據(jù);其返回值為讀入有效數(shù)據(jù)的個(gè)數(shù);從數(shù)組S中,以固定格式向a,b,c輸入,sscanf不識(shí)別空格。charsz_str[11]="work6hard";charsz_str1[11]; sscanf(sz_str,"%4s",sz_str1); i_Tmp=sscanf(sz_str,"%4s",sz_str1)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大漢希爾頓國(guó)際定了株洲心2011下半年推廣表現(xiàn)方案139P
- 個(gè)體戶承包加盟協(xié)議
- 雙邊戰(zhàn)略合作協(xié)議書
- 房屋出租協(xié)議書樣本模板
- 2024年室內(nèi)裝修工程安全合同
- 個(gè)人開車與單位免責(zé)協(xié)議書經(jīng)典版
- 室內(nèi)裝潢后污染治理合同
- 2024年二手車轉(zhuǎn)讓協(xié)議樣本
- 購(gòu)房團(tuán)購(gòu)活動(dòng)合同
- 雙方合伙買房合同范本
- 2024-2030年聽力保護(hù)耳塞行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024年中國(guó)智慧養(yǎng)老行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來(lái)前景分析報(bào)告
- 少兒美術(shù)課件國(guó)家寶藏系列《鳳冠》
- 天翼云從業(yè)者認(rèn)證考試題庫(kù)及答案
- 旅游景區(qū)的提升規(guī)劃方案
- 國(guó)家能源集團(tuán)國(guó)神公司招聘筆試題庫(kù)2024
- 揚(yáng)州樹人學(xué)校2024-2025七年級(jí)上學(xué)期9月月考數(shù)學(xué)試卷及答案
- 課件:七年級(jí)道德與法治上冊(cè)(統(tǒng)編版2024)-【新教材解讀】義務(wù)教育教材內(nèi)容解讀課件
- 002醫(yī)療器械質(zhì)量安全關(guān)鍵崗位人員崗位說(shuō)明
- 2024-2030年中國(guó)木制品行業(yè)市場(chǎng)深度發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024年新人教版部編本四年級(jí)上數(shù)學(xué)教材深度解讀
評(píng)論
0/150
提交評(píng)論