亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

按鈕開關(guān)(guān)

  • 單片機(jī)按一個顯示一個圖形

    該程序設(shè)計了通過按按鈕,在點陣上顯示心形,星形,○形和應(yīng)電二班這些文字。

    標(biāo)簽: 單片機(jī) 圖形

    上傳時間: 2014-12-25

    上傳用戶:qilin

  • c語言編程軟件vc6.0使用教程_vc6.0怎么用

    c語言編程軟件vc6.0使用教程,附件包含二個教程文件,VC++6.0培訓(xùn)教程完整版及VC6.0介紹。 Visual C++ 6.0,簡稱VC或者VC6.0,是微軟的一款C++編譯器,將“高級語言”翻譯為“機(jī)器語言(低級語言)”的程序。Visual C++是一個功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應(yīng)用有很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。 vc6.0使用你首先要打開VC6.0界面,一般用得較多的是Win32控制臺應(yīng)用程序(源程序,擴(kuò)展名.cpp), 步驟是:(先工程—后文件—編譯—連接---運(yùn)行) 1,建立一個工程,“文件”——“新建”,出現(xiàn)下面界面:選擇“Win32 Console Application”(控制臺應(yīng)用程序,左邊倒數(shù)第三個),命名工程名稱,選擇保存位置。 點擊“確定”,進(jìn)入下一步,看到如下提示界面: 建立一個空工程,對應(yīng)其他需要的你一可以建立別的工程;點擊“完成”,之后 顯示你創(chuàng)建的工程的信息。 2,再在有一個的工程的條件下,我們再建立一個源文件; “文件”——“新建”(快捷鍵Ctri+N),出現(xiàn): 建立源文件,選擇“C++ Source ”,一般都是建立這種文件的(適用在當(dāng)文件中適用)如果要建立頭文件的話,選擇“C/C++ Header File”,(適用在多文件工程中使用)命名,文件名稱,點擊“確定”,之后: 進(jìn)入編輯區(qū),在主界面編寫代碼:如下編寫完之后呢: 可以按編譯按鈕 調(diào)試程序,看看有沒有錯誤,有的話改正,沒有的話就可以再按連接按鈕 檢查連接(多文件工程時常用,檢查文件間是否正常連接),最后,點運(yùn)行按鈕 ,就可以運(yùn)行了。 如果是您有代碼如:cpp文件,或 .h 文件,想添加都VC6.0里來測試的話,可以這樣做: 首先,要理解一下 文件擴(kuò)展名為:cpp和.h 文件擴(kuò)張名是.h,代表的是頭文件,一般是書寫一些函數(shù)原型,以及一些在整個程序中常用到的結(jié)構(gòu)體,頻繁使用的函數(shù)說明,定義等等; 文件擴(kuò)張名為,cpp的,是C++中的源文件,也是最常用到的文件,每建立一個工程都要至少一個源文件(至少要有一個函數(shù)入口——主函數(shù)main() ),包含了核心代碼; 建立與運(yùn)行說明:(以VC 6.0編譯器為例,其他編譯器類似) 首先,打開VC 6.0編譯環(huán)境; 在菜單欄——文件(的下拉菜單中選擇“新建”),在彈出的選擇窗口中,選擇 Win32 Console Application(控制臺應(yīng)用程序) ,在填寫工程名稱,選擇一個程序保存路徑, 點擊“完成”,查看工程信息。 在點擊“確定”,就建立一個簡單的工程了。 再點擊左邊的工程信息右下角的“FileView”選項; 可以看到你新建的工程,再雙擊你新建的工程名 可以查看工程的信息。 在雙擊工程文件,在這里是 777.files,可以看到該工程的包含的文件。 其中,Source Files 為包含所有工程的源文件 Header Files 為包含所有工程的頭文件 在源文件選項“Source Files ”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴(kuò)展名為 .cpp的源文件。在頭文件選項“ Header Files”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴(kuò)展名為 . h的頭文件。添加完你所有的頭文件和源文件之后,檢查一下是否添加完畢,之后就可以編譯了。 其中第一個按鈕  為編譯按鈕,可以找出工程的錯誤信息,有錯誤修改,沒錯誤就可以跳到連接 ,編譯右邊的按鈕  ,即第三個按鈕(多文件工程一定要連接,查看文件是否準(zhǔn)確相連接) 當(dāng)編譯,連接都沒有錯誤時,可以按運(yùn)行按鈕  ,即可以運(yùn)行了。 相關(guān)資料:vc6.0中文綠色版下載

    標(biāo)簽: 6.0 vc c語言 編程軟件

    上傳時間: 2013-10-30

    上傳用戶:tianjinfan

  • 51單片機(jī)串口發(fā)N字節(jié)

    適用于51單片機(jī)的串口發(fā)n

    標(biāo)簽: 51單片機(jī) 串口 字節(jié)

    上傳時間: 2014-12-25

    上傳用戶:qingzhuhu

  • 一種用N+1條線實現(xiàn)矩陣鍵盤

    89c51一種用N+1條線實現(xiàn)矩陣鍵盤

    標(biāo)簽: 矩陣鍵盤

    上傳時間: 2014-12-26

    上傳用戶:lhw888

  • 單片機(jī)幾種軟件濾波程序示例

    假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序為get_ad(); 1、限幅濾波法(又稱程序判斷濾波法)     A、方法:         根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A)         每次檢測到新值時判斷:         如果本次值與上次值之差<=A,則本次值有效         如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值     B、優(yōu)點:         能有效克服因偶然因素引起的脈沖干擾     C、缺點         無法抑制那種周期性的干擾         平滑度差 /*  A值可根據(jù)實際情況調(diào)整     value為有效值,new_value為當(dāng)前采樣值      濾波程序返回有效的實際值  */ #define A 10 char value; char filter() {    char  new_value;    new_value = get_ad();    if ( ( new_value - value > A ) || ( value - new_value > A )       return value;    return new_value;          } 2、中位值濾波法     A、方法:         連續(xù)采樣N次(N取奇數(shù))         把N次采樣值按大小排列         取中間值為本次有效值     B、優(yōu)點:         能有效克服因偶然因素引起的波動干擾         對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果     C、缺點:         對流量、速度等快速變化的參數(shù)不宜 /*  N值可根據(jù)實際情況調(diào)整     排序采用冒泡法*/

    標(biāo)簽: 單片機(jī) 軟件濾波 程序

    上傳時間: 2014-12-26

    上傳用戶:nanshan

  • 單片機(jī)指令系統(tǒng)

    單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡介 3.2 指令系統(tǒng) 3.1  MCS-51指令簡介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址         1、數(shù)據(jù)傳送指令位操 2、直接尋址             2、算術(shù)運(yùn)算指令 3、寄存器尋址           3、邏輯運(yùn)算指令 4、寄存器間接尋址指令   4、控制轉(zhuǎn)移類指令 5、相對尋址             5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址    MOV A, @R1        操作數(shù)是通過寄存器間接得到的。 4、立即尋址               MOV  A, #40H        操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址        以DPTR或PC為基址寄存器,以A為變址寄存器,        以兩者相加形成的16位地址為操作數(shù)的地址。                   MOVC A, @A+DPTR                   MOVC A, @A+PC 四、指令中常用符號說明 Rn——當(dāng)前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數(shù)的指令 2.  以Rn為目的操作數(shù)的指令 3.  以直接地址為目的操作數(shù)的指令 4.  以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2  指令系統(tǒng) 2、堆棧操作指令  3.  累加器A與外部數(shù)據(jù)傳輸指令 4.  查表指令    MOVC  A,   @A+PC  例子: 5.  字節(jié)交換指令 6.  半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2.  帶進(jìn)位加法指令 3.  加1指令 4.  十進(jìn)制調(diào)整指令 5.  帶借位減法指令(Subtraction) 6.  減1指令(Decrease) 7.   乘法指令(Multiplication) 8.  除法指令(Division)        三、邏輯運(yùn)算指令 1.  簡單邏輯操作指令 2.  循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate  Accumulator Left   through  Carry  flag)      右循環(huán)指令(Rotate  Accumulator  Right) 帶進(jìn)位右循環(huán)指令(Rotate  A  Right  with  C) 3.   邏輯與指令 4.  邏輯或指令 5.  邏輯異或指令 四、控制轉(zhuǎn)移類指令 1.  跳轉(zhuǎn)指令 相對轉(zhuǎn)移指令   SJMP   rel           PC←(PC)+2                                                                                                                            PC←(PC)+rel 程序中標(biāo)號與地址之間的關(guān)系 2.  條件轉(zhuǎn)移指令 3.  比較不相等轉(zhuǎn)移指令 4.  減 1 不為 0 轉(zhuǎn)移指令 5.  調(diào)用子程序指令 7.  中斷返回指令 五、位操作指令 1.  數(shù)據(jù)位傳送指令 2.  位變量邏輯指令 3.  條件轉(zhuǎn)移類指令

    標(biāo)簽: 單片機(jī) 指令系統(tǒng)

    上傳時間: 2013-10-27

    上傳用戶:xuanjie

  • 波形發(fā)生器,含原理圖+電路圖+源程序

    含原理圖+電路圖+程序的波形發(fā)生器:在工作中,我們常常會用到波形發(fā)生器,它是使用頻度很高的電子儀器。現(xiàn)在的波形發(fā)生器都采用單片機(jī)來構(gòu)成。單片機(jī)波形發(fā)生器是以單片機(jī)核心,配相應(yīng)的外圍電路和功能軟件,能實現(xiàn)各種波形發(fā)生的應(yīng)用系統(tǒng),它由硬件部分和軟件部分組成,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上,對其合理的調(diào)配和使用,從而完成波形發(fā)生的任務(wù)。 波形發(fā)生器的技術(shù)指標(biāo):(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設(shè)計1、 機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時,無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時,按其它鍵,無效;3、 在進(jìn)入某一設(shè)置狀態(tài)后,輸入0~9等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時,有效)為欲輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、 如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個0,等待重新輸入命令;5、 當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發(fā)生器開始輸出滿足參數(shù)的波形信號,面板上相應(yīng)類型的運(yùn)行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數(shù);7、 波形發(fā)生器在輸出信號時,按下任意一個鍵,就停止波形信號輸出,等待重新設(shè)置參數(shù),設(shè)置過程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號;8、 要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應(yīng)用,性能價格高的常用芯片來構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動器 ULN2803A(一塊),運(yùn)算放大器 LM324(一塊)  波形發(fā)生器的硬件電路由單片機(jī)、鍵盤顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生定時中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲器映像方式,外部接口芯片與內(nèi)部存儲器統(tǒng)一編址,89C51提供16根地址線P0(分時復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個定時器/計數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對應(yīng)不同的定時初值,定時器的溢出信號作為中斷請求。控制定時器中斷的特殊功能寄存器設(shè)置如下:定時控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅(qū)動6位數(shù)碼管動態(tài)顯示;           提供響應(yīng)界面;           掃面鍵盤;           提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動器ULN2803A,6位共陰極數(shù)碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內(nèi)部的4個寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH ,  C口:7FFEH    3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運(yùn)放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會產(chǎn)生不同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時,其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號,單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過D/A轉(zhuǎn)換,得到波形的模擬樣值點,假如N個點就構(gòu)成波形的一個周期,那么0832(2)輸出N個樣值點后,樣值點形成運(yùn)動軌跡,就是波形信號的一個周期。重復(fù)輸出N個點后,由此成第二個周期,第三個周期……。這樣0832(2)就能連續(xù)的輸出周期變化的波形信號。運(yùn)放A1是直流放大器,運(yùn)放A2是單極性電壓放大器,運(yùn)放A3是雙極性驅(qū)動放大器,使波形信號能帶得起負(fù)載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過開關(guān),保險管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,+5V電源配送到各用電負(fù)載。

    標(biāo)簽: 波形發(fā)生器 原理圖 電路圖 源程序

    上傳時間: 2013-11-08

    上傳用戶:685

  • 微機(jī)燈光控制系統(tǒng)

    一、實驗?zāi)康模保莆斩〞r/計數(shù)器、輸入/輸出接口電路設(shè)計方法。    2.掌握中斷控制編程技術(shù)的方法和應(yīng)用。3.掌握8086匯編語言程序設(shè)計方法。 二、實驗內(nèi)容與要求 微機(jī)燈光控制系統(tǒng)主要用于娛樂場所的彩燈控制。系統(tǒng)的彩燈共有12組,在實驗時用12個發(fā)光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個燈依次點亮;12個燈同時閃爍等八種。系統(tǒng)可以通過鍵盤和顯示屏的人機(jī)對話,將8種模式進(jìn)行任意個數(shù)、任意次序的連接組合。系統(tǒng)不斷重復(fù)執(zhí)行輸入的模式組合,直至鍵盤有任意一個鍵按下,退出燈光控制系統(tǒng),返回DOS系統(tǒng)。2. 提高要求:音樂彩燈控制系統(tǒng),根據(jù)音樂的變化控制彩燈的變化,主要有以下幾種:第一種為音樂節(jié)奏控制彩燈,按音樂的節(jié)拍變換彩燈花樣。第二種音律的強(qiáng)弱(信號幅度大小)控制彩燈。強(qiáng)音時,燈的亮度加大,且被點亮的數(shù)目增多。第三種按音調(diào)高低(信號頻率高低)控制彩燈。低音時,某一部分燈點亮;高音時,另一部分點亮。 三、實驗報告要求 1.設(shè)計目的和內(nèi)容 2.總體設(shè)計 3.硬件設(shè)計:原理圖(接線圖)及簡要說明 4.軟件設(shè)計框圖及程序清單5.設(shè)計結(jié)果和體會(包括遇到的問題及解決的方法) 四、設(shè)計原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設(shè)有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個點亮。其控制過程如下: 若以“ 1 ”代表霓虹燈點亮,以“ 0 ”代表霓虹燈熄滅,則開始時刻, n 段霓虹燈的控制信號均為“ 0 ”,隨后,控制器將一幀 n 個數(shù)據(jù)送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對應(yīng)的控制數(shù)據(jù)為“ 1 ”,其余的數(shù)據(jù)均為零,即 1000 … 000 。當(dāng) n 個數(shù)據(jù)送完以后,控制器停止送數(shù),保留這種狀態(tài)(定時) 0.2 秒,此時,第 1 段霓虹燈被點亮,其余霓虹燈熄滅。隨后,控制器又在極短的時間內(nèi)將數(shù)據(jù) 1100 … 000 送至霓虹燈的控制端,并定時 0.2 秒,這段時間,前兩段霓虹燈被點亮。由于送數(shù)據(jù)的過程很快,我們觀測到的效果是第一段霓虹燈被點亮 0.2 秒后,第 2 段霓虹燈接著被點亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數(shù)據(jù) 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點亮。 只要改變送至每段霓虹燈的數(shù)據(jù),即可改變霓虹燈的顯示方式,顯然,我們可以通過合理地組合數(shù)據(jù)(編程)來得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統(tǒng)設(shè)計思路如下:1) 采集8位開關(guān)輸入信號,若輸入數(shù)據(jù)為0時,將其修改為1。確定輸入的硬件接口電路。采樣輸入開關(guān)量,并存入NUM的軟件程序段。2) 以12個燈依次點亮為例(即燈光控制模式M1),考慮與其相應(yīng)的燈光顯示代碼數(shù)據(jù)。確定顯示代碼數(shù)據(jù)輸出的接口電路。輸出一個同期顯示代碼的軟件程序段(暫不考慮時隙的延時要求)。3) 應(yīng)用定時中斷服務(wù)和NUM數(shù)據(jù),實現(xiàn)t=N×50ms的方法。4) 實現(xiàn)某一種模式燈光顯示控制中12個時隙一個周期,共重復(fù)四次的控制方法。要求在初始化時采樣開關(guān)輸入數(shù)據(jù)NUM,并以此控制每一時隙的延時時間;在每一時隙結(jié)束時,檢查有無鍵按下,若是退出鍵按下,則結(jié)束燈光控制,返回DOS系統(tǒng),若是其他鍵就返回主菜單,重新輸入控制模式數(shù)據(jù)。5) 通過人機(jī)對話,輸入8種燈光顯示控制模式的任意個數(shù)、任意次序連接組合的控制模式數(shù)據(jù)串(以ENTER鍵結(jié)尾)。對輸入的數(shù)據(jù)進(jìn)行檢查,若數(shù)據(jù)都在1 - 8之間,則存入INBUF;若有錯誤,則通過屏幕顯示輸入錯誤,準(zhǔn)備重新輸入燈光顯示控制模式數(shù)據(jù)。6) 依次讀取INBUF中的控制模式數(shù)據(jù)進(jìn)行不同模式的燈光顯示控制,在沒有任意鍵按下的情況下,系統(tǒng)從第一個控制模式數(shù)據(jù)開始,順序工作到最后一個控制模式數(shù)據(jù)后,又返回到第一個控制模式數(shù)據(jù),不斷重復(fù)循環(huán)進(jìn)行燈光顯示控制。7) 本系統(tǒng)的軟件在總體上有兩部份,即主程序(MAIN)和實時中斷服務(wù)程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設(shè)計方法。即確定有關(guān)功能模塊,并畫出以功能模塊表示的主程序(MAIN)流程框圖和定時中斷服務(wù)程序的流程框圖。    六、硬件電路設(shè)計   以微機(jī)實驗平臺和PC機(jī)資源為硬件設(shè)計的基礎(chǔ),不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負(fù)責(zé)數(shù)據(jù)的輸入與輸出,可以輸出數(shù)據(jù)控制發(fā)光二極管的亮滅和讀取乒乓開關(guān)的數(shù)據(jù)。實驗時可以將8255的A口、B口和一組發(fā)光二極管相連,C口和乒乓開關(guān)相連。2.8253定時/計數(shù)器8253定時/計數(shù)器和8259中斷控制器一起實現(xiàn)時隙定時。本設(shè)計的定時就是采用的t=N×50ms的方法,50ms由8253定時/計數(shù)器的計數(shù)器0控制定時,N是在中斷服務(wù)程序中軟件計時。8253的OUT0接到IRQ2,產(chǎn)生中斷請求信號。8253定時/計數(shù)器定時結(jié)束會發(fā)出中斷信號,進(jìn)入中斷服務(wù)程序。3.PC機(jī)資源本設(shè)計除了利用PC機(jī)作為控制器之外,還利用了PC機(jī)的鍵盤和顯示器。鍵盤主要是輸入控制模式數(shù)據(jù),顯示器就是顯示提示信息。   七、軟件設(shè)計   軟件主要分為主程序(MAIN)和中斷服務(wù)程序(INTT),主程序包含系統(tǒng)初始化、讀取乒乓開關(guān)、讀取控制模式數(shù)據(jù)以及按鍵處理等模塊。中斷服務(wù)程序主要是定時時間到后根據(jù)控制模式數(shù)據(jù)點亮相應(yīng)的發(fā)光二極管。1.主程序主程序的程序流程圖如圖1所示。

    標(biāo)簽: 微機(jī) 燈光控制

    上傳時間: 2014-04-05

    上傳用戶:q986086481

  • PC機(jī)之間串口通信的實現(xiàn)

    PC機(jī)之間串口通信的實現(xiàn)一、實驗?zāi)康?nbsp;1.熟悉微機(jī)接口實驗裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會串行通信程序的編制方法。 二、實驗內(nèi)容與要求 1.基本要求主機(jī)接收開關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時乒乓開關(guān)的狀態(tài)讀入計算機(jī)I中,并顯示出來,同時顯示經(jīng)串行通訊后,計算機(jī)II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發(fā)送方確認(rèn)來保證發(fā)送和接收正確。 三、設(shè)計報告要求 1.設(shè)計目的和內(nèi)容 2.總體設(shè)計 3.硬件設(shè)計:原理圖(接線圖)及簡要說明 4.軟件設(shè)計框圖及程序清單5.設(shè)計結(jié)果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時,必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來的對CPU請求發(fā)送信號的響應(yīng)信號。然后就開始發(fā)送過程。在發(fā)送時,每當(dāng)CPU送往發(fā)送緩沖器一個字符,發(fā)送器自動為這個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或者2個停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時鐘TXC的下降沿同步的,也就是說這些數(shù)據(jù)總是在發(fā)送時鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時指定的波特率因子,為發(fā)送器時鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時,數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時鐘頻率的1/16。CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時,命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測RxD引腳上的低電平來準(zhǔn)備接收字符,在沒有字符傳送時RxD端為高電平。8251A不斷地檢測RxD引腳,從RxD端上檢測到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動接收控制電路中的一個計數(shù)器來進(jìn)行計數(shù),計數(shù)器的頻率等于接收器時鐘頻率。計數(shù)器是作為接收器采樣定時,當(dāng)計數(shù)到相當(dāng)于半個數(shù)位的傳輸時間時再次對RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個有效的起始位。若傳輸一個字符需要16個時鐘,那么就是要在計數(shù)8個時鐘后采樣到低電平。之后,8251A每隔一個數(shù)位的傳輸時間對RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過校驗并除去停止位,變成并行數(shù)據(jù)以后通過內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時發(fā)出有效狀態(tài)的RxRDY信號通知CPU,通知CPU8251A已經(jīng)收到一個有效的數(shù)據(jù)。一個字符對應(yīng)的數(shù)據(jù)可以是5~8位。如果一個字符對應(yīng)的數(shù)據(jù)不到8位,8251A會在移位轉(zhuǎn)換成并行數(shù)據(jù)的時候,自動把他們的高位補(bǔ)成0。 五、系統(tǒng)總體設(shè)計方案根據(jù)系統(tǒng)設(shè)計的要求,對系統(tǒng)設(shè)計的總體方案進(jìn)行論證分析如下:1.獲取8位開關(guān)量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時,雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個時鐘來實現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計算機(jī)之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設(shè)計中使用實驗臺上的8253芯片的計數(shù)器2來實現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實現(xiàn)。設(shè)計思路框圖,如下圖所示: 六、硬件設(shè)計硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計在獲取8位開關(guān)數(shù)據(jù)量時采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實驗臺上CS1口,對應(yīng)端口為280H-283H,PA0-PA7接8個開關(guān)。2.串行通信電路串行通信電路本設(shè)計中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。

    標(biāo)簽: PC機(jī) 串口通信

    上傳時間: 2013-12-19

    上傳用戶:小火車?yán)怖怖?/p>

  • 微型計算機(jī)課程設(shè)計論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計

    微型計算機(jī)課程設(shè)計論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計 本文講述了在微型計算機(jī)中利用可編程時間間隔定時器的通用發(fā)聲程序設(shè)計,重點講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動畫程序原理,并以設(shè)計一個簡單的樂曲評分程序為引子,分析程序設(shè)計的細(xì)節(jié)。關(guān)鍵字:微機(jī) 8253 通用發(fā)聲程序 動畫技術(shù) 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機(jī)中,有一個可編程時間間隔定時器8253,它能夠根據(jù)程序提供的計數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計數(shù)/定時脈沖,提供給系統(tǒng)各個部件使用。本設(shè)計是利用計算機(jī)控制發(fā)聲的原理,編寫演奏樂曲的程序。    在8253/54定時器內(nèi)部有3個獨立工作的計數(shù)器:計數(shù)器0,計數(shù)器1和計數(shù)器2,每個計數(shù)器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內(nèi)部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數(shù)器和控制器尋址.     對8353/54編程時,先要設(shè)定控制字,以選擇計數(shù)器,確定工作方式和計數(shù)值的格式.每計數(shù)器由三個引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數(shù)/定時信號輸入端.每個計數(shù)器中包含一個16位計數(shù)寄存器,這個計數(shù)器時以倒計數(shù)的方式計數(shù)的,也就是說,從計數(shù)初值逐次減1,直到減為0為止.     8253/54的三個計數(shù)器是分別編程的,在對任一個計數(shù)器編程時,必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數(shù)器輸入一個計數(shù)初值,因為這個計數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數(shù)器2設(shè)定為方式3,(關(guān)于計數(shù)器的工作方式參閱教材第325—330頁)計數(shù)初值為65536.    MOV   AL,10110110B ;選擇計數(shù)器2,按方式3工作,計數(shù)值是二進(jìn)制格式    OUT   43H,AL      ; j將控制字送入控制寄存器    MOV   AL,0        ;計數(shù)初值為0    OUT   42H,AL      ;將計數(shù)初值的低字節(jié)送入計數(shù)器2    OUT   42H,AL      ;將計數(shù)初值的高字節(jié)送入計數(shù)器2    在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機(jī)上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關(guān)于8255A的結(jié)構(gòu)和工作原理及應(yīng)用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機(jī)中的揚(yáng)聲器接口電路”一節(jié)介紹了揚(yáng)聲器的驅(qū)動原理,并給出了通用發(fā)聲程序.本設(shè)計正是基于這個原理,通過編程,控制加到揚(yáng)聲器上的信號的頻率,奏出樂曲的.2.發(fā)聲程序的設(shè)計下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:MOV      AL, 10110110B   ;8253控制字:通道2,先寫低字節(jié),后寫高字節(jié)        ;方式3,二進(jìn)制計數(shù)OUT      43H, AL                  ;寫入控制字MOV      DX, 0012H               ;被除數(shù)高位MOV      AX, 35DEH              ;被除數(shù)低位 DIV      ID      ;求計數(shù)初值n,結(jié)果在AX中OUT      42H, AL     ;送出低8位MOV      AL, AHOUT      42H,AL     ;送出高8位IN      AL, 61H     ;讀入8255A端口B的內(nèi)容MOV      AH, AL                  ;保護(hù)B口的原狀態(tài)OR  AL, 03H     ;使B口后兩位置1,其余位保留OUT 61H,AL     ;接通揚(yáng)聲器,使它發(fā)聲

    標(biāo)簽: 微型計算機(jī) 發(fā)聲程序 論文 微機(jī)

    上傳時間: 2013-10-17

    上傳用戶:sunjet

主站蜘蛛池模板: 东光县| 锡林郭勒盟| 宜都市| 武穴市| 安徽省| 雷波县| 凤台县| 耒阳市| 田东县| 乌什县| 庆云县| 安龙县| 通化县| 登封市| 锡林郭勒盟| 宝山区| 泰宁县| 许昌县| 乐清市| 阿图什市| 广灵县| 肥城市| 喀喇| 拉萨市| 桦川县| 柏乡县| 南通市| 玉门市| 临猗县| 海原县| 明水县| 平顶山市| 竹山县| 合肥市| 泰顺县| 延川县| 元朗区| 泰顺县| 德江县| 上饶县| 拜泉县|