音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

窮人也來(lái)秀板子---放程序了!!!

作者:st_z 欄目:單片機(jī)
窮人也來(lái)秀板子---放程序了!!!
很窮,沒(méi)錢(qián)做板子,,,呵呵,,,,

其實(shí)也不想做板子,萬(wàn)一畫(huà)錯(cuò)了一條線(xiàn),改起來(lái)麻煩死了。。。

這是最近無(wú)聊搞的一塊M32/M16 的開(kāi)發(fā)板,還可以直接把CPU換成STC8051。

板上資源有:

    RS232串口:MAX202;
    USB1.1: PHILIPS D12;
    4 X 4 掃描鍵盤(pán);
    PS/2標(biāo)準(zhǔn)鍵盤(pán);
    M32/16 CPU;
    Nand FLASHK9F1G08
    CPLD一片:XC9536 - 5V;
    12864LCD:STC920
    音頻放大:TDA2822M。

板子還沒(méi)有焊完,呵呵,,先把照片發(fā)上來(lái)給大伙瞧瞧,,,
    

* - 本貼最后修改時(shí)間:2005-11-2 12:40:08 修改者:st_z

2樓: >>參與討論
qjy_dali
你的耐力令人贊嘆
 
3樓: >>參與討論
ipman
正面還不錯(cuò),反面會(huì)很恐怖啊
 
4樓: >>參與討論
zhongwei
高!我最服氣那些搞得很正常而看上去亂亂的板子! -
 
5樓: >>參與討論
st_z
等反面全部焊好了也發(fā)個(gè)照片上來(lái),,,
呵呵,,,

6樓: >>參與討論
javie
到時(shí)候反面就如同鳥(niǎo)窩了
 
7樓: >>參與討論
st_z
背面連線(xiàn)圖
現(xiàn)在已經(jīng)調(diào)通了LCD、FLASH、掃描鍵盤(pán)和串口部分,也只連接了這些部分。今天焊USBD12的連線(xiàn)。

目前看來(lái)還不象鳥(niǎo)窩吧,,,呵呵,,,

背面連線(xiàn)圖

8樓: >>參與討論
javie
做的還真是不錯(cuò)
 
9樓: >>參與討論
kanprin
不像鳥(niǎo)窩,穩(wěn)定性也不能保證吧!
不過(guò)佩服。

10樓: >>參與討論
st_z
LCD 遇到一個(gè)小問(wèn)題
LCD采用的是 ST920 為控制器的12864模塊,為了節(jié)省IO口,我用的是串口方式,時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn)與別的功能線(xiàn)是復(fù)用的。在調(diào)試的時(shí)候發(fā)現(xiàn),當(dāng)片選為高(無(wú)效)時(shí),時(shí)鐘線(xiàn)和數(shù)據(jù)線(xiàn)的信號(hào)也會(huì)被讀進(jìn)去,不過(guò)很奇怪,沒(méi)有顯示亂碼,只是把我要顯示的地址更改了;后來(lái)把這兩條線(xiàn)單獨(dú)使用兩個(gè)IO口,問(wèn)題就沒(méi)有了。不知道大家遇到過(guò)沒(méi)有。

11樓: >>參與討論
terrence
頂一個(gè)~~!!
 
12樓: >>參與討論
jinggx
還說(shuō)是窮人,
用的都是很高檔的東西,芯片下的插座比較貴吧,板子留了好多的空余啊.

13樓: >>參與討論
ligong
不錯(cuò)!
 
14樓: >>參與討論
st_z
兩天沒(méi)有上網(wǎng),居然加了酷。。。
感謝斑主看得起,過(guò)幾天我再把電路原理圖也會(huì)貼上來(lái)的,陸續(xù)還有一些程序。

15樓: >>參與討論
zhaoxi322
佩服,佩服,做得很好,能個(gè)電路圖上來(lái)吧
 
16樓: >>參與討論
javie
我要求程序啊
 
17樓: >>參與討論
st_z
發(fā)一個(gè)FLASH 的讀、寫(xiě)和擦除程序。
沒(méi)有什么技巧,完全是按照時(shí)序直接走的,跟匯編差不多。

//------------------------------------
#define DATA_OUT   PORTC
#define DATA_DIR   DDRC
#define DATA_IN     PINC
#define CTRL_OUT   PORTB
#define CTRL_IN    PINB
#define CTRL_DIR   DDRB

