版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第7章
數(shù)碼管動態(tài)顯示作者:黃克亞2025年5月本章概要CONTENTS數(shù)碼管工作原理數(shù)碼管動態(tài)顯示時間項目實施數(shù)碼管編碼方式數(shù)碼管動態(tài)顯示學(xué)號項目實施數(shù)碼管顯示方式7.1數(shù)碼管顯示接口在單片機應(yīng)用系統(tǒng)中,LED過于簡單,LCD驅(qū)動相對復(fù)雜,數(shù)碼管顯示清晰,成本低廉,配置靈活,且單片機接口簡單,編程容易。,如果需要顯示的內(nèi)容只有數(shù)字和某些字母,使用數(shù)碼管是一種較好的選擇。7.1數(shù)碼管顯示接口7.1.1數(shù)碼管工作原理7.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式當(dāng)LED數(shù)碼管與微控制器相連時,一般將LED數(shù)碼管的各筆段引腳a、b、…、g、dp按某一順序接到MCU某一個并行I/O口D0、D1、……D7,當(dāng)該I/O口輸出某一特定數(shù)據(jù)時,就能使LED數(shù)碼管顯示出某個字符。
例如,要使共陽極LED數(shù)碼管顯示“0”:LED數(shù)碼管的編碼方式有多種:(1)按小數(shù)點計否可分為七段碼和八段碼;(2)按公共端連接方式可分為共陰字段碼和共陽字段碼,計小數(shù)點的共陰字段碼與共陽字段碼互為反碼;(3)按a、b、…、g、dp編碼順序是高位在前,還是低位在前,又可分為順序字段碼和逆序字段碼7.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式顯示碼的確定dpgfedcbaabcdefgdp共陰極型:a~g、Dp各筆段接控制端,接高電平時發(fā)光,低電平時不發(fā)光,控制某幾段筆段發(fā)光,就能顯示出某個數(shù)碼或字符。共陽極型:是將各段發(fā)光二極管的正極連在一起,作為公共端COM,接低電平時發(fā)光,高電平時不發(fā)光,7.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g1f0e0d0c0b0a00xC07.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g1f1e1d1c0b0a10xF97.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f1e0d0c1b0a00xA47.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f1e1d0c0b0a00xB07.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f0e1d1c0b0a10x997.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f0e1d0c0b1a00x927.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f0e0d0c0b1a00x827.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g1f1e1d1c0b0a00xF87.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f0e0d0c0b0a00x807.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式abcdefgdpdp1g0f0e1d0c0b0a00x907.1數(shù)碼管顯示接口7.1.2數(shù)碼管編碼方式顯示數(shù)字共陰順序小數(shù)點暗共陽順序小數(shù)點亮共陽順序小數(shù)點暗dpgfedcba16進制0001111110x3F0x400xC01000001100x060x790xF92010110110x5B0x240xA43010011110x4F0x300xB04011001100x660x190x995011011010x6D0x120x926011111010x7D0x020x827000001110x070x780xF88011111110x7F0x000x809011011110x6F0x100x90共陰和共陽LED數(shù)碼管八段編碼表7.1數(shù)碼管顯示接口7.1.3數(shù)碼管顯示方式LED數(shù)碼管顯示電路在嵌入式應(yīng)用系統(tǒng)中可分為靜態(tài)顯示和動態(tài)顯示兩種。每一位顯示器的字段需要一個8位I/O口控制,顯示時,每一位字段碼分別從I/O控制口輸出,保持不變直至CPU刷新顯示為止。靜態(tài)顯示7.1數(shù)碼管顯示接口7.1.3數(shù)碼管顯示方式將顯示各位的所有相同字段線連在一起,由一個8位I/O口控制,而每一位的公共端由另一個I/O口控制。每一位要想顯示不同的內(nèi)容,必須要采取輪流顯示的方式。動態(tài)顯示7.1數(shù)碼管顯示接口7.1.3數(shù)碼管顯示方式數(shù)碼管動態(tài)顯示動畫演示7.2項目分析本節(jié)進行數(shù)碼管動態(tài)顯示學(xué)號項目分析。7.2項目分析項目分析—目標(biāo)是在六位數(shù)碼管上顯示每位同學(xué)的學(xué)號選中數(shù)碼管1PE15=0送顯示碼PE=0x7FFFPG=0x00F9數(shù)碼管DS1DS2DS3位選碼0x7FFF0xBFFF0xDFFF數(shù)碼管DS4DS5DS6位選碼0xEFFF0xF7FF0xFBFF數(shù)碼管位選碼表7.3項目實施對項目實施過程進行詳細展示。7.3項目實施第一步:復(fù)制第6章創(chuàng)建工程模板文件夾到桌面,并將文件夾改名為“5DsgShow”,將原工程模板編譯一下,直到?jīng)]有錯誤和警告為止。項目實施4BeepKey5DsgShow第二步:點擊“File/New”新建兩個文件,將其改名為dsgshow.c和dsgshow.h并保存到工程模板下的APP文件夾中。并將dsgshow.c文件添加到APP項目組下。7.3項目實施第三步:在dsgshow.c文件中輸入如下源程序,在程序中首先包含dsgshow.h頭文件,然后創(chuàng)建2個函數(shù),分別為DsgShowInit()函數(shù)和DsgShowNum()函數(shù)。項目實施#include"dsgshow.h“voidDsgShowInit(){GPIO_InitTypeDefGPIO_InitStructure;//打開GPIOE和GPIOG時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOG,ENABLE);//配置GPIOE為輸出推挽模式,為避免后續(xù)中斷產(chǎn)生誤動作,只初始化高8位
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12|GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOE,&GPIO_InitStructure);//配置GPIOG為輸出推挽模式GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOG,&GPIO_InitStructure);}參考程序代碼7.3項目實施項目實施voidDsgShowNum()//數(shù)碼管顯示六位學(xué)號{
u16i;
while(1)
{
GPIO_Write(GPIOE,0x7FFF); //選中第一個數(shù)碼管
GPIO_Write(GPIOG,0xc0); //送第一數(shù)字的段碼
for(i=0;i<400;i++); //延時比較短的時間
GPIO_Write(GPIOE,0xBFFF);
GPIO_Write(GPIOG,0xf9);
for(i=0;i<400;i++);
GPIO_Write(GPIOE,0xDFFF);
GPIO_Write(GPIOG,0xa4);
for(i=0;i<400;i++);
GPIO_Write(GPIOE,0xEFFF);
GPIO_Write(GPIOG,0xb0);
for(i=0;i<400;i++);
GPIO_Write(GPIOE,0xF7FF);
GPIO_Write(GPIOG,0x99);
for(i=0;i<400;i++);
GPIO_Write(GPIOE,0xFBFF);
GPIO_Write(GPIOG,0x92);
for(i=0;i<400;i++);
}}參考程序代碼7.3項目實施第四步:在dsgshow.h文件中輸入如下源程序,其中條件編譯格式不變,只要更改一下預(yù)定義變量名稱即可,需要將我們剛定義函數(shù)的聲明加到頭文件當(dāng)中。項目實施參考代碼如下:#ifndef_DSGSHOW_H#define_DSGSHOW_H#include"stm32f10x.h"voidDsgShowInit(void);voidDsgShowNum(void);#endif第五步:在main.h文件的中間部分“#include"dsgshow.h"”語句,即包含dsgshow.h頭文件,任何時候程序中需要使用某一源文件中函數(shù),必須先包含其頭文件,否則編譯是不能通過的。main.h文件的源代碼如下所示。參考代碼如下:#ifndef_MAIN_H#define_MAIN_H#include"stm32f10x.h"#include"LED.h"#include"beepkey.h"#include"dsgshow.h"#endif7.3項目實施第六步:在main.c文件中輸入如下源程序,其中main函數(shù)就是二條語句,分別調(diào)用DsgShowInit()對GPIOE和GPIOG進行初始化,調(diào)用DsgShowNum()函數(shù)進行動態(tài)掃描,由于在DsgShowNum()函數(shù)已經(jīng)包含死循環(huán)結(jié)構(gòu),此處不需要重復(fù)構(gòu)建。第七步:編譯工程,如沒有錯誤,則會在MDK文件夾中Objects文件夾生成“Template.hex”文件,如有錯誤則修改源程序直至沒有錯誤為止。第八步:將生成的目標(biāo)文件通過ISP軟件下載到開發(fā)板微控制器的FLASH存儲器當(dāng)中,復(fù)位運行,檢查實驗效果。參考代碼如下:#include“main.h"intmain(){
DsgShowInit();
DsgShowNum(); }項目實施7.4項目拓展上一節(jié)中介紹的數(shù)碼管動態(tài)顯示程序編寫其實是很不專業(yè)的,其通用性也比較差,主要目的是讓大家能夠快速熟悉數(shù)碼管動態(tài)顯示控制方法。7.2項目分析項目分析—數(shù)碼管動態(tài)顯示時間本節(jié)將介紹一個新的實例,其項目任務(wù)是主程序賦值的三個變量:“hour”、“minute”、“second”的值顯示在六位數(shù)碼管上,并在小時個位和分鐘個位數(shù)字下面顯示一個點。因為本例中涉及到不同文件之間共享同一變量,這是我們前面沒有接觸過的,這一點我們需要注意。因為此項目是上一項目的擴展,所以工程文件和上一項目是完全一樣的,只是部分文件代碼有所改變,改動涉及填加、修改和刪除,現(xiàn)在改動之處一一列出,供大家參考。7.2項目分析項目分析—數(shù)碼管動態(tài)顯示時間改動1在main.c文件中定義三個外部變量,并在main()函數(shù)中對其賦初值。修改后的main.c文件程序如下:7.2項目分析項目分析—數(shù)碼管動態(tài)顯示時間改動2在dsgshow.c文件包含語句(#include"dsgshow.h")的下面,輸入如下語句:externu8hour,minute,second;聲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年煙草綜合行政招聘考試筆試試題(含答案)
- 2026年煙草零售門店設(shè)備日常巡檢內(nèi)勤煙草公司招聘考試筆試試題(含答案)
- 2026 年骨科術(shù)后嚴重壓瘡護理個案分享
- 2026年秋季開學(xué)第一課:新時代青年使命
- 研學(xué)旅行資料印刷采購合同書范本
- 2026年秋季車輛工程專業(yè)開學(xué)第一課 專業(yè)技能培養(yǎng)路徑
- 麻醉誘導(dǎo)后低血壓預(yù)測及預(yù)防的研究進展
- 電梯導(dǎo)軌安裝施工方案
- 2026年紅十字應(yīng)急救護知識競賽題庫附含答案
- 消防安全管理單位班組安全活動制度
- 2025-2030中國芋泥市場營銷推廣規(guī)模與未來投資效益行業(yè)深度調(diào)研及投資前景預(yù)測研究報告
- 釣魚基礎(chǔ)知識課件下載
- DB37-T 5310-2025《城鎮(zhèn)排水管渠養(yǎng)護維修服務(wù)規(guī)范》
- 超導(dǎo)材料進展-深度研究
- 石油化工壓力管道安裝工藝及質(zhì)量控制重點
- 滬粵版九年級物理 12.3 研究物質(zhì)的比熱容(學(xué)習(xí)、上課課件)
- 2024年中遠海運物流所屬寧波中遠海運物流有限公司招聘筆試參考題庫含答案解析
- 輸變電工程“7S”管理策劃
- 家庭醫(yī)生簽約服務(wù)考核表
- 酒店禮儀禮節(jié)培訓(xùn)
- QD系列切丁機說明書
評論
0/150
提交評論