久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7638|回復: 0
打印 上一主題 下一主題
收起左側

藍橋杯單片機資源擴展方式說明(IO&MM)

[復制鏈接]
跳轉到指定樓層
樓主
單片機資源擴展方式說明(IO&MM)
---CT107D單片機綜合訓練平臺
  CT107D 單片機綜合訓練平臺具有 IO 擴展模式和存儲器映射(MM)擴展模式,可以通過調節板上跳線J13進行配置。其中 IO擴展模式較為容易理解,存儲器映射擴展模式可以直接通過XBYTE 關鍵字來操作部分資源,能夠大大簡化外設資源程序設計,下面將舉例說明兩種擴展方式。

1.  IO口擴展方式
平臺將單片機P25、P26、P27 接入到74HC138譯碼器的三線輸入端口,由此我們 可以通過 P25、P26 和 P27 引腳控制 38 譯碼器的輸出端口 Y[0...8];通過板上的擴展模式配置跳線J13,將譯碼器輸出端口Y[0…8]與GND經過或非門輸出,作為74HC573的片選信號,即實現了IO擴展方式:
#include "reg52.h"

sbit LCD_E = P1^7;
//主函數
void main(void)
{
LCD_E = 0; //將 LCD 模塊禁能,防止LCD 模塊對總線狀態的影響
while(1)
{
/* 注釋1:通過此句代碼將P2.7 = 1,P2.6 = 0,P2.5 = 0,不改變P2口其它引腳
狀態。由 138譯碼器的真值表可以知道此時譯碼器輸出端Y4 處于低電平狀態;因為
為 IO編程方式,所以Y4和 GND一起經過或非 門后,輸出高電平,并連接到573
鎖存器的使能端口,將573 鎖存器“打通“,此時鎖存器輸出端與單片機P0口狀態一
致。*/
P2 = ((P2&0x1f)|0x80);
/* 注釋 2:因為 573 鎖存器已經“打通“,現在通過 P0 口輸出 0xff,573 鎖存器的輸
出端也將輸出0xff,從而將所有LED熄滅。*/
P0 = 0xff;
/* 注釋3:通過此句代碼將P2.7 = 0,P2.6 = 0,P2.5 = 0,不改變P2口其它引腳
狀態。由 138譯碼器的真值表可以知道此時譯碼器輸出端Y4 處于高電平狀態;因為
為 IO 編程方式,所以 Y4 和 GND 一起經過或非 門后,輸出低電平,并連接到 573
鎖存器的使能端口,將573 鎖存器“鎖存“,此時鎖存器將輸入鎖存,輸出端口數據不
再受到P0 口影響。*/   
P2 &= 0x1f;
/* 一小段延時函數  */
delay();
/*與注釋1 相同*/
P2 = ((P2&0x1f)|0x80);
/* 注釋2:因為 573鎖存器已經“打通“,現在通過P0 口輸出0x00,573鎖存器的輸
出端也將輸出0x00,從而將所有LED點亮。*/
P0 = 0x00;
/*與注釋3 相同*/
P2 &= 0x1f;
delay();
}
}
  與上例相同,如果想使用執行機構模塊(蜂鳴器、繼電器、電機等外設),需要做的無
非是“打通”與執行結構連接的鎖存器,進行操作,操作結束后, “鎖存” ,程序片段如下:  

#include "reg52.h"

sbit LCD_E = P1^7;
sbit RELAY = P0^4;
//主函數
void main(void)
{
LCD_E = 0; //將 LCD 模塊禁能,防止LCD 模塊對總線狀態的影響
while(1)
{
/* 注釋 1:通過此句代碼將P2.7 = 1,P2.6 = 0,P2.5 = 1,不改變P2口其它引腳
狀態。由 138譯碼器的真值表可以知道此時譯碼器輸出端Y5 處于低電平狀態;因為
為 IO編程方式,所以Y5和 GND一起經過或非 門后,輸出高電平,并連接到573
鎖存器的使能端口,將573 鎖存器“打通“,此時鎖存器輸出端與單片機P0口狀態一
致。*/
P2 = ((P2&0x1f)|0xA0);
/* 注釋2:因為573鎖存器已經“打通“,現在通過P0.4 輸出高電平,相應的573 鎖
存器的輸出端也將輸出高電平,控制繼電器  */
RELAY = 1;
/* 注釋 3:通過此句代碼將P2.7 = 0,P2.6 = 0,P2.5 = 0,不改變P2口其它引腳
狀態。由 138譯碼器的真值表可以知道此時譯碼器輸出端Y5 處于高電平狀態;因為
為 IO 編程方式,所以 Y5 和 GND 一起經過或非 門后,輸出低電平,并連接到 573
鎖存器的使能端口,將573 鎖存器“鎖存“,此時鎖存器將輸入鎖存,輸出端口數據不
再受到P0 口影響。*/   
P2 &= 0x1f;
/* 一小段延時函數  */
delay();
/*與注釋1 相同*/
P2 = ((P2&0x1f)|0x80);
/* 注釋2:因為573鎖存器已經“打通“,現在通過P0.4 口輸出低電平,相應的573
鎖存器的輸出端也將輸出低電平,控制繼電器  */
RELAY = 0;
/*與注釋3 相同*/
P2 &= 0x1f;
delay();
}
}

