freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于avr單片機的電視標(biāo)準(zhǔn)制式圖象發(fā)生器(編輯修改稿)

2025-07-12 15:18 本頁面
 

【文章內(nèi)容簡介】 16 位設(shè)計 ( 即允許 16 位的 PWM) ? 2 個獨立的輸出比較單元 ? 雙緩沖的輸出比較寄存器 ? 一個輸入捕捉單元 ? 輸 入捕捉噪聲抑制器 ? 比較匹配發(fā)生時清除寄存器 ( 自動重載 ) ? 無干擾脈沖,相位正確的 PWM ? 可變的 PWM 周期 ? 頻率發(fā)生器 ? 外部事件計數(shù)器 綜述 大多數(shù)的寄存器和位定義以通用的方式表示。小寫 “n” 表示 T/C 序號,小寫 “x” 表示輸出比較通道號。但是在寫程序時要用完整的、精確的名稱。如用 TCNT1 表示訪問 T/C1計數(shù)器值等。 12 下面對用到的寄存器進行介紹。 (1). T/C1 控制寄存器 A—— TCCR1A 說 明如下:位 7:6(COM1A1:0)用于設(shè)置通道 A 的比較輸出模式,位 5:4 (COM1B1:0) 用于設(shè)置通道 B 的比較輸出模式。 FOC1A,FOC1B 為強制輸出比較匹配, WGM11,WGM10 與 TCCR1B的 WGM13,WGM12 配合,用來設(shè)置 PWM輸出的模式。 (2). T/C1 控制寄存器 B—— TCCR1B 說明如下:ICNC1用來設(shè)置輸入噪聲抑制允許, ICES1用來選擇輸入觸發(fā)方式,可以選擇下降沿和上升沿。 CS12,CS11,CS10用來選擇時鐘源,可以選擇預(yù)分頻比例或外部時鐘。 (3). 定時 /計數(shù)器中斷屏蔽寄存器 —— TIMSK 說明如下: OCIE2 允許 T/C2 比較匹配中斷, TOIE2 允許 T/C2 溢出中斷。 TICIE1 為 T/C1輸入捕獲中斷允許標(biāo)志位,當(dāng) TICIE1 被設(shè)為“ 1”,將使能 T/C1 的輸入捕獲中斷。 OCIE1為 T/C1 輸出比較 A 匹配中斷允許標(biāo)志位,當(dāng) OCIE1A 被設(shè)為“ 1”,將使能 T/C1 的輸出比較 A匹配中斷。 OCIE1B 為 T/C1 輸出比較 B匹配中斷允許標(biāo)志位,當(dāng) OCIE1B 被設(shè)為“ 1”,將使能 T/C1 的輸出比較 B 匹配中斷。 TOIE1 為 T/C1 溢出中斷允許標(biāo)志位,當(dāng)TOIE1 被設(shè)為“ 1”,將使能 T/C1 溢出中斷。 (4). 定時 /計數(shù)器中斷標(biāo)志寄存器 —— TIFR 說明如下:ICF1 為 T/C1 輸入捕獲中斷允許標(biāo)志位。 OCF1A 為 T/C1 輸出比較 A 匹配中斷允許標(biāo)志位。 OCF1B 為 T/C1 輸出比較 B 匹配中斷允許標(biāo)志位。 TOV1 為 T/C1 溢出中斷允許標(biāo)志位,當(dāng) T/C 產(chǎn)生溢出時 TOV1 位被設(shè)為“ 1”。 (5)T/C1 計數(shù)寄存器 TCNT1H,TCNT1L 組成 T/C1 的計數(shù)器寄存器 TCNT1,該寄存器可以直接被 CPU 讀寫訪問。 下面著重要介紹 CTC 模式(比較匹配清零模式),用于產(chǎn)生行定時。 在 CTC 模式 13 (WGM13:0 = 4 或 12) 里 OCR1A 或 ICR1 寄存器用于調(diào)節(jié)計數(shù)器的分辨率。當(dāng)計數(shù)器的數(shù)值 TCNT1 等于 OCR1A(WGM13:0 = 4) 或等于 ICR1 (WGM13:0 = 12) 時,計數(shù)器清零。OCR1A 或 ICR1 定義了計數(shù)器的 TOP 值,亦即計數(shù)器的分辨率。這個模式使得用戶可以很容易地控制比較匹配輸出的頻率,也簡化了 外部事件計數(shù)的操作。計數(shù)器數(shù)值TCNT1 一直累加到 TCNT1 與 OCR1A 或 ICR1 匹配,然后 TCNT1 清零。利用 OCF1A 或 ICF1 標(biāo)志可以在計數(shù)器數(shù)值達(dá)到 TOP時產(chǎn)生中斷。在中斷服務(wù)程序里可以更新 TOP 的數(shù)值。CTC模式工作原理如圖 所示 。 圖 CTC模式的時序圖 . AVR 單片機的開發(fā) 用 C 語言代替匯編語言,進行單片機和嵌入式系統(tǒng)開發(fā),已成為一種趨勢。各 MCU制造商都委托軟件公司開發(fā)了 相應(yīng)的 C 編輯器。如支持 AVR 系列的 ICC 和 GCC,支持MCS51 系列的 C51,支持 MCS196 系列的 C196 等 。在國內(nèi)主要由廣州雙龍電子公司代理的 ICCAVR 編譯器,并提供相關(guān)的技術(shù)支持。 2. ICCAVR 編譯器 AVR可以選用以下任何一款高級 C語言開發(fā)工具: IARAVR編譯器 CodeVisionAVR編譯器 ,GCCAVR編譯器 .ICCAVR編譯器 . 本論文使用 ICCAVR編譯器。 ICCAVR 是一個綜合了編輯器和工程管理器的集成工作環(huán)境 IDE,其可在 WINDOWS9X/NT等下工作。 源文件全部被 組織到工程之中文件的編輯和工程的構(gòu)筑也在這個環(huán)境中完成編譯錯誤顯示在狀態(tài)窗口中并且當(dāng)你用鼠標(biāo)單擊編譯錯誤時光標(biāo)會自動跳轉(zhuǎn)到編輯窗口中引起錯誤的那一行這個工程管理器還能直接產(chǎn)生您希望得到的可以直接使用的 INTEL HEX 格式文件 INTEL HEX 格式文件可被大多數(shù)的編程器所支持用于下載程序到芯片中去。 ICCAVR 是一個 32 位的程序支持長文件名。 14 圖 34 程序調(diào)試窗口 首先簡單介紹匯編編譯器 :AVR Studio。它是 ATMEL公司提供的 AVR單片機的集成環(huán)境匯編級開發(fā)調(diào)試軟件 ,并且是免費軟件 .ATMEL AVR Studio集成開發(fā)環(huán)境 (IDE),包括了 AVR Assembler編譯器、 AVR Studio調(diào)試功能、 AVR Prog串行、并行下載功能和 JTAG ICE仿真等功能。 下圖 35是 AVR Studio 4的界面: 當(dāng)程序編寫完之后,需要進行仿真及調(diào)試 .ICCAVR 編譯器輸出的 COFF文件可以被 AVR Studio4 打開,進行軟件仿真。調(diào)試時可以在程序的適當(dāng)位置設(shè)置斷點,也可以添加變量觀察窗口,查看變量的值。程序運行方式可以單步進入、單步跳出或運行到斷點處,方便進行程 序調(diào)試。 4. 下載 AVR 單片機的程序可以用萬用編程器并行寫入,也可采用 ISP 在線下載編程方式用串行 ISP(通過 PC 機 RS232 口或打印機口)在線編程擦寫,不必將 IC 芯片拆下拿到萬用編程器上擦寫,而直接在電路板上進行程修改、燒寫等操作,對于程序的調(diào)試和升級多很方便。 15 在應(yīng)用時,要注意 Mega 系列必須寫熔絲位。燒熔絲時應(yīng)注意:熔絲位 SPINE 不能通過串行方式編程;熔絲位 CKOPT 的作用與 CKSEL 有關(guān)。熔絲位 BOOTSZ1..0 的默認(rèn)值定義的引導(dǎo)加載區(qū)為最大值 1024 字(熔絲位的設(shè)置如圖 所示)。下面是 ATmega16的熔絲位的設(shè)置的介紹: ATmega16 有兩個字節(jié)的熔絲位:熔絲位高字節(jié) (FHB)和熔絲位低字節(jié) (FLB)。熔絲位未編程的狀態(tài)為“ 1”,被編程后的狀態(tài)為“ 0” 。 功能如表 38所示: 表 37 熔絲位的功能表 熔絲位名稱 位 用 途 默認(rèn)值 OCDEN 7 編程時允許片上調(diào)試 1 JTAGEN 6 編程時允許 JTAG 下載 0(允許 JTAG 下載 ) SPINE 5 允許串行編程和數(shù)據(jù)下載 0 (允許 SPI 編程 ) CKOPT 4 晶振選項 1 EESAVE 3 芯片擦除時保護 E2PROM 1(E2PROM 無保護 ) BOOTSZ1 2 設(shè)置引導(dǎo)加載區(qū)大?。?512) 0 BOOTSZ0 1 設(shè)置引導(dǎo)加載區(qū)大小 0 BOOTRST 0 設(shè)置復(fù)位向量 1 BODLEVEL 7 BOD 觸發(fā)電平 1 BODEN 6 BOD 允許 1(禁止 BOD) SUT1 5 設(shè)置復(fù)位啟動延長時間 1 SUT0 4 設(shè)置復(fù)位啟動延長時間 0 CKSEL3 3 選擇時鐘源 0 16 CKSEL2 2 選擇時鐘源 0 CKSEL1 1 選擇時鐘源 0 CKSEL0 0 選擇時鐘 源 1 第四章 電視標(biāo)準(zhǔn)制式圖像發(fā)生器 總體設(shè)計 本設(shè)計利用 AVR 系列的 Mega16 單片機的定時功能產(chǎn)生行、場同步信號, 作為同步輸出端口, 作為視頻信號輸出端口,通過視頻 DAC 系統(tǒng),將同步信號和視頻信號合成為模擬全電視信號,然后通過示波器查看同步信號,并接到黑白電視機顯示。如圖 。 圖 系統(tǒng)示意圖 這個系統(tǒng)分為硬件設(shè)計和軟件編程兩部分。其中單片機軟件編程工作是主要的。軟件設(shè)計具體實現(xiàn)可以 分為同步產(chǎn)生、圖像內(nèi)容生成和圖像顯示三部分。下面分別予以闡述。 17 硬件設(shè)計 根據(jù) PAL制式的電平要求,同步負(fù)脈沖要求電平是 ,黑色電平為 0V,白色電平是 , 而單片機輸出的是 TTL 電平, 05V的電平范圍,這里有一個將 TTL 電平轉(zhuǎn)化為電視電平的問題。硬件部分應(yīng)用的是 DAC 數(shù)模轉(zhuǎn)換系統(tǒng)。該系統(tǒng)由三個電阻和兩個二極管構(gòu)成,完成同步信號和視頻信號的合成,來形成黑白全電視信號。二極管采用1N4148,其作用是輸出和輸入隔離,并和電阻配合,并產(chǎn)生同步負(fù)脈沖信號。而三個電阻中 75 歐的電阻有阻抗匹配的 作用,工作原理分析如下。設(shè)視頻輸出端口電壓為 v1,同步信號輸出電壓為 v2,合成的電視信號電壓為 v0。分析如下: 圖 DAC 數(shù)摸轉(zhuǎn)換電路 07501000 00201 ???????? vvvvv ( ) 推得 530515335310210 ??? ??v ( ) 若 v 1=v 2=0V,此時應(yīng)處于行、場同步階段, 計算得 v 0=,基本符合同步負(fù)脈沖的要求。 若 v 1=0V, v 2=5V,此時處于黑色顯示階段。計算得 v 0 = ,符合黑色電平的要求。 若 v 1=5V, v 2=0V,這種情況并不存在,屬于無效情況,程序中已進行避免。顯示完一行后,通過將視頻 端口置 0,避免了此種情況。 若 v 1=5V, v 2=5V,此時處于白色顯示階段。計算得 v 0=,基本符合白色電平的要求。 注意到與電視電平有 的直流偏移,這個可以通過 的耦合電容得到標(biāo)準(zhǔn)的電視電平,也可以不予以處理,電視 Video 接收端有耦合功能。 綜上,此電路經(jīng)過二極管和電阻的配合,可以完成將視頻信號和同步信號合成為全電視信號的功能。 18 軟件設(shè)計 單片機 軟件編程工作在本次設(shè)計中是非常主要的。具體實現(xiàn)可以分為同步產(chǎn)生、圖像內(nèi)容生成和顯示三部分。 同步信號生成 根據(jù) PAL 隔行掃描的時序,行 同步脈 沖 每 64 微秒 發(fā)生一次。在內(nèi)部晶振是 8Mhz的情況,可以利用 定時器 1 作計數(shù)器 , 在計數(shù)到 622 產(chǎn)生匹配中 斷。不過,如果使用 微秒 ,則行 同步 的周期為 623 個計數(shù)節(jié)拍 ,每 幀的時間接近 1/50 秒,因此 構(gòu)建一個 軟件 計數(shù) 器更容易 些。 如果從 正常程序 直接進入 中斷服務(wù)程序 , 則每次 進入的時間 有可能差幾個 機器周期 (一個 機器周期 是 125 納 秒 ,也就是差了幾百個納秒), 這個變 化 可能 在電視上 造成不可預(yù)料的毛刺。 解決辦法 是在中斷發(fā)生之前,使 CPU 休眠,并且把休眠指令放到一個 while 循環(huán),這個循環(huán)每個行周期執(zhí)行一次。行 1 到行 298是圖像顯示行,行 298到行 301是場消隱時間。在此期間,一些休眠指令分散到其中,保持同步準(zhǔn)確。同步信號中,從行 301 到行 313 作為場同步時間,每計到行計數(shù)器是313的時候,行計數(shù)器置 1,也就是開始下一幀。 按照行 ,場同步時序的要求,在行同步中斷服務(wù)程序中,首先將行計數(shù)器加 1,接著判斷是否是正常同步,還是場同步。若是正常同步,同步信號不需要翻轉(zhuǎn),也就是行同步 持續(xù)下去。若為場同步(從 298 行開始),同步信號翻轉(zhuǎn),有三行變成場同步脈沖。同時,每次進入中斷,都需要判斷是否到了一幀的結(jié)束,結(jié)束的話,將行計數(shù)器置 1,開始新一幀。同步信號生成流程圖如圖 4 .4 所示。 19 圖 44 同步信號流程圖 圖像顯示內(nèi)容生成 圖像內(nèi)容的生成實際上是填充顯示數(shù)組的過程。將要顯示的元素填充到顯示數(shù)組中,就可以逐行顯示數(shù)據(jù),從而通過監(jiān)視器查看相應(yīng)的效果。要顯示的圖像內(nèi)容通常有畫點 ,畫線,顯示字符。 以畫點為例。函數(shù)說明如下:輸入?yún)?shù),點的 X、 Y坐標(biāo)和點的類型(黑點,白點,反色點)。 X坐標(biāo)除以 8,得到行寄存器坐標(biāo), Y 坐標(biāo)乘以 8,以計算越過的行數(shù),兩者相加,就得到對應(yīng)顯示數(shù)組的下標(biāo)值,然后根據(jù)點的類型,將對應(yīng)點的位置置 1,清零或取反,從而實現(xiàn)了畫點功能。對應(yīng)程序如下: void video_pt(char x, char y, char c) { i=((int)x3) + ((int)y3)。 20 if (c==1) screen[i] = screen[i] | 1(7(x amp。 0x7))。 if (c==0) screen[i] = screen[i] amp。 ~(1(7(x amp。 0x7)))。 if (c==2) screen[i] = screen[i] ^ (1(7(x amp。 0x7)))。 } 輸出 5*7 字符到屏幕。點的 x,y為坐標(biāo) ,字符是在二維數(shù)組數(shù)組中一個索引值,在指定的位置輸出一個 5*7 字符。 void vi
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1