#define FLASH_CE   PB0
#define FLASH_RE   PB5
#define FLASH_WE   PB6
#define FLASH_RB   PB7
#define FLASH_ALE  PD6
#define FLASH_CLE  PD7
//---------------------------------


unsigned CHAR FLASH_Erase(unsigned CHAR Block_High, unsigned CHAR Block_Low)
{
   unsigned CHAR TMP;
   DATA_DIR = 0x00;
   CTRL_DIR |= (1 << FLASH_CE)|(1 << FLASH_WE)|(1 << FLASH_RE)|(1 << LCD_CS);
   CTRL_OUT |= (1 << FLASH_CE)|(1 << FLASH_WE)|(1 << FLASH_RE);
   CTRL_OUT &= ~(1 << LCD_CS);
   PORTD &= ~((1 << FLASH_CLE)|(1 << FLASH_ALE));
   DATA_OUT = 0x60;
   CTRL_OUT &= ~(1 << FLASH_CE);
   Delay(0x04);
   DATA_DIR = 0xFF;
   PORTD |= 1 << FLASH_CLE;
   NOP();
   CTRL_OUT &= ~(1 << FLASH_WE);
   NOP();
   CTRL_OUT |= 1 << FLASH_WE;
   NOP();
   PORTD &= ~(1 << FLASH_CLE);
   PORTD |= 1 << FLASH_ALE;
   DATA_OUT = Block_High;
   NOP();
   CTRL_OUT &= ~(1 << FLASH_WE);
   NOP();
   CTRL_OUT |= 1 << FLASH_WE;
   NOP();
   DATA_OUT = Block_Low;
   NOP();
   CTRL_OUT &= ~(1 << FLASH_WE);
   NOP();
   CTRL_OUT |= 1 << FLASH_WE;
   NOP();
   PORTD &= ~(1 << FLASH_ALE);
   PORTD |= 1 << FLASH_CLE;
   DATA_OUT = 0xD0;
   NOP();
   CTRL_OUT &= ~(1 << FLASH_WE);
   NOP();
   CTRL_OUT |= 1 << FLASH_WE;
   NOP();
   PORTD &= ~(1 << FLASH_CLE);
   Delay(0x05);
   
   while(!(CTRL_IN & (1 << FLASH_RB)))
     NOP();
        
   DATA_OUT = 0x70;
   PORTD |= 1 << FLASH_CLE;
   NOP();
   CTRL_OUT &= ~(1 << FLASH_WE);
   NOP();
   CTRL_OUT |= 1 << FLASH_WE;
   NOP();
   
   PORTD &= ~(1 << FLASH_CLE);
   DATA_DIR = 0x00;
   NOP();
   NOP();
   TMP = DATA_IN;
   CTRL_OUT |= 1 << FLASH_RE;
   CTRL_OUT |= 1 << FLASH_CE;
   return TMP;
}


18樓: >>參與討論
st_z
剛才那個(gè)是擦除的,這個(gè)讀的,下一個(gè)是寫(xiě)的
void Flash_Read(unsigned CHAR Addr1,unsigned CHAR Addr2,unsigned CHAR Addr3,
                         unsigned CHAR Addr4,unsigned CHAR *String,unsigned int ReadNumber)
{
   unsigned int GetNumber;
   CTRL_OUT |= (1 << Flash_WE)|(1 << Flash_RE)|(1 << Flash_CE);
   CTRL_OUT &= ~(1 << LCD_CS);
   PORTD &= ~((1 << Flash_CLE)|(1 << Flash_ALE));
   PORTD &= ~(1 << Flash_ALE);
   PORTD |= 1 << Flash_CLE;
   DATA_DIR = 0xFF;
   DATA_OUT = 0x00;
   CTRL_OUT &= ~(1 << Flash_CE);
   NOP();
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();
   PORTD &= ~(1 << Flash_CLE);
   PORTD |= 1 << Flash_ALE;
   
   DATA_OUT = Addr1;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr2;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr3;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr4;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = 0x30;
   PORTD &= ~(1 << Flash_ALE);
   PORTD |= 1 << Flash_CLE;
   NOP();
   
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();
   PORTD &= ~(1 << Flash_CLE);
   DATA_DIR = 0x00;
   while(!(CTRL_IN & (1 << Flash_RB)))
     NOP();
   
   CTRL_OUT &= ~(1 << Flash_RE);
   for(GetNumber = 0 ; GetNumber < ReadNumber ; GetNumber++)
     {
       NOP();
       CTRL_OUT &= ~(1 << Flash_RE);
       NOP();
       *String++ = DATA_IN;
       CTRL_OUT |= 1 << Flash_RE;
     }
   CTRL_OUT |= 1 << Flash_CE;
  }


