資源簡介
IC卡水表的源程序, MCU用MSP430單片機(jī)+LCD液晶屏 +讀卡+計(jì)量+電機(jī)控制

代碼片段和文件信息
//****************************************************************************
//??MSP430-41X?Demo?-?Flash?In-System?Programming?
//
//??Description;?This?program?first?erases?flash?seg?A?then?it?increments?all
//??values?in?seg?A?then?it?erases?seg?B?then??copies?seg?A?to?seg?B.
//??Assumed?MCLK?550kHz?-?900kHz.
//
//???????????????MSP430F413
//????????????-----------------
//????????/|\|??????????????XIN|-??
//?????????|?|?????????????????|?
//?????????--|RST??????????XOUT|-
//???????????|?????????????????|
//
//??Donghai?CHeng
//??Lierda?Inc
//??NOVEMBER?2004
//??Built?with?IAR?embedded?Workbench?Version:?2.21B
//******************************************************************************
#include?“msp430x41x.h“
/****************擦除信息斷數(shù)據(jù)*************************/
void?info_flash_erase(unsigned?char?*erase_address)
{
?FCTL2?=?FWKEY?+?FSSEL_1?+?FN4;
?FCTL1?=?FWKEY?+?ERASE;
?FCTL3?=?FWKEY;
?*erase_address?=?0xFF;
}
/**********將RAM區(qū)數(shù)據(jù)copy至Flash信息段***************/
void?info_flash_copy(unsigned?char?*source_addressunsigned?char?*target_addressunsigned?int?flash_length)
{
?unsigned?int?i;
?FCTL2?=?FWKEY?+?FSSEL_1?+?FN4;
?FCTL3?=?FWKEY;
?FCTL1?=?FWKEY?+?WRT;
?for?(i=0;?i ??{
????*target_address++?=?*source_address++;?????????//?Write?value?to?flash
??}
?FCTL1?=?FWKEY;??????????????????//?Clear?WRT?bit
?FCTL3?=?FWKEY?+?LOCK;?
}
/**********連續(xù)寫數(shù)據(jù)至Flash信息段*****************/
void?info_flash_write(unsigned?char?targetunsigned?char?*target_addressunsigned?int?flash_length)
{
?unsigned?int?i;
?FCTL2?=?FWKEY?+?FSSEL_1?+?FN4;
?FCTL3?=?FWKEY;
?FCTL1?=?FWKEY?+?WRT;
?for?(i=0;?i ??{
????*target_address++=?target;?????????//?Write?value?to?flash
??}
?FCTL1?=?FWKEY;??????????????????//?Clear?WRT?bit
?FCTL3?=?FWKEY?+?LOCK;
}
/**********將Flash信息段數(shù)據(jù)copy至RAM區(qū)************/
void?flash_to_ram_copy(unsigned?char?*source_addressunsigned?char?*target_addressunsigned?int?length)
{
????unsigned?int?i;
????for?(i=0;?i ????{
?????*target_address++=?*source_address++;
????}
}
/***************數(shù)據(jù)從A段copy?至B段**************/
void?infoA_to_infoB(void)?????
{
?unsigned?int?i;
?char?*Flash_ptrA;
?char?*Flash_ptrB;
?Flash_ptrA=(char?*)?0x1080;
?Flash_ptrB=(char?*)?0x1000;
?info_flash_erase((unsigned?char?*)0x1080);
?FCTL2?=?FWKEY?+?FSSEL_1?+?FN4;
?FCTL3?=?FWKEY;
?FCTL1?=?FWKEY?+?WRT;
?for?(i=0;?i<128;?i++)
??{
????*Flash_ptrA++=*Flash_ptrB++?;?????????//?Write?value?to?flash
??}
?FCTL1?=?FWKEY;??????????????????//?Clear?WRT?bit
?FCTL3?=?FWKEY?+?LOCK;
}
/****主程序*****/
void?main(void)
{
??unsigned?char?Data[10]={12345678910};????????//數(shù)據(jù)緩存區(qū)
??WDTCTL?=?WDTPW?+?WDTHOLD;
??SCFQCTL=31;?????????????????//MCLK=32*ACLK=1024KHzDCO+=0
??SCFI0=0;
??FLL_CTL0?|=?XCAP18PF;
??
??info_flash_write(0x11(unsigned?char?*)0x100010);?????//從從0x1000開始連續(xù)寫10個(gè)字節(jié)0x11;
??info_flash_erase((unsigned?char?*)0x1000);???????????????//擦除B段數(shù)據(jù)(0x1
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3441??2005-01-10?10:50??Flash_Operation.c
?????文件??????11545??2005-02-21?11:38??IC_Card+Measure+LCD.c
?????文件???????7172??2005-01-13?14:32??Motor_Operation+LCD.c
-----------?---------??----------?-----??----
????????????????22158????????????????????3
評(píng)論
共有 條評(píng)論