2.  存儲器映射擴展方式
51 單片機可以外擴64K 字節的RAM和ROM空間,傳統的8051單片機具有16 位地
址總線和 8 位數據總線,其中 P0 口作為數據和地址低字節的復用端口,P2 口作為高 8 位
地址線。CT107D 單片機綜合訓練平臺的存儲器映射擴展方式(MM),是一種可以像操作
外部 RAM存儲器一樣, 操作LED指示燈、 執行結構 (蜂鳴器、 繼電器等..)、 數碼管、 82C55
等外設資源的擴展方式,當然實現這樣的操作,是與 CT107D 單片機綜合訓練平臺的硬件
設計具有關聯性的。舉例說明,在上面IO擴展方式里已經介紹過,如果我們希望通過程序
點亮或者熄滅LED 指示燈需要進行如下操作:
  2.1 IO擴展方式代碼片段:
P2 = ((P2&0x1f)|0xA0);
P0 = 0x00;    // LED = 0xff;
P2 &= 0x1f;
  如果,我們將擴展方式配置跳線配置為存儲器映射擴展方式(MM),我們可以通過以下
簡單代碼來實現其操作:
XBYTE[0x8000] = 0x00; // XBYTE[0x8000] = 0xff;
  到現在存在的疑問是,LED 指示燈模塊的地址:0x8000是如何確定的呢?由CT107D
單片機綜合訓練平臺的硬件電路圖我們可以知道,當 P2.7 = 1; P2.6 = 0; P2.5 = 0;(其它地
址線不需要關心),即可將與 LED 指示燈模塊連接的 74HC573“打通” ,此時可以通過 P0
口控制 LED 指示燈的狀態,因此,LED 指示燈模塊的地址為 0x8000;由此類推,我們可
以知道執行機構模塊的操作地址為 0xA000,數碼管段碼端的操作地址為 0xE000,數碼管
位選端口的操作地址為0xC000 等等。
  下面來看一個具體實例:
#include "reg52.h"
#include "absacc.h"
sbit LCD_E = P1^7;

//主函數
void main(void)
{
    LCD_E = 0; //將 LCD 模塊禁能,防止LCD模塊對總線狀態的影響
    while(1)
    {
          XBYTE[0x8000] = 0x00;   //LED 指示燈全部點亮
          /* 一小段延時函數  */            
          delay();
           
          XBYTE[0x8000] = 0xff;   //LED指示燈全部熄滅
          delay();
    }
}
  MM編程方式,能夠簡化程序設計,這一點在數碼管動態掃描顯示的代碼部分體現的尤
為明顯,由于這種擴展方式占用單片機P3.6引腳,在使用4X4矩陣鍵盤時,不建議使用這
種擴展方式。
數碼管顯示程序片段


完整的pdf格式文檔51黑下載地址:
Microsoft Word - MM&IO編程方式說明.pdf (119.72 KB, 下載次數: 29)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合热 | 国产精品一区二区三区久久 | 亚洲欧美中文日韩在线v日本 | 亚洲日韩中文字幕一区 | 久久天天躁狠狠躁夜夜躁2014 | 在线观看亚洲专区 | 美女黄网站视频免费 | 久久r精品 | 亚洲一区三区在线观看 | 五月激情综合网 | 亚洲精品一区中文字幕乱码 | 国产高潮好爽受不了了夜色 | 国产97碰免费视频 | 久久99精品国产自在现线小黄鸭 | 99久久婷婷国产综合精品 | 国产在线观看福利 | www天天操 | 欧美在线一二三 | 中文字幕在线网 | 二区在线观看 | 亚洲一区网站 | 天天碰夜夜操 | 91精品国产综合久久久密闭 | 玖玖综合在线 | 国产色婷婷精品综合在线播放 | 精品美女视频在线观看免费软件 | 色狠狠一区 | 成人av网站在线观看 | 91久久精| 特黄毛片 | 亚洲精选久久 | 欧美国产精品一区二区三区 | 国产一区二区三区在线 | 亚洲精品白浆高清久久久久久 | 国产乱码精品一区二区三区中文 | 95国产精品 | 亚洲人久久 | 国产一级毛片精品完整视频版 | 久久av.com| 亚洲图片一区二区三区 | 777777777亚洲妇女 |