* - 本貼最后修改時(shí)間:2005-11-2 10:03:16 修改者:st_z

19樓: >>參與討論
st_z
Flash_Program
unsigned CHAR Flash_Program(unsigned CHAR Addr1,unsigned CHAR Addr2,unsigned CHAR Addr3,unsigned CHAR Addr4,
                            unsigned CHAR *String, unsigned int Bytes)
{
   unsigned CHAR TMP;
   unsigned int WriteByte;
   CTRL_OUT |= (1 << Flash_WE)|(1 << Flash_RE)|(1 << Flash_CE);
   CTRL_OUT &= ~(1 << LCD_CS);
   PORTD &= ~((1 << Flash_CLE)|(1 << Flash_ALE));
   PORTD &= ~(1 << Flash_ALE);
   PORTD |= 1 << Flash_CLE;
   DATA_DIR = 0xFF;
   DATA_OUT = 0x80;
   CTRL_OUT &= ~(1 << Flash_CE);
   Delay(0x04);
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();
   PORTD &= ~(1 << Flash_CLE);
   PORTD |= 1 << Flash_ALE;
   
   DATA_OUT = Addr1;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr2;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr3;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   DATA_OUT = Addr4;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();
   
   PORTD &= ~(1 << Flash_ALE);
   Delay(0x04);
   for(WriteByte = 0; WriteByte < Bytes ; WriteByte++)
     {
       DATA_OUT = *String++;
       NOP();
       CTRL_OUT &= ~(1 << Flash_WE);
       NOP();
       CTRL_OUT |= 1 << Flash_WE;
       NOP();       
      }

   PORTD |= 1 << Flash_CLE;
   DATA_OUT = 0x10;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
       
   while(!(CTRL_IN & (1 << Flash_RB)))
     NOP();

   DATA_OUT = 0x70;
   NOP();
   CTRL_OUT &= ~(1 << Flash_WE);
   NOP();
   CTRL_OUT |= 1 << Flash_WE;
   NOP();

   PORTD &= ~(1 << Flash_CLE);
   DATA_DIR = 0x00;
   CTRL_OUT &= ~(1 << Flash_RE);
   NOP();
   NOP();
   TMP = DATA_IN;
   NOP();

   CTRL_OUT |= 1 << Flash_RE;
   CTRL_OUT |= 1 << Flash_CE;
   return TMP;
}


20樓: >>參與討論
st_z
電路圖晚一點(diǎn)給出來(lái)
這幾天覺(jué)得引腳安排得不是很合理,想改,但又覺(jué)得工程量好大!

程序還有一些,陸續(xù)都帖上來(lái),都是已經(jīng)調(diào)通的,請(qǐng)各位大俠們指導(dǎo)指導(dǎo)。拜托了,,呵呵,,,,

21樓: >>參與討論
javie
我狂頂你啊
真好

22樓: >>參與討論
ylst
厲害!
搞到這個(gè)水平,再這一行業(yè)做了多久了啊?

23樓: >>參與討論
st_z
做這樣的板子已經(jīng)很長(zhǎng)時(shí)間了
讀高中時(shí)就在這樣的板子上搭收音機(jī),,,呵呵,,

不過(guò)接觸AVR 還是去年的事情,從M48開(kāi)始,覺(jué)得這款MCU確實(shí)挺不錯(cuò)的。

下午放LCD的程序!大家?guī)兔σ黄痦敯。。?br>
24樓: >>參與討論
bbear
搭成這樣還算可以吧,呵呵。
我也介紹一下我用萬(wàn)能板搭電路時(shí)的一個(gè)方法,希望對(duì)大家有點(diǎn)幫助:

