❶ 高分求單片機課程設計報告
手邊有一些你需要的關於單片機的論文設計資料 需要的話加QQ 晚上7點以後隱身在線,直接加就行,說明要的資料名字就好。嘿嘿 樓主 要是覺的好的話 可別忘了給分哦。
❷ 求單片機課程設計 用匯編語言設計計數器(要求從0~9999,在數碼管上顯示)!!!!!!!!!!!!!
單片機課程設計報告
題 目 計時器設計
班 級 電 信 093
學 號 090301334
姓 名 周 劍
時 間 2010.12.20
成 績
指導教師 石巧雲
目錄
一、 前言………………………………………………………………1
單片機的應用介紹…………………………………………………1
二、 課程設計的目的和要求…………………………………………2
(一)課程設計的目的…………………………………………… 2
(二)課程設計的基本要求……………………………………… 3
三、 總體設計…………………………………………………………3
(一)工作原理…………………………………………………… 3
(二)硬體總體設計……………………………………………… 4
(三)軟體總體設計……………………………………………… 5
四、綜合調試………………………………………………………… 7
(一)keil調試 …………………………………………………… 8
(二)Proteus調試………………………………………………… 9
五、結束語…………………………………………………………… 9
六、參考文獻 …………………………………………………………10
前言
單片機的應用介紹
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用單片機的應用介紹
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應
智能化控制的科學家、工程師。
與智能化控制的科學家、工程師。
單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇:
(1.在智能儀器儀表上的應用
(2.在工業控制中的應用
(3.在家用電器中的應用
(4.在計算機網路和通信領域中的應用
(5.單片機在醫用設備領域中的應用
(6.在各種大型電器中的模塊化應用
此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。
二、 課程設計的目的和要求
(一)課程設計的目的
1. 進一步熟悉和掌握8051單片機的結構及工作原理。
2. 掌握單片機的介面技術及相關外圍晶元的外特性,控制方法
3. 通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。
4. 通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。
5. 通過完成一個包括電路設計和程序開發的完整過程,使學生了解開發一單片機應用系統的全過程,為今後從事相應打下基礎。
(二)課程設計的基本要求
用AT89C51 單片機的定時/計數器T0產生一秒的定時時間,作為秒計數時間,但一秒產生時,秒計數加1,秒計數加到60時,自動從0開始。單片機晶振頻率為12MHz。
二、 總體設計
(一) 工作原理
LED顯示器的結構與原理
1、結構種類
七段LED顯示器(數碼管)系發光器件的一種。常用的LED發光器件有兩類:數碼管和點陣。數碼管內部有七個條形發光二極體和一個小圓點發光二極體組成,根據各管的亮暗組成字元。常見數碼管有10根管腳。管腳排列如下圖(a)所示。其中COM為公共端,根據內部發光二極體的接線形式可分為共陰極和共陽極兩種。如下圖(b)(c)所示,使用時,共陰極數碼管公共端接地,共陽極數碼管公共端接電源。發光二極體需5~10mA的驅動電流才能正常發光,一般需加限流電阻控制電流的大小。
2、顯示原理
LED數碼管的a~g七個發光二極體。加正電壓的發光加零電壓的不能發光,不同亮暗的組合能形成不同的字元,這種組合稱為字型碼。共陽極和共陰極的字型碼是不同的,如下圖所示。
LED字元顯示代碼表
顯示 段符號 十六進制代碼
dp g f e d c b a 共陰極 共陽極
0 0 0 1 1 1 1 1 1 3FH C0H
1 0 0 0 0 0 1 1 0 06H F9H
2 0 1 0 1 1 0 1 1 5BH A4H
3 0 1 0 0 1 1 1 1 4FH B0H
4 0 1 1 0 0 1 1 0 66H 99H
5 0 1 1 0 1 1 0 1 6DH 92H
6 0 1 1 1 1 1 0 1 7DH 82H
7 0 0 0 0 0 1 1 1 07H F8H
8 0 1 1 1 1 1 1 1 7FH 80H
9 0 1 1 0 1 1 1 1 6FH 90H
(二) 硬體總體設計
1、主要元器件選擇
主要元器件選用型號和數量如下:
1個AT89C51(單片機) 1個CRYSTAL(晶振) 2個CAP(電容)
3個RES(電阻) 2個7SEG-COM-CATHOD(共陰極數碼管)
1個CAP-ELEC(電解電容)
2、系統板上硬體連線
(1. 把「單片機系統」區域中的P0.0/AD0-P0.7/AD7埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。
(2. 把「單片機系統」區域中的P2.0/A8-P2.7/A15埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。
3、計時器電原理圖
(三)軟體總體設計
1、程序設計內容
(1.在設計過程中我們用一個存儲單元作為秒計數單元,當一秒鍾到來時,就讓秒計數單元加1,當秒計數達到60時,就自動返回到0,從新秒計數。
(2.對於秒計數單元中的數據要把它十位數和個數分開,方法仍採用對10整除和對10求余。
(3.在數碼上顯示,仍通過查表的方式完成。
(4.一秒時間的產生在這里我們採用軟體精確延時的方法來完成,經過精確計算得到1秒時間為1.002秒。
2、延時1秒子程序
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
3、程序流程圖
4、匯編源程序設計
Second EQU 30H
ORG 0
START: MOV Second,#00H ;設置顯示初值為00
NEXT: MOV A,Second
MOV B,#10
DIV AB ;十位數存於A中,個位數存於B中
MOV DPTR,#TABLE ;字型碼地址送DPTR
MOVC A,@A+DPTR ;查十位字型碼
MOV P1,A ;送P1口顯示
MOV A,B
MOVC A,@A+DPTR ;查個位字型碼
MOV P2,A ;送P2口顯示
LCALL DELY1S ;調用延時1秒子程序DELY1S
INC Second ;顯示值加1
MOV A,Second
CJNE A,#90,NEXT ;顯示值不為90轉到NEXT執行
LJMP START ;返回到主程序
DELY1S: MOV R5,#100 ;1S延時子程序
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰數碼管字型碼
END
四、綜合調試
(一)Keil調試
程序調試完成圖
(二)Proteus調試
五、結束語
完成情況:經過兩個星期的努力,我們一組成員終於完成了秒錶控制方案的設計,主要是用AT89C51單片機實現0-99秒計時器控制方案。本設計還包含數碼管顯示部分,可直接顯示時間可方便觀察。通過這次課程設計,使我得到了一次用專業知識和專業技能去分析問題、解決問題全面系統的鍛煉。使我在單片機的基本原理、單片機應用系統開發過程,以及用匯編語言設計程序的思路技巧等方面都能向前邁了一大步,為日後成為合格的應用型人才打下良好的基礎。
六、參考文獻
[1]. 江力主編,單片機原理與應用技術,清華大學出版社,2008年4月第6次印刷
[2].蔡駿主編,單片機實驗指導教程,安徽大學出版社,2008年7月第一次印刷
[3]. http://www.51c51.com/51test/cc411.htm
❸ 單片機課程設計。。麻煩給出程序,P1口接開關,P2口接LED燈。
#include<reg51.h>
#define uchar unsigned char
uchar num;
uchar lsled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar lsled1[7]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};
bit flag;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
flag=1;
}
main()
{
uchar i;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
while(1)
{
num=0;
i=0;
flag=0;
while(num<60)
{
while(flag==0);
flag=0;
P0=lsled[i];
i++;
i%=8;
}
num=0;
i=0;
flag=0;
while(num<40)
{
while(flag==0);
flag=0;
P0=lsled1[i];
i++;
i%=7;
}
for(i=0;i<2;i++)
{
num=0;
P0=0x55;
while(num<10);
num=0;
P0=0xff;
while(num<10);
num=0;
}
for(i=0;i<2;i++)
{
P0=0xaa;
while(num<10);
num=0;
P0=0xff;
while(num<10);
}
num=0;
P0=0xff;
while(num<20);
}
}
❹ 手把手教你學51單片機的前 言
目前,51系列單片機在我國已得到大力推廣和廣泛應用,從工業控制系統到小型電子產品都可以見到51單片機的身影,它經典的結構使其成為單片機學習的入門首選,得到了廣大單片機使用者的一致推崇,關於51單片機學習和應用的書也五彩紛呈,本書也是其中的一本。
編寫本書的目的
筆者從事單片機設計工作已有多年,在這期間設計和參與設計了較多的單片機項目,取得了很多單片機實際設計經驗,對單片機設計有了一些較深的認識。所以希望能通過這本書對初步學習單片機的讀者有所幫助,並且也是自己對學習和應用單片機的一個總結。
通常在學校學習的單片機知識偏重於理論而不是技能,可是在工作中需要面對的是實際問題,而不是在紙上談兵;作為一名單片機工程師,筆者在工作中對此深有感觸。所以本書的著重點是想讓讀者了解一個完整的單片機設計過程所需的知識,而不僅僅只是講述單片機的原理。通過本書的學習,讀者可以獨立設計和完成一個簡單的單片機控制系統,即體驗從原理圖設計、製作電路板到單片機系統調試的整個過程。
本書的主要內容
本書概括地論述了單片機的基礎知識,包括單片機的基本結構和工作原理;並就實際單片機項目開發中會遇到的各種問題進行了闡述,列舉了單片機開發的流程和必須遵守的一些規范,說明了模擬器和編程器在開發中的作用以及基本的使用方法。具體內容如下。
首先論述了單片機的基礎知識,包括單片機的基本結構和工作原理,闡述了目前單片機的發展情況,列舉了最新流行的單片機種類,總結了單片機的選擇方法。
在了解單片機基本知識的基礎上,詳細講解了單片機的主要開發語言——匯編語言和C51語言;編程語言的使用是單片機和其他集成電路的重要區別,用它來賦給單片機命令,使單片機按照設計者的意志運行命令。
本書也花了一定的篇幅講解了模擬器和編程器的原理和使用說明。編程器和模擬器是單片機項目開發中常用的工具,模擬器是單片機程序調試中很有用的輔助工具,可以逐步地觀察單片機的運行過程,以便發現程序中的錯誤;而編程器是用來將編寫好的程序寫入單片機的工具。除了傳統的模擬器和編程器外,還列舉了一些最新的單片機開發手段,如在線模擬和ISP(在系統編程),這些新的方法大大降低了單片機的開發費用,在線模擬使得設計者不需要去購買昂貴的模擬器,而ISP則替代了編程器,這進一步降低了學習單片機開發的門檻。
在講解這些理論知識的過程中,本書還簡單講述了單片機開發中的一些規范,包括單片機原理圖、PCB圖以及程序設計的設計規范。這在實際工作中是必須了解和遵守的,也是一個單片機設計工程師必須具備的基本知識。
完成了基本知識的學習後,本書由易至難列舉了一些設計實例,這些實例基本上概括了單片機項目設計中遇到的各種問題。
通常,一個單片機系統設計可以分為如下五大方面。
(1)單片機能夠運行的最小系統,包括振盪電路、復位電路以及電源電路。
(2)單片機I/O口的使用方法和定時器、中斷系統的使用。
(3)單片機的通信介面,單片機的通信在單片機設計中是經常遇到的功能,所以必須注意目前單片機系統常用的各種通信介面和協議。
(4)單片機的系統擴展,系統擴展通常可以分為程序存儲器的擴展、數據存儲器的擴展以及單片機I/O口的擴展三部分。
(5)信號轉換介面,主要是A/D、D/A轉換以及PWM的實現。這是單片機信號處理中經常遇到的問題。
前面兩部分是單片機最基本的功能,後面三部分則是單片機的擴展應用,掌握了這些基本知識,便可應對用單片機解決的各種項目。
本書的特點
本書具有知識全面、實例豐富、操作性強的特點,力求以全面、系統的知識和豐富、簡短的實例指導初學者學習單片機各方面的知識。因此,本書適合於開始學習單片機設計和具有一定單片機基礎知識的讀者,目的是使讀者通過本書的學習可以初步掌握單片機的開發應用。
本書安排有「提示」、「注意」、「說明」小欄目,通過這些小欄目可和讀者分享一些經驗和心得,同時也可為讀者清除學習過程中的難點和疑點。
本光碟內容超值豐富,不但提供了書中全部範例的源代碼和電路圖,而且提供了多媒體視頻教學錄像,用以講解如何使用本書光碟中的源代碼,手把手引導讀者直觀深入地學習。
本書閱讀順序
本書章節的安排是依據讀者對單片機學習的過程、以循序漸進的方式建立的,建議初學者從前至後閱讀。
首先閱讀第1章至第7章,這些章節是單片機設計的基礎知識,必須掌握。只有熟讀了這幾章的內容,才能閱讀後面的章節。其中,第3章可以放到完成基本知識的學習後閱讀。
閱讀第8章至第12章,這幾章是講述單片機設計中的一些基本手段和方法,涉及單片機系統設計中的方方面面,掌握這些知識可以解決單片機設計中的大部分問題。
閱讀第13章——綜合實例,它由淺入深、由簡入繁,將前面講解的一些知識應用到實際項目中,可以讓讀者對單片機設計項目有具體的認識。
致謝
經過緊張的策劃、寫作和編寫,本書才得已完稿。在寫作的過程中,得到了參與本書策劃的各位編輯的大力協助;在此,對所有參與該書編輯、出版的老師表示衷心的感謝。
惠 仇
2008.6.28
❺ 用單片機設計製作一個模擬的十字路口交通信號燈控制系統。
摘 要
在日常生活中,交通信號燈的使用,使交通得以有效管理,對於疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。交通燈控制系統由80C51單片機、鍵盤、LED顯示、交通燈延時組成。系統除具有基本交通燈功能外,還具有時間設置、LED信息顯示功能,市交通實現有效控制。
關鍵字:交通燈;單片機;自動控制;LED
Abstract
In daily life, the use of traffic lights, so traffic can be managed effectively in smoothing traffic flow, increase road capacity and rece traffic accidents have remarkable results. Traffic light control system consists of 80C51 microcontroller, keypad, LED display, traffic light delay component. In addition to the traffic light system has the basic functions, but also with time settings, LED information display function, achieving effective control of city traffic
Key Words:traffic lights; SCM; control; LED
目 錄
1 交通燈任務、功能要求說明及總體方案介紹 …………………………………1
1.1 交通燈任務…………………………………………………………………1
1.2 功能要求說明………………………………………………………………1
1.3 設計總體方案介紹及工作原理說明………………………………………2
2 交通燈硬體系統的設計 …………………………………………………………4
2.1 硬體系統各模塊功能介紹…………………………………………………4
2.2 電路原理圖 ………………………………………………………………5
2.3 電路PCB圖 ………………………………………………………………5
2.4 元器件布局圖 ……………………………………………………………5
2.5 元器件清單 ………………………………………………………………5
3 交通燈軟體系統的設計 …………………………………………………………7
3.1 單片機的使用資源情況 …………………………………………………7
3.2 軟體模塊功能介紹 ………………………………………………………8
3.3 程序流程圖 ………………………………………………………………8
3.4 程序清單 …………………………………………………………………10
4 設計總結…………………………………………………………………………11
4.1 使用說明 …………………………………………………………………11
4.2 誤差分析 …………………………………………………………………11
4.3 設計體會 …………………………………………………………………11
4.4 教學建議 …………………………………………………………………12
參考文獻 ……………………………………………………………………………13
致 謝 ………………………………………………………………………………14
附錄一 電路原理圖 ………………………………………………………………15
附錄二 電路PCB頂層圖 …………………………………………………………16
附錄三 電路PCB底層圖 …………………………………………………………17
附錄四 元器件布局圖 ……………………………………………………………18
附錄五 元器件清單 ………………………………………………………………19
附錄六 程序清單…………………………………………………………………20
1 交通燈任務、功能要求說明及總體方案介紹
1.1 交通燈任務
設計一個具有特定功能的十字路口交通燈。該交通燈上電或按鍵復位後能自動顯示系統提示符「P.」, 進入准備工作狀態。按開始鍵則開始工作,按結束鍵則返回「P.」狀態。要求甲車道和乙車道兩條交叉道路上的車輛交替運行,甲車道為主車道,每次通車時間為60秒,乙車道為次車道,每次通車時間為30秒,要求黃燈亮3秒,並且1秒閃爍一次。有應急車輛出現時,紅燈全亮,應急車輛通車時間10秒,同時禁止其他車輛通過。
1.2 功能要求說明
本次課程設計在硬體方面的接法如下:P2口接二極體,P2.0、P2.1、P2.2口線分別來控制東西方向的綠燈、黃燈和紅燈;P2.3、P2.4、P2.5口線分別控制南北方向的紅燈、黃燈和綠燈。P0口作為數碼管的位控(這里只用到了P0.0、和P0.1兩根口線),P1口作為數碼管的段控,P3口作為輸入部分(這里用到了P3.0、P3.1、P3.2口線),控制數碼管的顯示情況和二極體的亮滅情況。
當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。
當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向每隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。
當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮。
當按下緊急鍵K3並釋放後,數碼管將顯示「09」,並且每隔一秒就減1,
東西南北方向全部紅燈亮。
單片機採用AT89S52,fosc=12MHZ。其按鍵功能如表1.1所示。
表1.1 按鍵功能
按鍵 鍵名 功能
P3.4 K1鍵 啟動鍵
P3.7 K2鍵 結束鍵
P3.6 K3鍵 緊急鍵
1.3 設計總體方案介紹及工作原理說明
1.3.1 總體方案介紹
該交通燈電路由單片機AT98S52、鍵盤介面電路、顯示介面電路、發光二極體控制電路、時鍾電路和復位電路構成,原理框圖如圖1.1所示。
圖1.1 原理框圖
(1) 電源提供方面
採用獨立的穩壓電源,此方案的優點是穩定可靠,且有各種成熟電路可供使用。
(2) 顯示方面
完全採用數碼管顯示,用來顯示有限符號和數碼字元。
(3) 鍵盤輸入方面
直接在I/O口線上接按鍵開關,因為設計時精簡和優化了電路,所以剩餘的口資源還比較多。我們共用到了4個按鍵,分別為:K0、K1、K2、K3。
1.3.2 工作原理
首先時鍾電路產生單片機工作時所需要的時鍾信號,這是單片機能夠正常工作的前提,而單片機有無定時的基礎以及定多長的時間,這些還需要我們人為的確定。我是採用10ms延時程序來反復調用來定時,在我們的硬體電路中,按鍵的鍵功能程序在中斷服務中,在正常情況下會不斷運行主程序,當有鍵按下時,CPU去轉去執行中斷程序,而中斷程序可以執行三種鍵功能:第一個是十秒倒計時緊急紅燈亮;第二個是結束倒計時,顯示P.;第三個是重新開始倒計時。其原理是INTO=P3.4&P3.6&P3.7,當有鍵按下時,外部中斷0口線就會變成低電平,通過鍵掃程序來具體判斷到底是哪個鍵按下,CPU才會去執行中斷裡面的某個鍵功能。12個發光二極體是由P0口控制的,P0口與二極體之間串接一個限流電阻使二極體不易燒壞,採用送低電平有效。
2 交通燈硬體系統的設計
2.1 硬體系統各模塊功能介紹
2.1.1 顯示電路
在本次課程設計中,我們採用的是四位一體共陽數碼管。本設計的顯示驅動是採用三極體作為驅動。並且,無論是位控線上還是段控線上都串接一個電阻,以提高其輸出功率,在這里採用220歐母電阻。
2.1.2 指示燈控制電路
本次課程設計採用P3口控制二極體的發光情況,口線送低電平有效,具體設計如下:P3.2控制東西方向的綠燈,P3.4口控制東西方向的黃燈,P3.5控制東西方向的紅燈,P3.1控制南北方向的紅燈,P3.7控制南北方向的黃燈,P3.0控制南北方向的綠燈。
2.1.3 鍵盤控制電路
鍵盤是最常用的輸入設備,是實現人機對話的紐帶。按其結構形式可分為非編碼鍵盤和編碼鍵盤。
編碼鍵盤採用硬體方法產生鍵碼。每按下一個鍵,鍵盤能自動生成鍵盤代碼,鍵數較多,且具有去抖動功能。這種鍵盤使用方便,但硬體較復雜。非編碼鍵盤僅提供按鍵開關工作狀態,其鍵碼由軟體確定,這種鍵盤鍵數較少,硬體簡單,廣泛應用於各種單片機應用系統,在單片機控制電路中,可把單片機使用的鍵盤分為獨立式和矩陣式兩種。獨立式實際上就是一組獨立的按鍵,這些按鍵可直接與單片機的I/O口連接,即每個按鍵獨佔一條口線,這種接法簡單。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數目較多,所以鍵按行列組成矩陣。本設計中鍵盤數目較少,且為安裝方便,因此在本設計中採用獨立式接法。
按從一個鍵到鍵的功能被執行主要應包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,另一項是鍵功能的實現。第一項工作是使用介面電路實現的,而第二項工作則是通過執行中斷服務程序來完成。具體來說,鍵盤介面應完成以下操作功能:
(1) 鍵盤掃描,以判定是否有鍵被按下(稱之為「閉合鍵」)。
(2) 鍵識別,以確定閉合鍵的行列位置。
(3) 產生閉合鍵的鍵碼。
(4) 排除多鍵、串鍵(復鍵)及去抖動。
以上這些內容通常是以軟硬體結合的方式來完成的,即在軟體的配合下由介面電路來完成。但具體哪些由硬體哪些由軟體完成,要看介面電路的情況。總的原則是,硬體復雜軟體就簡單,硬體簡單軟體就得復雜一些。
2.1.4 時鍾電路
時鍾電路用來產生單片機工作所需要的時鍾信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鍾信號控制下嚴格地按時序進行工作。通過在晶元的外部XTAL1和XTAL2兩個引腳跨接晶體振盪器和微調電容,形成反饋電路,就構成了一個穩定的自激振盪電路。時鍾電路為單片機產生時鍾脈沖序列,本設計中採用的晶振頻率為12MHz,電容為33pF。
2.1.5 復位電路
復位電路用於產生復位信號,通過RST引腳送入單片機,復位是單片機的初始操作,其主要功能是:為一些專用寄存器設置初始狀態、程序狀態字PSW清0、程序計數器PC被賦值為0000H等,除了進入系統的正常初始化之外,當由於程序運行出錯或操作錯誤使系統處於死鎖狀態時,為擺脫困境,也需安裝復位鍵以重新啟動。RST引腳是復位信號的輸入端,復位信號是高電平有效,完成復位操作共需要24個狀態周期,復位結束後,單片機從地址0000H單元開始執行程序,SP為07H,其它寄存器大多數被置為00H,本設計使用頻率為12MHz的晶振,所以復位信號持續時間應超過2μs才能完成復位操作。復位電路分為上電復位、按鍵復位、按鍵脈沖復位三種,本次課程設計採用的是按鍵復位。
2.1.6 單片機最小系統
它採用單片機AT89S52晶元,能實現基本I/O口實驗,定時計數器實驗等等。具有單片機並口的輸入、輸出的功能特點。
2.2 電路原理圖
電路原理圖見附錄一所示。
2.3 電路PCB圖
電路PCB頂層圖見附錄二所示;
電路PCB頂層圖見附錄三所示。
2.4 元器件布局圖
元器件布局圖見附錄四所示。
2.5 元器件清單
元器件清單見附錄五所示。
3 交通燈軟體系統的設計
3.1 單片機的使用資源情況
3.1.1 硬體資源使用說明
P0口為二極體的控制端
P1口用作地址/數據匯流排
P2口用作地址/數據匯流排
P3.4、P3.6、P3.7口線作為鍵盤輸入端
採用了INTO外部中斷
既在AT89S52的P0口用來接十二個發光二極體的陰極,控制其亮與滅,P1口和P2口外接由2個LED數碼管(LED1、LED0)構成的顯示器,用P2口作LED的段碼輸出口(P2.0~P2.7對應於LED的a~dp),P1口作LED的位控輸出線(P1.1、P1.0分別對應於LED1、LED0),其中在P1的串列口外接2個三極體作為顯示驅動,顯示為2個數碼管(LED0~LED1)進行動態顯示。P3口外接三個個按鍵K1、K2、K3(分別對應於P3.4、P3.7、P3.6口)用於調整顯示介面電路。
3.1.2 交通燈的分配表
交通燈的口線分配如表3.1所示,「1」表示送高電平,「0」表示送低電平。
表3.1 交通燈分配表
P0.2 東西綠燈 1 1 0 1
P0.3 東西黃燈 1 1 1 0
P0.4 東西紅燈 0 0 1 1
P0.5 南北紅燈 1 1 0 0
P0.6 南北黃燈 1 0 1 1
P0.7 南北綠燈 0 1 1 1
控制碼 6FH AFH DBH D7H
狀態說明 南北放行,東西禁止 南北警告,東西禁止 南北禁止,東西放行 南北禁止,東西放行
3.2 軟體模塊功能介紹
主程序模塊的主要任務是程序的初始化顯示「P.P.」,當沒任何鍵按下時,顯示模塊將一直不變,交通燈全部是熄滅的,當K0鍵按下並松開後開始倒計時,
其中在時間顯示的過程中判斷是否有K0、K1和K2鍵按下,當再次按下K0時,顯示將重新開始倒計時,如果是K1按下,將顯示「P.」,並且發光二極體全部熄滅,如果是K2按下,數碼管將開始十秒倒計時,並且東西南北全部亮起紅燈。
3.3 程序流程圖
主程序的流程圖如圖3.1所示,按鍵判斷程序流程圖如圖3.2所示
圖3.1 主程序流程圖
圖3.2 判斷按鍵程序流程圖
3.4 程序清單
程序清單詳見附錄六 。
4 設計總結
4.1 使用說明
本實驗主要是利用單片機AT89S52、數碼管和發光二極體組成,整個電路結構比較簡單,它能實現以下幾個功能:
時間的顯示。
紅黃綠燈的發光與熄滅。
具體操作說明如下: 當交通燈上電或按鍵復位後能自動顯示系統提示符「P.」,進入准備工作狀態。當按下啟動按鈕K1並釋放後,數碼管顯示將會從「60」開始倒計時,每隔一秒減1,此時南北方向開始一直亮綠燈,東西方向一直亮紅燈,直到顯示為「00」時,數碼管將會從「03」開始倒計時,每隔一秒減1,此時南北方向沒隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為「00」時,數碼管將會從「30」開始倒計時,此時南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為「00」時,數碼管又將從「03」開始倒計時,此時南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當沒有其他鍵按下時,交通燈將這樣一直循環下去。當按下結束鍵K2並釋放後,數碼管將顯示「P.」,東西南北方向無燈亮,當有其它鍵按下時,就退出,去執行該鍵的鍵功能。當按下緊急鍵K3並釋放後,數碼管將顯示「10」,並且每隔一秒就減1,東西南北方向全部紅燈亮,當沒亮到顯示「00」就有其它鍵按下時,就退出,執行該鍵的鍵功能,當顯示到「00」時,就會自動退出中斷繼續完成主程序。
4.2 誤差分析
本次課程設計的誤差就在於顯示時間,我採用的是調用延時程序來讓顯示器上數字共顯示一秒鍾,而循環一次的時間並不僅僅只是2次調用延時程序的時間,其間CPU還執行其它指令,例如說將緩存區的內容送給累加器A、查表指令、將段控碼送給P2口等等,因為它們都是微秒級的,而延時程序是毫秒級的,因此在計算的過程中就可以省略了,每次循環除兩次調用延時程序外,所用時間為22微秒,而顯示一秒鍾共循環了50次,因此在顯示器上只需要顯示1秒數字,事實上多顯示了1100微秒,誤差率=1.1%。
4.3 設計體會
經過一個多星期的時間,終於完成了這次的課程設計。在這期間,其他同學提出了許多寶貴的意見,使這次設計終於完滿成功了。
我覺得作為一名自動化專業的學生,單片機的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對於這門課懂的並不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的「學習」,在同學的幫助和講解下,漸漸對這門課逐漸產生了些許的興趣,自己開始主動學習並逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。
經過這次課程設計,也讓我更加深刻的認識到學好單片機的重要意義。當今單片機滲透到我們生活的各個領域比如從導彈的導航裝置、飛機上各種儀表的控制、計算機的網路通訊與數據傳輸、自動控制領域的機器人、智能儀表、醫療器械、工業自動化過程的實時控制和數據處理等等到我們生活中接觸到的各種智能IC卡、民用豪華轎車的安全保障系統、錄像機、攝像機、全自動洗衣機的控制以及程式控制玩具、電子寵物等等,這些都離不開單片機。它主要是作為控制部分的核心部件。因此,單片機的學習、開發在各行各業異常重要。在今後的學習中,我會更加努力的學習鞏固單片機,為以後的工作打下堅固的基礎。
4.4 教學建議
在王韌老師的嚴格要求與耐心指導下,經過一個學期對單片機技術這門課程的學習,使我對單片機這一技術的應用有了一定的了解,並對單片機的學習產生了濃厚的興趣。
通過本次單片機控制交通燈的設計,結合本人的學習過程與切身感受向老師提出以下幾點教學意見:希望老師以後能夠在一開始教這門課的時候就讓整個班分好小組,讓那些對單片機比較熟悉的同學幫助基礎較差的同學,那樣可以提高學習的效率與熱情;另外,王老師可以多介紹些與單片機相關的資料書給學生,培養學生查閱資料書的能力;最後一點,就是王老師在單片機擴展方面不必講解的過細,重點在於引導思路,形成單片機的整體框架結構。
附錄一 電路原理圖
附錄二 PCB頂層圖
附錄三 PCB底層圖
附錄四 元器件布局圖
附錄五 交通燈元器件清單
元器件及材料名稱 規格 數目 備注
AT89S52加底座 1
四位一體共陽數碼管加底座 2 0.5寸
晶振 12MHz 1 三晶
發光二極體 大個的 9
單排插 40腳 1
三極體 9012 9
蜂鳴器 1 5V
小按鍵 9 6*6*4.3mm
下載口座子 十芯 1 FC-10P
18b20溫度感測器 1
六腳按鍵開關 1 6*6*4.3mm
Usb電源線加介面 1 USB線加USB介面
電阻 200 1
電阻 4.7K 1
電阻 1K 3
電阻 470 24
電解電容 22uf 1
瓷片電容 33pf 2
排阻 10k 2
短路帽 3
杜邦線8P 1
PCB板子 150mm*200mm 1
電源白色插座 1
附錄六 程序清單
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP LOOP1
ORG 0030H
MAIN: MOV PSW, #00H; 初始化
MOV SP, #7FH
MOV TMOD, #10H;
MOV TH1, #3CH;
MOV TL1, #0B0H;
MOV TH0, #0FCH;
MOV TL0, #18H;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
MOV R6, #32H;
MOV R5, #05H;
MOV R4, #39H;
MOV R1, #20;
SETB EA;
SETB ET1;
PP: LCALL DIR;
START: LCALL KEY;
JB 20H.0, K0;
LJMP PP;
K0: MOV R4, #39H;
MOV R1, #20;
SETB TR1;
MOV 78H, #07H;
MOV 79H, #05H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
LCALL DIR;
CYCLE0: MOV P3, #0DEH;主綠副紅
JB 20H.2, OUT;
KK0: JB 20H.1, JINJI;
CJNE R4, #00, CYCLE0;延時60秒
MOV R4, #03H;
MOV 78H, #03H;
MOV 79H, #00H;
CYCLE1: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE1;
CYCLE2: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE2;
CJNE R4, #00H, CYCLE1;
MOV R4, #1EH;
MOV 78H, #07H;
MOV 79H, #02H;
CYCLE3: MOV P3, #0F3H;主紅副綠
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R4, #00, CYCLE3;延時30秒
MOV R4, #03H;
MOV 78H, #03H;
MOV 79H, #00H;
CYCLE4: MOV P3, #0DFH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #10, CYCLE4;
CYCLE5: MOV P3, #0DDH;
JB 20H.2, OUT;
JB 20H.1, JINJI;
CJNE R1, #20, CYCLE5;
CJNE R4, #00H, CYCLE4;
MOV R4, #39H;
LJMP K0;
JINJI: MOV R4, #10;緊急車輛按鍵
CYCLE6: MOV P3, #0DBH
CJNE R4, #00, CYCLE6;
LJMP K0;
OUT: MOV P3, #0FFH;
MOV 78H, #11H;
MOV 79H, #10H;
MOV 7AH, #10H;
MOV 7BH, #10H;
MOV 7CH, #10H;
MOV 7DH, #10H;
MOV 7EH, #10H;
MOV 7FH, #10H;
MOV R7, #0FAH;
LJMP PP;
DIR: PUSH DPH; 顯示子程序
PUSH DPL;
PUSH ACC;
PUSH PSW;
SETB RS0;
CLR RS1;
MOV R0, #78H;
MOV R3, #0FEH;
MOV A, R3;
LD0: MOV P2, A;
MOV DPTR, #TABLE;
MOV A, @R0;
MOVC A, @A+DPTR;
MOV P0, A;
LCALL DELAY;
INC R0;
MOV A, R3;
JB ACC.7, LD1;
RL A;
MOV R3, A;
LJMP LD0;
LD1: CLR RS0; 恢復當前通用寄存器組組號
CLR RS1;
POP PSW;
POP ACC; 恢復現場
POP DPL;
POP DPH;
RET;
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H; 0--6
DB 0F8H,80H,90H,88H,83H,0C6H,0A1H; 7--D
DB 86H,8EH,0FFH,0CH; E--F,滅,P.
KEY: LCALL KEYCHULI;鍵掃程序
JZ EXIT;
LCALL XX0;
LCALL KEYCHULI
JZ EXIT;
MOV B, 20H;
KEYSF: LCALL KEYCHULI;
JZ KEY1;
LCALL XX0;
LJMP KEYSF;
KEY1: MOV 20H, B;
EXIT: RET;
KEYCHULI: MOV P1, #0FFH;
MOV A, P1;
CPL A;
ANL A, #0FH;
MOV 20H, A;
RET;
DELAY: DJNZ R7, DELAY;顯示延時子程序
MOV R7, #0FAH;
DJNZ R5, DELAY;
MOV R5, #05H;
RET;
; 定時1秒中斷程序:
LOOP1:
MOV TH1, #3CH;定時器0賦初值,定時50ms
MOV TL1, #0B0H;
LCALL DIR;
LCALL KEY;
DJNZ R1, RETURN;
DEC R4;
MOV R1, #20;
MOV R0, #79H;
LCALL DADD1;
RETURN: RETI;
; 去抖延時子程序:
XX0: DJNZ R7, XX0;
MOV R7, #0FAH;
DJNZ R6, XX0;
MOV R6, #32H;
RET;
減一子程序:
DADD1: MOV A, @R0;
DEC R0;
SWAP A;
ORL A, @R0;
SUBB A, #01H;
DA A;
MOV R2, A;
ANL A, #0FH;
MOV @R0, A;
MOV A, R2;
INC R0;
ANL A, #0F0H;
SWAP A;
MOV @R0, A;
RET;
END
❻ 求解單片機課程設計,簡易按鍵操作游戲。原理及其材料
單片機的外部結構:1.DIP40雙列直插;52.P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)3.電源VCC(PIN40)和地線GND(PIN20);4.高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)5.內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6.程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)7.P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1單片機內部I/O部件:(所為學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務)1.四個8位通用I/O埠,對應引腳P0、P1、P2和P3;2.兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)3.一個串列通信介面;(SCON,SBUF)4.一個中斷控制器;(IE,IP)針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。C語言編程基礎:1.十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。2.如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。3.++var表示對變數var先增一;var—表示對變數後減一。4.x|=0x0f;表示為x=x|0x0f;5.TMOD=(TMOD&0xf0)|0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。6.While(1);表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P1.32.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P1_3=1;//給P1_3賦值1,引腳P1.3就能輸出高電平VCC5.While(1);//死循環,相當LOOP:gotoLOOP;6.}注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。在某引腳輸出低電平的編程方法:(比如P2.7引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P2.72.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P2_7=0;//給P2_7賦值0,引腳P2.7就能輸出低電平GND5.While(1);//死循環,相當LOOP:gotoLOOP;6.}在某引腳輸出方波編程方法:(比如P3.1引腳)代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P3.12.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.While(1)//非零表示真,如果為真則執行下面循環體的語句5.{6.P3_1=1;//給P3_1賦值1,引腳P3.1就能輸出高電平VCC7.P3_1=0;//給P3_1賦值0,引腳P3.1就能輸出低電平GND8.}//由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波9.}將某引腳的輸入電平取反後,從另一個引腳輸出:(比如P0.4=NOT(P1.1))代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.12.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P1_1=1;//初始化。P1.1作為輸入,必須輸出高電平5.While(1)//非零表示真,如果為真則執行下面循環體的語句6.{7.if(P1_1==1)//讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC8.{P0_4=0;}//給P0_4賦值0,引腳P0.4就能輸出低電平GND2008-11-2110:57回復chen33chen10位粉絲2樓9.else//否則P1.1輸入為低電平GND10.//{P0_4=0;}//給P0_4賦值0,引腳P0.4就能輸出低電平GND11.{P0_4=1;}//給P0_4賦值1,引腳P0.4就能輸出高電平VCC12.}//由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平13.}將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:(比如P2=NOT(P3))代碼1.#include//該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P32.voidmain(void)//void表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口3.{4.P3=0xff;//初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平5.While(1)//非零表示真,如果為真則執行下面循環體的語句6.{//取反的方法是異或1,而不取反的方法則是異或07.P2=P3^0x0f//讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出8.}//由於一直為真,所以不斷將P3取反輸出到P29.}注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。第一節:單數碼管按鍵顯示單片機最小系統的硬體原理接線圖:1.接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2.接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF3.接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理4.接配置:EA(PIN31)。說明原因。發光二極的控制:單片機I/O輸出將一發光二極體LED的正極(陽極)接P1.1,LED的負極(陰極)接地GND。只要P1.1輸出高電平VCC,LED就正向導通(導通時LED上的壓降大於1V),有電流流過LED,至發LED發亮。實際上由於P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過LED的電流小於(5V-1V)/10K=0.4mA。只要P1.1輸出低電平GND,實際小於0.3V,LED就不能導通,結果LED不亮。開關雙鍵的輸入:輸入先輸出高一個按鍵KEY_ON接在P1.6與GND之間,另一個按鍵KEY_OFF接P1.7與GND之間,按KEY_ON後LED亮,按KEY_OFF後LED滅。同時按下LED半亮,LED保持後松開鍵的狀態,即ON亮OFF滅。代碼1.#include2.#defineLEDP1^1//用符號LED代替P1_13.#defineKEY_ONP1^6//用符號KEY_ON代替P1_64.#defineKEY_OFFP1^7//用符號KEY_OFF代替P1_75.voidmain(void)//單片機復位後的執行入口,void表示空,無輸入參數,無返回值6.{7.KEY_ON=1;//作為輸入,首先輸出高,接下KEY_ON,P1.6則接地為0,否則輸入為18.KEY_OFF=1;//作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為19.While(1)//永遠為真,所以永遠循環執行如下括弧內所有語句10.{11.if(KEY_ON==0)LED=1;//是KEY_ON接下,所示P1.1輸出高,LED亮12.if(KEY_OFF==0)LED=0;//是KEY_OFF接下,所示P1.1輸出低,LED滅13.}//松開鍵後,都不給LED賦值,所以LED保持最後按鍵狀態。14.//同時按下時,LED不斷亮滅,各佔一半時間,交替頻率很快,由於人眼慣性,看上去為半亮態15.}數碼管的接法和驅動原理一支七段數碼管實際由8個發光二極體構成,其中7個組形構成數字8的七段筆畫,所以稱為七段數碼管,而餘下的1個發光二極體作為小數點。作為習慣,分別給8個發光二極體標上記號:a,b,c,d,e,f,g,h。對應8的頂上一畫,按順時針方向排,中間一畫為g,小數點為h。我們通常又將各二極與一個位元組的8位對應,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相應8個發光二極體正好與單片機一個埠Pn的8個引腳連接,這樣單片機就可以通過引腳輸出高低電平控制8個發光二極的亮與滅,從而顯示各種數字和符號;對應位元組,引腳接法為:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。如果將8個發光二極體的負極(陰極)內接在一起,作為數碼管的一個引腳,這種數碼管則被稱為共陰數碼管,共同的引腳則稱為共陰極,8個正極則為段極。否則,如果是將正極(陽極)內接在一起引出的,則稱為共陽數碼管,共同的引腳則稱為共陽極,8個負極則為段極。以單支共陰數碼管為例,可將段極接到某埠Pn,共陰極接GND,則可編寫出對應十六進制碼的七段碼表位元組數據
❼ 能用74HC164擴展20個io口嗎要求每個io口都能獨立使用,164沒有片選信號,如何控制
可以,但是得從微控制器上給出來兩路控制信號。用3片74HC164形成一個串轉並的移位寄存器。接的時候將74HC164的CP信號並聯,AB信號並聯,片1AB信號接微控制器作為串列數據輸入端,片1的輸出QH接片2的AB,片2的輸出QH接片3的AB。3片164最多可以控制24個二極體。具體連接電路可以隨便找一本單片機的書或網搜74HC164控制的串列LED顯示。給你推薦一本書上可以參考一下:《單片機課程設計實例指導》 李光飛 北航出版社 第35頁左右