在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機課程設計-ATMEL51系列單片機編程器

            單片機課程設計-ATMEL51系列單片機編程器

            作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
            用單片設計過很多東西,可以說把AT單片機(包括AVR單片機)的所有外設資源都使用過了,所以在尋思著要設計一個什么樣的東東??

            有次去面試,我對面試官說我設計過一塊開發(fā)板,然后那面試官直接問了個核心問題:這個編程器的固件是你自己寫的嗎?一下子就問到了痛處。是的,編程器固件不是自己寫的,那為什么不自己設計一個呢? 我說的自己設計是包括硬件電路、單片機程序以及電腦端界面等等所有東西全部自己DIY。當一個真正的DIYer。所以我動手了,用了幾天幾夜時間弄了一個可以支持兩種芯片(AT89S51 AT89S52)
            的基于ISP下載的編程器
            首先要說的是,要設計個編程器, 這方面的資料在網(wǎng)上基本是找不到的,估計是大家不想開源(open source code)...所以必須自己按照某一芯片的官方數(shù)據(jù)手冊慢慢搞懂它的下載協(xié)議,然后寫成固件。

            本文引用地址:http://www.biyoush.com/article/201612/324271.htm


            STEP 1. 研究數(shù)據(jù)手冊
            首先找了一份S52芯片的中文數(shù)據(jù)手冊,一看傻了眼,翻譯得很垃圾,垃圾還不要緊,最重要是里面把關于FLASH編程的章節(jié)直接忽略掉了。。想看都沒得看。沒辦法,那就直接研究英文數(shù)據(jù)手冊算了,用了一天多時間認真把數(shù)據(jù)手冊看懂。。這里本人一直有個誤區(qū),從大一的時候開始就以為S52會有256B的用戶RAM,比S51高級,其實不是,S52也只有128B內(nèi)存,F(xiàn)LASH容量比S51多4KB也就是8KB。。謹記謹記。?;蛘吣憧梢赃x擇接入外部RAM,不過這會浪費掉你至少16個IO口用來做數(shù)據(jù)及地址總線,而且還要加外一個地址鎖存器用來復用本來就不夠用的IO口,而匯編指令中的MOVX就是用來操作外部RAM的。OK數(shù)據(jù)手冊研究完畢(還算幸運的,因為S52的數(shù)據(jù)手冊只有30多頁)。


            STEP 2. HEX文件的本來面目以及怎樣將HEX文件轉換成機器碼

            之前我一直以為HEX文件就像鏡像文件一樣對應著單片機FLASH的每一個數(shù)據(jù),然后燒錄軟件LOAD程序的時候是直接將HEX文件里面的數(shù)據(jù)一個一個輸入到單片機的FLASH中,又來了個誤區(qū),事實情況卻不是這樣的。正解是:HEX文件是一種用ASCII編碼的文件,就是說里面的數(shù)據(jù)都是字符來的,比如說里面記錄了一個地址為0X00EF的話,如果按照二進制格式應該是:0000 0000 1110 1111 這樣記錄的,但HEX采用了ASCII字符編碼,直接在里面寫成:‘0’ ‘0’ ‘E’ ‘F’ (這是ASCII字符?。。。??;谶@個原理,要想正確下載程序就必須寫一個HEX->機器碼轉換算法,將HEX文件轉換成機器碼。用了幾個小時就把算法搞定。具體實現(xiàn)過程就不說了,想了解的可以直接找我聊啦,總之最后結果就是我實現(xiàn)了一個 HEX_Translate(char *Input,char *Output)函數(shù)搞定


            上一頁 1 2 3 下一頁

            評論


            技術專區(qū)

            關閉