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

正文內容

微機原理課程設計論(編輯修改稿)

2024-07-09 13:09 本頁面
 

【文章內容簡介】 分分別加以說明。 MAX7219 驅動 對于時鐘電路的設計我們首先做的是數碼管驅動芯片 7219。通過7219 的驅動,是數碼管能顯示通過軟件設臵的時間。電路原理圖如下圖, MAX7219 與單片機的連接只需要 3 條線: LOAD( CS)片選引腳、 CLK 串行時鐘引腳、 DIN 串行數據引腳。其中 C1 為電源濾波電容, R1 用來設臵段電流。 電路原理圖 微機原理與匯編語言課程設計報告 16 通過上面的原理和相應的程序使數碼管完成顯示功能,具體程序將在 下面的章節(jié)分析。 時鐘 運行 進位 規(guī)則 這一部分是我們設計的主要部分,主要完成時鐘的進位和正常的時間顯示問題。我們定義了一個長度為六的數組,分別用來表示時鐘的時、分、秒的個位和十位。這當中主要考慮的就是時間的進位問題以及十、分、秒十位和各位的進制問題。其中時、分、秒的個位都是十進制。而十位是六進制。當分、秒的十位為六而個位為零的時候要同時清零,已達到時、分整體六十進制。這對于軟件編程來說還是比較簡單的,只需要用 if 語句就可以完成。這主要需要注意的就是時分秒的同時清零問題,讓它完成時鐘的具體功能。具體的 程序后面源程序清單中會有介紹。 時間 調整 部分 這部分主要做的是時間的初始化問題以及時間的調整問題。由于用的是 51 單片機,沒有辦法連接電腦的鍵盤,所以時間鍵盤的初始化只能用按鈕來代替。由于他和時間的調整問題屬于一個功能,所以放在了一起進行編程,這樣可以簡化程序,變得更加容易理解同時便于調試。在這一個功能我們設臵了四個功能鍵。一個用來管理中斷,用來關和開中斷,方便我們對時間進行調整。一個用來循環(huán)調整的哪一位,當處于調整的位是,數碼管所對應的時間位的下面會出現(xiàn)一個微機原理與匯編語言課程設計報告 17 亮點進行提示。另外兩個就是負責對時間進行 調整,一個是加位調整,一個是減位調整。具體的實現(xiàn)問題用了兩個 switch 語句,來確認有鍵按下了時候就進行加一和減一的調整。具體的程序后面源程序清單中會有介紹。 鍵盤 去抖 這個部分相對比較簡單,延時函數主要是確定時間的精度問題。而調整時間是按鍵的去抖問題主要就是利用延時函數。這里不在詳細介紹,后面的源程序中會有詳細的講解。 源程序 及注釋 include define DECODE_MODE 0x09 //譯碼控制寄存器 define INTENSITY 0x0A //亮度控制寄存器 define SCAN_LIMIT 0x0B //掃描界限寄存器 define SHUT_DOWN 0x0C //關斷模式寄存器 define DISPLAY_TEST 0x0F //測試控制寄存器 define uchar unsigned char define uint unsigned int sbit LOAD=P1^0。 //MAX7219 片選 12 腳 sbit DIN=P1^1。 //MAX7219 串行數據 1 腳 微機原理與匯編語言課程設計報告 18 sbit CLK=P1^2。 //MAX7219 串行時鐘 13 腳 sbit key1=P3^0。 sbit key2=P3^1。 sbit key3=P3^2。 sbit key4=P3^3。 /*sbit KEY1=P1^3。 //暫?;蜻\行 sbit KEY2=P1^4。 //位選擇 sbit KEY3=P1^5。 //增加 sbit KEY4=P1^6。 //減少 */ uchar sj[7]={0}。 uint time=0,flash=0。 uchar k=0,i=0。 /*********************函數聲明 **************************/ void Write7219(unsigned char address,unsigned char dat)。 void Initial(void)。 void Init(void)。 /********************* 地 址 、 數 據 發(fā) 送 子 程 序**************************/ 微機原理與匯編語言課程設計報告 19 void Write7219(unsigned char address,unsigned char dat) { uchar i。 LOAD=0。 //拉低片選線,選中器件 for (i=0。i8。i++) //發(fā)送地址 { CLK=0。 //清零時鐘總線 DIN=(bit)(addressamp。0x80)。 //每次取高字節(jié) address=1。 //左移一位 CLK=1。 //時鐘上升沿,發(fā)送地址 } for (i=0。i8。i++) //發(fā)送數據 { CLK=0。 DIN=(bit)(datamp。0x80)。 dat=1。 CLK=1。 //時鐘上升沿,發(fā)微機原理與匯編語言課程設計報告 20 送數據 } LOAD=1。 //發(fā)送結束,上升沿鎖存數據 } /*********************MAX7219 初始化,設臵 MAX7219 內部的控制寄存器 **************************/ void Initial(void) { uint i=0。 Write7219(SHUT_DOWN,0x01)。 //開啟正常工作模式( 0xX1) Write7219(DISPLAY_TEST,0x00)。 //選擇工作模式( 0xX0) Write7219(DECODE_MODE,0xff)。 //選用全譯碼模式 Write7219(SCAN_L
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1