• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: EEPROM問題
#2
資深會員
資深會員


查看用戶資訊
看你的想法

大概知道你搞不清楚 10進位 二進位 及BCD 的差異

舉例來說: 0x23456001

上述是8bit 的寫法表示 4byte 的內容

換成10進位則是 591749121

但是要顯示在lcd 上要先換成 bcd

0x05 0x91 0x74 0x91 0x21

也就是說你要顯示 591749121 在lcd ,實際上放在ram 的資料是0x23456001

而要顯示的資料要先換成 bcd 才能顯示.

至於要存到 eeprom ,只要將 0x23456001 依序存入,再依序讀出

發表於: 2009/10/26 23:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


EEPROM問題
#1
初級會員
初級會員


查看用戶資訊
因為EEPROM使用8Bit的元件最大顯示只能到255
後利用程式修改使數值一分為二

例子:
1234/1000=1
(1234-1000)/100=2
(1234-1000-200)/10=3
.
.
.
.
利用上面方法使1234分為12及34儲存進EEPROM
但不知何
12*100+34
應該為=1234

但值超過255時
34會自動歸0從新開始(260讀值為5)

不知未何請大大教導一下!

部份程式


存值程式

SPI_8=SPI_ALL/10000000;
SPI_7=(SPI_ALL-(SPI_8*10000000))/1000000 ;

SPI_6=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000))/100000 ;

SPI_5=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000)-(SPI_6*100000))/10000 ;
SPI_4=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000)-(SPI_6*100000)-(SPI_5*10000))/1000 ;
SPI_3=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000)-(SPI_6*100000)-(SPI_5*10000)-(SPI_4*1000))/100 ;
SPI_2=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000)-(SPI_6*100000)-(SPI_5*10000)-(SPI_4*1000)-(SPI_3*100))/10 ;
SPI_1=(SPI_ALL-(SPI_8*10000000)-(SPI_7*1000000)-(SPI_6*100000)-(SPI_5*10000)-(SPI_4*1000)-(SPI_3*100)-(SPI_2*10));

SPI_A4=SPI_8*10+SPI_7;
SPI_A3=SPI_6*10+SPI_5;
SPI_A2=SPI_4*10+SPI_3;
SPI_A1=SPI_2*10+SPI_1;

SPI_EEPROM_ByteWrite( 0x10 , SPI_A4 ) ;
while ( ! SPI_EE_Ready() ) ;
SPI_EEPROM_ByteWrite( 0x20 , SPI_A3 ) ;
while ( ! SPI_EE_Ready() ) ;
SPI_EEPROM_ByteWrite( 0x30 , SPI_A2 ) ;
while ( ! SPI_EE_Ready() ) ;
SPI_EEPROM_ByteWrite( 0x40 , SPI_A1 ) ;


讀值程式

EEPROM_A4 = SPI_EEPROM_ByteRead( 0x10 ) ;
EEPROM_A3 = SPI_EEPROM_ByteRead( 0x20 ) ;
EEPROM_A2 = SPI_EEPROM_ByteRead( 0x30 ) ;
EEPROM_A1 = SPI_EEPROM_ByteRead( 0x40 ) ;

EEPROM_ALL=EEPROM_A4*1000000+EEPROM_A3*10000+EEPROM_A2*100+EEPROM_A1;

setcurLCD(0,1);
put_Num_LCD(EEPROM_ALL) ;

setcurLCD(10,1);
put_Num_LCD(EEPROM_A1) ;

發表於: 2009/10/26 21:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------