![]() |
發布時間: 2017-6-3 13:09
正文摘要:請問各位大佬,我如何在proteus 軟件中給這個8255芯片的cs端給個地址? 還有我怎么樣做才能進入匯編語言的編程界面中呢?第一次用還不熟悉,百度了好久都沒有找到解決方法。 |
你要學習proteus軟件,介紹你一本書,張志良編著《80C51單片機仿真設計實例教程——基于Keil C和Proteus》清華大學出版社ISBN 978-7-302-41682-1,內有keil和proteus操作方法,還有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。 |
a8256772 發表于 2017-6-4 17:27 你錯了!根本不是在proteus中給出8255 CS信號,而是在程序中,編入8255 CS信號,proteus僅僅是運行該程序。 |
zl2168 發表于 2017-6-4 15:43 感謝版主的回復,這個問題得到解決了,但更多的問題是不會使用proteus軟件。我應該去找一本入門的書來看…… |
本帖最后由 zl2168 于 2017-6-4 16:37 編輯 我猜測你提的問題是:如何確定單片機并行擴展時的擴展芯片單元地址。 6.1.2 并行擴展尋址方式 80C51系列單片機能尋址的存儲空間,包括ROM和外RAM,各有64kB。并行擴展時,可用其一部或全部,或者將其中一部分用作擴展I/O口。這些存儲器的芯片地址和存儲器內存儲單元的子地址如何確定、如何尋址呢?存儲器內存儲單元的子地址,由低位地址線,即與存儲器地址線直接連接的地址線確定;存儲器的芯片地址由高位地址線產生的片選信號確定。當存儲器芯片多于一片時,為了避免誤操作,必須利用片選信號來分別確定各芯片的地址分配。產生片選信號的方法有線選法和譯碼法二種。 ⒈ 線選法 線選法是將高位地址線直接連到存儲器芯片的片選端,如圖6-2所示。圖中芯片I、II、III都是2k×8位存儲器芯片,由低位地址線A0~A10實現片內尋址。高位地址線A11~A13分別實現片選,均為低電平有效。為了不出現尋址錯誤,要求A11~A13中只允許有一根為低電平,另二根必須為高電平,否則出錯。3片存儲器芯片地址分配如表6-1所示。 ![]() ⒉ 譯碼法 譯碼法是通過譯碼器將高位地址線譯碼轉換為片選信號,2條地址線能譯成4種片選信號,3條地址線能譯成8種片選信號,4條地址線能譯成16種片選信號。所對應的TTL譯碼芯片有74139(雙2-4譯碼器)、74138(3-8譯碼器)和74154(4-16譯碼器),下面以74138為例說明譯碼法。 ![]() 以上摘自張志良編著《80C51單片機實用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學習51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學。 |
yzwzfyz 發表于 2017-6-3 19:41 請問大佬是不是用左側工具欄的按鈕,進行操作?能給一下步驟嗎………謝謝 |
yzwzfyz 發表于 2017-6-3 19:41 能給我個操作步驟嗎,我該使用什么樣的工具欄中選用什么樣的控件,做什么樣的操作?因為是第一次使用,不知道如何給這個芯片加地址。在學校里用的是試驗箱,然后課程結束了就不能去實驗室了。所以下了個仿真的程序。第一次用,網上也找不到我想要的操作。求大佬耐心解釋下 |
說明樓主對CS的理解太械了。 其實很簡單:只要U1的6腳/CS=0就可以了。 所以,任何地址出現的時候,只有此地址能使U1的6腳/CS=0就行。也就是說與接法有關。在未確定時,樓主可以定義一個變量給個虛值,認為它就是端口地址,待實際應用時,再給這個變量實值即可。 |