欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 初學單片機需要注意的一些問題 [打印本頁]

作者: liuyang    時間: 2012-1-2 04:40
標題: 初學單片機需要注意的一些問題
                 最近學的東西整理下,也好便于自己再更深入的了解或系統的把握。

                  流水燈:

                            p1^6直接接74HC573的片選端上的,當它輸出高電平,那么直接對P0口進行寫入操作,74HC573會把相應的餓數據送到流水燈上,從而實現對流水燈的控制。

                        p1|=~(1<<6); p1&=(1<<6);

              英特爾總線:

                      很簡單的,數據總線與地址總線的復用,通過設置WR與RD來進行鎖存,先打開74HC573的片選端輸入P2與P016位的地址總線,然后在進行鎖存然后在打開片選端,暈死忘了,我看下時序圖    寫錯了是先送數據然后鎖存,在通過P0與P2 送出16位地址到+WR完成寫入操作,讀出就是反下。

                  蜂鳴器:

                       這個接在P0^3端口上的。當74HC138D的Y1口與WR輸出低電平通過或非門打開74HC573的片選端應許寫入操作,在P0^3上輸出高電平,蜂鳴器就會發出響聲。

                         P2=0x88(P2通過Y1可以推出A11、A15為1其他為0則P2=10001000B);p3&=~(1<<6);  打開片選端 P0=(1<<3);

          這個可以看作外設的IO口,剛看了下突然明白了,送出個0x8800地址再送出數據P0=(1<<3); 簡單的寫即:XBYTE[0x8800]=(1<<3);

          繼電器:

                 類似蜂鳴器只是端口是P0^2。注意的是:原理圖中可以看到必須把74HC537接地,即撥上蜂鳴器開關。

                 中斷分查詢中斷與中斷服務

                       查詢中斷是占CPU的因為代碼是寫在主函數中的,中斷服務是不占的,只有產生中斷的時候,程序才會進入到設定的中斷服務程序中。沒什么好寫的,主要是寫個循環不斷的判斷某個輸出端是否置位。

                按鍵消抖,是通過延時10mS判斷按鍵是否仍是存在然后用while(KEY_DOWN);按鍵釋放時才做操作。

                      中斷服務,這個稍微有點麻煩,ROM燒錄好的不可更改的程序中存放著向量中斷表,它指向了中斷服務的入口函數的地址空間,當產生中斷原時,程序自動會在表中相應的編號找到入口函數的地址,把 該地址送到指針寄存器中,然后程序就直接跳轉進入到用戶設定的中斷服務程序中。

                      void cl() interrupt  編號  函數名隨便起,我自寫成自己的名字

                     假設開中斷0  : 主函數中加入以下代碼    EX0 =1;開中斷0 IF=1 設置邊降沿,EA=1;開全局中斷

            定時器:

                   也2中方式,只是多了個對TMOD的操作來設置寄存器的位數等社者。

  一般模式:   查詢:  TMOD=0x01; 設置16位的 假設開中斷0 開始設置初直比如1ms  那么 TH0=(65535-24/12M*1ms)>>8;其中M和ms要換算的然后左移 獲得高8位  TH0=(65535-20000)<<8; TL0=(65535-20000)&0xff; 然后開定時器TR=1;就可以了。然后不斷判斷TF==1益處手動清0賦初直。

                   中斷服務: 多2部開定時中斷EX0=1與全局中斷EA=1;

                       本人遺留的問題:寫了個定時器0與中斷0的服務,用來接受按鍵來控制流水燈循環點亮的速度,發現中斷0服務老是無法進入,換成中斷1就可以。該問題目前仍未解決。

              數碼管:

                     挺麻煩的,一般是掃描的方式通過視覺殘留來顯示數字的。數碼管分共陰與共陽,共陽要加3機管實現的,通過輸入高電平導通位片選端。具體寫下來還真不好寫,首先要測試出每個段 對應哪個輸出端,然后再通過這個表來計算你要顯示的數字的8位2機制數,然后在寫個循環輪流選種位片選端把相應的數值輸入。具體代碼模式不寫了,這個我自己知道就可以了。

               初步只學到這,花了我一個禮拜多的時間了,才開個頭,后面的簡單看了下簡直不在一個層次上的,日的....  





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1