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

正文內容

基于單片機的數(shù)碼管電子時鐘(文件)

2024-12-06 14:55 上一頁面

下一頁面
 

【正文】 :容 全靜態(tài)工作模式: 0Hz33MHz 2 個 16 位定時 /計數(shù)器 中斷可從空閑模式喚醒系統(tǒng) 同時, AT89S51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。 Vcc: 電源電壓 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉換地址 (低 8 位 )和數(shù)據(jù)總線復用,在訪問期間激活內部上拉電阻。對端口寫‘ 1’,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。 P2 口: P2 是一個帶有內部上拉電阻的 8 位雙向 I/O 口, P2 的輸出緩沖級可驅動(吸收或輸出電流 )4 個 TTL 邏輯門電路。 作輸入端時,被外部拉低的 P3 口將用上拉電阻輸出電流( In)。 RST:當振蕩器工作時, RST 引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。 ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時, ALE(地址鎖存允許 )輸出脈沖用于鎖存地址的低 8 位字節(jié)。如有必要,可通過對特殊功能寄存器( SFR)區(qū)中的 8EH 單元的 D0 位置位,可禁正 ALE 操作。 PSEN:程序儲存允許 (PSEN)輸出是外部程序存儲器的讀選通信號,當 AT89S51由外部程序存儲器取指令 (或數(shù)據(jù) )時,每個機器周期兩次 PSEN 有效,即輸出兩個脈沖。欲使 CPU 僅訪問外部程序存儲器 (地址為 0000HFFFFH), EA 端必須保持低電平 (接地 )。 中斷寄存器:各中斷允許控制位于 IE 寄存器, 5 個中斷源的中斷優(yōu)先級控制位于 IP 寄存器。 在 AT89S51,假如 EA 接至 Vcc(電源 +),程序首先執(zhí)行地址從 0000HOFFFH ( 4KB)內部程序存儲器,而執(zhí)行地址為 1000HFFFFH (60KB)的外部程序存儲器??撮T狗定時器 (WDT): WDT 是為了解決 CPU 程序運行時可能進入混亂或死循環(huán)而設置,它由一個 14bit 計數(shù)器和看門狗復位 SFR (WDTRST)構成。 12 第 3 章 數(shù)碼管電子時鐘硬件系統(tǒng)設計 系統(tǒng)整體方案設計 利用單片機( AT89S51)制作簡易電子時鐘,由六個 LED 數(shù)碼管分別顯示小時十位、小時個位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位。內含 CPU、 ROM、 RAM、 CTC、 INT及 I/O 接口的微控制器,芯片外部還配有復位電路、振蕩器蜂鳴器按鍵數(shù)碼管及發(fā)光二極管等電路,將這些器件焊接在一塊電路板上,組成的一臺最簡單的單片機控制系統(tǒng)。 ( 4) P1 口也可以作為下載程序的輸入口,與專用下載線相連 接通過 PC 機的并行口可以下載二進制碼或十六進制碼文件到單片機的 ROM 中。 ( 6) 40 芯插頭( JP1)的各個插針與 AT89S51 的各管腳一一對應,可以通過40 芯插頭擴展各種外圍接 口芯片或接口板。 單片機內設有一個由反向放大器所構成的震蕩電路, XTAL1 和 XTAL2 分別為振蕩電路的輸入端和輸出端。晶體可以在 — 12MHz 之 間選擇,電容值在 5PF— 30PF 之間選擇,電容的大小可起頻率微調作用。 MCS51 內部有一個可以構成振蕩器的高增益反相放大器,引腳 XTAL1 和 XTAL2 分別是此放大器輸入端和輸出端。對接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性,起振的快速性和溫度的穩(wěn)定性,晶振頻率可在 之間任選,電容 C1 和 C2 的典型值在 20pF100pF 之間選擇,考慮到本系統(tǒng)對于外接晶體頻率穩(wěn)定性要求不高,所以采取比較廉價的 陶瓷諧 振 器,根據(jù)調試電容選擇 30pF。在振蕩器運行的情況下,要實現(xiàn)復位操作,必須使 RST 引腳至少保持兩個機器周期( 24 個振蕩器周期)的高電平。當 RST 引腳返回低電平以后,CPU 從 0 地址開始執(zhí)行程序。復位電路中的 RC 參數(shù)通常由實驗調整。單片機冷啟動后,片內 RAM 為隨機值,運行中的復位操作不改變片內 RAM 區(qū)中的內容, 21 個特殊功能寄存器復位后的狀態(tài)為確定值,見下表 31。 17 圖 33復位電路 如圖 33 所示,復位電路主要由型號為 10UF/16V 的電解電容,型號為 104 的瓷片電容, 10K 的電阻以及按鍵 S 構成, S 接芯片的相應引腳 RST,當開關按下時引腳 RST 為高電平 1,斷開時引腳為低電平 0。如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。如圖 35 所示。例如,七段顯示器的 a、 b、 c、 d、e、 f 導通, g 截止,則顯示 0、這種顯示器方式,每一位都需要有一個 8 位輸出口控制,所以占用硬件多,一般用于顯示器位數(shù)較小的場合。調整電流和時間的參數(shù),實現(xiàn)亮度較高、較穩(wěn)定的顯示。 電子電路中的電源一般是低壓直流電,所以要想從 220 伏市電變換成直流電,應該先把 220 伏交流變成低壓交流電,再用整流電路變成脈動的直流電,最后用濾波電路濾除脈動直流電中的交流成分后才能得到直流電。 調試要點: 首先確保各器件的完好性,其次檢測各芯片的電源線和地線是否接觸良好,然后焊接器件,接好電源用萬用表檢測各電源端、地端的狀態(tài)是否正常。 制作心得 在這次課程設計的調試過程中,我遇到很多問題,如:由于跳轉指令出錯,導致整個程序在運行時進入死循環(huán),修改時沒有根據(jù)流程盲目查找原因浪費許多時間;長時間之后,時鐘秒的顯示與現(xiàn)實時間相差 1s 多,久而久之就不會很準確的計時,由于定時器定時周期比 1s 稍大一點,因此時鐘顯示慢慢會有所偏差,添加一個時鐘芯片來取消誤差,對時間精確顯示;該電路缺少整點報時及鬧鐘功能,由于能力和時間問題只能到此為止,很是遺憾,但在查找資料的過程中學到了許多,同時在協(xié)作過程中增進同學間的友誼。他正直樂觀的人格魅力一直感染著我,這必將激勵我在今后的工作和生活中不斷前進。在我求學的過程中他們付出的不僅僅是辛勤的勞動和汗水,而是世界上最崇 高、最偉大的愛。 sbit ADC_ALE = P3^1。 sbit ADC_ADDB = P3^5。 uchar t[]= Alcohol : 。 sbit LcdEn = P2^2。 _nop_()。 return DBPort。 _nop_()。 _nop_()。 } //設置顯示模式 ************************************************************ define LCD_SHOW 0x04 //顯示開 define LCD_HIDE 0x00 //顯示關 define LCD_CURSOR 0x02 //顯示光標 define LCD_NO_CURSOR 0x00 //無光標 define LCD_FLASH 0x01 //光標閃動 define LCD_NO_FLASH 0x00 //光標不閃動 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 //8 位數(shù)據(jù)端口 ,2 行顯示 ,5*7 點陣 LCD_Write(LCD_COMMAND,0x38)。 //AC 遞增 , 畫面不動 } //液晶字符輸入的位置 ************************ void GotoXY(unsigned char x, unsigned char y) { if(y==0) LCD_Write(LCD_COMMAND,0x80|x)。) { LCD_Write(LCD_DATA,*str)。 //百位 AlcoBuffer[1]=alco_value/10%10+39。 //個位 AlcoBuffer[3]=39。 AlcoBuffer[5]=39。icount。 } /**************ADC0809 初始化 ************/ void init_ADC0809() { ADC_START = 0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ADC_ADDB = 0。 _nop_()。 adc_buf = ADC_DATA。 //液晶字符顯示位置 Print(t)。039。 //液晶字符顯示位置 Print(AlcoBuffer+2)。 //液晶字符顯示位置 Print(AlcoBuffer+1)。 //掃描延時 } void main() { 32 LCD_Initial()。 while(1) { ADC_0809()。 } } 33 附 錄 3 34 附 錄 4 。 //轉換為顯示數(shù)值 show_LCD()。 //ADC0809 初始化 ADC_0809()。 Print(AlcoBuffer)。 Print( )。 Print( )。039。 alco_value = adc_buf*。 while(!ADC_EOC)。 31 _nop_()。 ADC_ALE = 0。 ADC_START = 0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。j120。 } 30 // 延時程序 void Delay1ms(unsigned int count) { unsigned int i,j。 AlcoBuffer[4]=39。 //十位 AlcoBuffer[2]=alco_value%10+39。 } } // 轉換為 LCD1602 顯示值 void alco_to_str() { AlcoBuffer[0]=alco_value/100+39。 } //將字符輸出到液晶顯示 void Print(unsigned char *str) { while(*str!=39。 //開啟顯示 , 無光標 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 } //初始化 LCD************************************************************ void LCD_Initial() { LcdEn=0。 _nop_()。_nop_()。 LcdRs=style。 _nop_()。 //P0=0x80,P1=0x90,P2=0xA0,P3= // 內 部 等 待 函 數(shù)************************************************************************** unsigned char LCD_Wait(void) { LcdRs=0。 /***********1602 液晶顯示部分子程序 ****************/ //Port Definitions********************************************************** sbit LcdRs = P2^0。 ucha
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1