簡介:三總線簡稱ADC,這總是讓我想起ADC的芯片,A是地址總線,D是數據總線,C是控制總線,是控制片外ROM、RAM和I/O的。
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="The distance is ";
uchar code table1[]=" 00.0cm ";
sbit shuru=P1^0;
sbit yidianling=P1^0;
sbit yidianyi=P1^3;//延時
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//1602寫地址
void write_com(uchar com)
{
yidianling=0;
yidianyi=0;
P0=com;
delay(5);
shuru=1;
delay(5);
shuru=0;
}
//1602寫數據
void write_data(uchar date)
{
yidianling=1;
yidianyi=0;
P0=date;
delay(5);
shuru=1;
delay(5);
shuru=0;
}
//初始化
void init()
{
uchar num;
shuru=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x10);
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(table[num]);
delay(2);
}
write_com(0x80+0x40);//0x53
for(num=0;num<16;num++)
{
write_data(table1[num]);
delay(2);
}
}
//1602選 寫的位置和數據
void write_sfm(uchar add,uchar date)
{
write_com(0x80+0x40+add);
write_data(0x30+date);
}
//主函數
void main()
{
P1=0xff;
P0=0xff;
init();
while(1);
}
板子原理圖是當時自己畫的,目測找不到了。T T.但是看程序還是可以看出點什么吧~
這是以前的程序了,當時是用來紅外測距,測的數據經AD轉換顯示出來,我把AD部分都刪去了。
很明顯,非總線型的1602程序就是完全按照1602數據手冊上的高低電平來控制的,寫了很多代碼。
接下來,看總線型的1602顯示程序吧:
#include
#include
#define LCD_COM XBYTE[0XD000]
#define LCD_Data XBYTE[0xD001]
delay()
{
unsigned short i,j;
for(i=0;i<=200;i++)
{
for(j=0;j<=200;j++);
}
}
void main()
{
LED=0X55;
LCD_COM=0X01;
delay();
LED=0XAA;
delay();
LED=0X55;
LCD_COM=0X01;
delay();
LED=0XAA;
LCD_COM=0X38;
delay();
LCD_COM=0X38;
delay();
LCD_COM=0X38;
delay();
LCD_COM=0X38;
delay();
LCD_COM=0X08;
delay();
LED=0XAA;
LCD_COM=0X01;
delay();
LCD_COM=0X06;
delay();
LCD_COM=0X0F;
delay();
while(1);
}
眨眼一看,程序確實少了很多,如果要寫數據,在while(1);前面加數據便可。
LCD_Data='a';
先上板子的原理圖:
簡單分析一下:
P0口線既用作地址線,又用作數據線(分時復用),因此需要加一個8位的鎖存器。
使用ALE作為地址鎖存的通選信號,以實現低8位地址的鎖存。
地址I/O是從P2.7到P2.0,接著P0.7到P0.0,這里可以很明顯的理解
#define LCD_COM XBYTE[0XD000]
#define LCD_Data XBYTE[0xD001]
這兩句話了。
剩下直接看main()函數里面的了,里面也是按照1602的資料寫的,但是是直接給出的,不是看高低電平判斷延時時間寫的,省事不少呀。
雖然只是簡單闡述了一下,但是按照總線型來設計電路圖,來寫程序,真心好。當然除此之外還有CAN總線,IIC,SPI,以及dala公司的一根線搞定,哈哈。再說一下總線吧,三總線簡稱ADC,這總是讓我想起ADC的芯片,A是地址總線,D是數據總線,C是控制總線,是控制片外ROM、RAM和I/O的。這學期學單片機這門課程,之前沒有上過微機原理那些,老師幾個課時直接講完,實在是精彩。當時也說過了解了總線型的話后面開發ARM芯片都很容易了,唉,我要走的路還很長呀。
上一篇:基于AT89C51單片機的便攜式數字血壓計的設計
下一篇:單片機系統軟件抗干擾方法
推薦閱讀
史海拾趣
Excelight Communications Inc公司成立于XX世紀初,當時正值通信技術飛速發展的時代。創始人李明(化名)是一位電子工程專家,他對光通信技術有著濃厚的興趣。在創辦公司之前,李明曾在一家大型通信企業工作,積累了豐富的技術和管理經驗。他發現市場上對于高速、高效的光通信產品有著巨大的需求,于是決定創立Excelight,專注于研發和生產光通信模塊和設備。
創業初期,Excelight面臨著資金、技術和市場等多方面的挑戰。李明帶領團隊日夜兼程,不斷攻克技術難關,同時積極尋找合作伙伴和投資人。經過幾年的努力,Excelight逐漸在市場上嶄露頭角,其光通信產品因性能優越、價格合理而受到了客戶的廣泛好評。
隨著公司技術的不斷成熟和產品的不斷優化,EMS GmbH公司開始積極拓展市場。公司不僅在歐洲市場取得了顯著的成績,還逐漸將業務拓展至全球范圍。通過參加國際展會、與合作伙伴建立戰略合作關系等方式,EMS GmbH公司不斷提升品牌知名度和影響力。同時,公司還注重產品質量和服務質量的提升,以確保在激烈的市場競爭中保持競爭優勢。
1998年,Epic Games發布了一款名為“虛幻”的3D第一人稱射擊游戲。這款游戲不僅游戲內容新穎,更引人注目的是它背后完全自主開發的3D游戲引擎。這個引擎后來被稱為“虛幻引擎”,并成為了Epic Games的核心技術之一。隨著游戲的成功,虛幻引擎也逐漸受到了業界的關注。許多其他游戲開發商開始采用這款引擎來開發自己的游戲,從而使得Epic Games在游戲引擎領域取得了顯著的商業成功。
深圳市固得沃克電子有限公司(GOODWORK)的故事始于2004年,當時公司正式成立,專注于半導體分立器件的研發、生產和銷售。公司總部設在深圳,并創立了自主品牌“GK”。這一時期的固得沃克,憑借對技術的執著追求和對市場的敏銳洞察,逐步在電子行業站穩腳跟。公司初期雖面臨諸多挑戰,但憑借團隊的堅持和創新精神,逐漸贏得了客戶的信賴,為后續的快速發展奠定了堅實基礎。
Chip Quik公司在電子行業初創時,以其獨特的芯片焊接技術脫穎而出。該公司研發了一種新型的低溫焊接材料,能夠在不損壞周圍元件的情況下快速、準確地修復或更換芯片。這一創新技術迅速吸引了電子維修市場的關注,公司借此機會成功進入市場。
進入20世紀80年代和90年代,Harbour Industries繼續深化其在電纜領域的研發。為了滿足軍事和國防部門對電纜的特殊需求,公司開始研發并生產Mil-Spec(軍用規格)電纜。這些電纜不僅具備高度的耐用性和可靠性,還符合嚴格的軍事標準。Harbour憑借其在技術上的不斷創新和產品質量的持續提升,成功地將Mil-Spec電纜推向市場,并贏得了眾多軍事客戶和合作伙伴的信賴。
將電子技術應用于汽車,用電腦代替人腦以精確判斷車輛及路 面狀況,用電子控制系統取代繁重的機械控制元件是現代汽車發展的 重要目標。電子技術的飛速發展,極大地改善了汽車的各種性能。現 代汽車早已不再是單純的代步工具,而在向更易駕駛,并具 ...… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 09:01 編輯 嵌入式系統專題邀請賽的參賽對象為有正式學籍的在校本科生,三人一隊(另含一位賽前指導教師),參賽學校的教務處有責任組織、協調、監督和保障本校競賽活動的順利進行。 嵌入式系統專題邀請賽統一 ...… 查看全部問答∨ |
|
做了一個U盤過濾驅動,需要用DeviceIoControl和過濾驅動通信,在MFC exe程序中可以使用CreateFile打開并使用DeviceIoControl與過濾驅動通信。 但是在一個dll中卻無法使用CreateFile打開驅動,我用GetLastError和Forma ...… 查看全部問答∨ |
|
我現在的看門狗初始化是: WDTCTL = WDTPW+WDTCNTCL+WDTSSEL+WDTIS0; (WDTCTL = WDT_ARST_250;) IE1|=WDTIE; 每次主循環末尾刷新看門狗:WDTCTL = WDTPW+WDTCNTCL+WDTSSEL+WDTIS0; 我想實現當程序跑飛時的看門狗復位,比如當判斷某些標志不正 ...… 查看全部問答∨ |
|
本著簡單、實用、易做等特點。我選擇實驗室電路的半雙工、隔離式RS485接口 (CN0031) ADM2485為半雙工RS-485收發器,很容易達到完全隔離的RS-485 PROFIBUS兼容節點。ADM2485集成一個變壓器驅動器,與外部變壓器和LDO配合使用時,它能產生在VDD2與G ...… 查看全部問答∨ |