一般我在布線(xiàn)軟件中把GRID設(shè)成2.5,線(xiàn)寬設(shè)為2.2,(或者按你手上的實(shí)際板的尺寸來(lái)設(shè)置)然后擺放元件幾次,再試著走幾次線(xiàn)。盡量使走線(xiàn)在板上連通。最后實(shí)在在板上走不通的就留在那兒靠飛線(xiàn)。在這過(guò)程中再按需要及時(shí)調(diào)整BOARD的大小。電腦中搞好后,接著就是裁板,插元件,焊接,飛線(xiàn)這些不傷害腦細(xì)胞的活了。

這樣萬(wàn)能板搭電路,很快,也不浪費(fèi)萬(wàn)能板,而且,還實(shí)現(xiàn)了‘文檔化’,更新/查錯(cuò)很方便,搭好后板看來(lái)也比較‘專(zhuān)業(yè)’。

不過(guò)如果是私人玩單片機(jī)的話(huà),我推薦盡量用感光法或熱轉(zhuǎn)印法來(lái)搭電路。


25樓: >>參與討論
qinxg
你有的受了.K9F1G08的一頁(yè)就是2K,我看你怎么用32L處理!
要修改K9F1G08的某一頁(yè)時(shí),必須先把此塊拷貝到其他塊里.可惡的是1G08取消了5608U0B的COPY-BACK的功能

26樓: >>參與討論
zhiwei
應(yīng)該布板的
看你水平那么高,覺(jué)得你可以做PCB出來(lái)的。

27樓: >>參與討論
liusuozhu
還請(qǐng)問(wèn) FLASH 問(wèn)題
請(qǐng)高手指點(diǎn):

  1  我也有類(lèi)似的電路,現(xiàn)在發(fā)現(xiàn)一個(gè)問(wèn)題,就是我在 Byte Program 時(shí),寫(xiě)完 2048 個(gè)字節(jié)后, 進(jìn)入下一個(gè) 2048 個(gè)區(qū)域,但在此區(qū)域內(nèi),我發(fā)現(xiàn)讀出的與寫(xiě)入的完全不一樣。而前 2048 個(gè)一直沒(méi)問(wèn)題,還請(qǐng)問(wèn)原因。
  
  2. 如何判斷 Page 地址呢,不懂
  3. 擦除: Datasheet 里只有 Block Erase 選項(xiàng),但是擦除范圍太大了,在做 u 盤(pán)時(shí),怎么處理數(shù)據(jù)的更改的。

     還請(qǐng)指點(diǎn), 謝謝 !

28樓: >>參與討論
dmcz
都說(shuō)我看不懂匯編,這不我也可以啊~哈哈
贊一個(gè),如果我有你一半的耐性就好了

29樓: >>參與討論
lag3631

厲害
佩服佩服

30樓: >>參與討論
chjman
老大你的鍵盤(pán)有點(diǎn)臟,該CLR一下了
    但比我的干凈多了哈哈。。。

31樓: >>參與討論
zhouh314
請(qǐng)問(wèn)你K9F1G08的讀寫(xiě)
看了K9F1G08的資料,發(fā)現(xiàn)當(dāng)我要初始化搜索壞塊的時(shí)候怎么也沒(méi)辦法直接尋址它的spare area中的字節(jié)。請(qǐng)問(wèn)怎么解決?

32樓: >>參與討論
zhouh314
怎么讀寫(xiě)K9F1G08的spare area?
看了K9F1G08的資料,發(fā)現(xiàn)當(dāng)我要初始化搜索壞塊的時(shí)候怎么也沒(méi)辦法直接尋址它的spare area中的字節(jié)。請(qǐng)問(wèn)怎么解決?

33樓: >>參與討論
muziguo711
你用的是什么編譯環(huán)境啊
你好啊,可以和你聯(lián)系嗎?我還有很多問(wèn)題想和你請(qǐng)教呢~~

34樓: >>參與討論
hotpower
7920就是有這個(gè)缺點(diǎn),片選不管用所以時(shí)鐘不能與其他IO復(fù)用
 
35樓: >>參與討論
alzilithe
很不錯(cuò)啊,
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
為何AVRstudio不能對(duì)匯編調(diào)試?
串口通訊中發(fā)現(xiàn)的問(wèn)題;
真煩人,這是怎么回事?
不能通過(guò)指針把在rom開(kāi)辟的數(shù)組tab,賦值給TempTab數(shù)組
誰(shuí)知道AT90PWM3?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)