音頻信號(hào)頻譜分析及銀行存取款管理_第1頁(yè)
音頻信號(hào)頻譜分析及銀行存取款管理_第2頁(yè)
音頻信號(hào)頻譜分析及銀行存取款管理_第3頁(yè)
音頻信號(hào)頻譜分析及銀行存取款管理_第4頁(yè)
音頻信號(hào)頻譜分析及銀行存取款管理_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

音頻信號(hào)頻譜分析摘要在當(dāng)今的數(shù)字化時(shí)代背景下,DSP已成為通信、計(jì)算機(jī)、消費(fèi)類電子產(chǎn)品等領(lǐng)域的基礎(chǔ)器件,是集成電路中發(fā)展最快的電子產(chǎn)品,并成為電子產(chǎn)品更新?lián)Q代的決定因素。DSP芯片已經(jīng)被廣泛地應(yīng)用于當(dāng)今技術(shù)革命的各個(gè)領(lǐng)域,而且DSP技術(shù)也正以極快的速度被應(yīng)用在通信、電子系統(tǒng)、信號(hào)處理系統(tǒng)等許多領(lǐng)域中。本次課程設(shè)計(jì)介紹了音頻信號(hào)頻譜分析的原理以及其所涉及的硬件結(jié)構(gòu)和軟件設(shè)計(jì),該設(shè)計(jì)是基于TMS320C5416DSP芯片的音頻信號(hào)頻譜分析的設(shè)計(jì)系統(tǒng)的主要功能對(duì)語(yǔ)音信號(hào)進(jìn)行采樣濾波后FFT變換,并用采集的音頻信號(hào)進(jìn)行頻譜分析,F(xiàn)FT算法采用TLC320AIC23編寫DSP程序?qū)崿F(xiàn)。然后通過(guò)LCD觀察其頻譜分布。關(guān)鍵詞:DSP;音頻信號(hào);頻譜分析;FFT;LCD目錄TOC\o"1-2"\h\u1緒論 11.1選題背景 11.2設(shè)計(jì)要求 12系統(tǒng)總硬件設(shè)計(jì)方案 22.1硬件系統(tǒng)框圖 22.2TLV320AIC23芯片簡(jiǎn)介 22.3TMS320C5416DSP芯片 32.412864LCD 33系統(tǒng)模塊設(shè)計(jì) 43.1語(yǔ)音信號(hào)采集模塊 43.2語(yǔ)音信號(hào)處理模塊 83.3LCD顯示模塊 94設(shè)計(jì)結(jié)果顯示 95設(shè)計(jì)心得 11參考文獻(xiàn) 12附錄設(shè)計(jì)程序 13第41頁(yè),共52頁(yè)1緒論1.1選題背景目前,在微電子技術(shù)發(fā)展的帶動(dòng)下,DSP芯片的發(fā)展日新月異,DSP的功能日益強(qiáng)大,性能價(jià)格比不斷上升,開(kāi)發(fā)手段不斷改進(jìn)。DSP芯片已經(jīng)完全走下了“貴族”的圣壇。DSP芯片已經(jīng)在通信與電子系統(tǒng)、信號(hào)處理系統(tǒng)、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器、電力系統(tǒng)等許多領(lǐng)域中得到了廣泛的應(yīng)用,而且新的應(yīng)用領(lǐng)域在不斷地被發(fā)掘。DSP處理速度快,功耗低,性能好,基于TMS320C5416DSP芯片的語(yǔ)音存儲(chǔ)容量大,具有很好的通信音質(zhì)等特點(diǎn),因此被廣泛應(yīng)用于很多領(lǐng)域中。本設(shè)計(jì)實(shí)現(xiàn)的語(yǔ)音分析系統(tǒng)具有如下優(yōu)點(diǎn):1.音頻數(shù)據(jù)占用資源少2.音質(zhì)通信級(jí)3.開(kāi)發(fā)難度低4.語(yǔ)音芯片與DSP接口電路簡(jiǎn)單5.體積小該語(yǔ)音分析系統(tǒng)的設(shè)計(jì)能夠完成語(yǔ)音采集,播放,存儲(chǔ),頻譜分析,基本實(shí)現(xiàn)了語(yǔ)音分析功能。隨著技術(shù)的進(jìn)步,TMS320C5416DSP與TLV320AIC23的結(jié)合的語(yǔ)音編碼方案將會(huì)有更好的應(yīng)用前景。1.2設(shè)計(jì)要求DSP課程設(shè)計(jì)是對(duì)《數(shù)字信號(hào)處理》、《DSP原理及應(yīng)用》等課程的較全面練習(xí)和訓(xùn)練,是實(shí)踐教學(xué)中的一個(gè)重要環(huán)節(jié)。通過(guò)本次課程設(shè)計(jì),綜合運(yùn)用數(shù)字信號(hào)處理、DSP技術(shù)課程以及其他有關(guān)先修課程的理論和生產(chǎn)實(shí)際知識(shí)去分析和解決具體問(wèn)題,并使所學(xué)知識(shí)得到進(jìn)一步鞏固、深化和發(fā)展。初步培養(yǎng)學(xué)生對(duì)工程設(shè)計(jì)的獨(dú)立工作能力,掌握電子系統(tǒng)設(shè)計(jì)的一般方法。通過(guò)課程設(shè)計(jì)完成基本技能的訓(xùn)練,如查閱設(shè)計(jì)資料和手冊(cè)、程序的設(shè)計(jì)、調(diào)試等,提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力。本題目通過(guò)TLC320AIC23采集音頻信號(hào)(f.max<10kHz),編寫DSP的FFT處理程序(自定頻譜分辨力),獲得幅頻特性之后,在點(diǎn)陣液晶中大致顯示出幅頻圖。并在液晶中用文字顯示頻率幅值前三的頻率值。DSP與TLC320AIC23接口電路的原理圖繪制;DSP控制TLC320AIC23的程序編寫與調(diào)試;TLC320AIC23進(jìn)行語(yǔ)音模擬量到數(shù)字信號(hào)的轉(zhuǎn)換,實(shí)現(xiàn)聲音的采集,在CCS軟件中分析信號(hào)的幅頻特性;編寫DSP的FFT處理程序;控制點(diǎn)陣液晶,實(shí)現(xiàn)繪圖功能,將幅頻圖顯示出來(lái);按要求編寫課程設(shè)計(jì)報(bào)告書(shū),正確、完整的闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果;在報(bào)告中繪制程序的流程圖,并文字說(shuō)明。2系統(tǒng)總硬件設(shè)計(jì)方案2.1硬件系統(tǒng)框圖本系統(tǒng)用DSP芯片TMS320C5416與音頻編解碼芯片TLV320AIC23實(shí)現(xiàn)硬件接口和軟件設(shè)計(jì),并在此硬件基礎(chǔ)上實(shí)現(xiàn)語(yǔ)音信號(hào)的采集、頻譜分析并用LCD顯示語(yǔ)音信號(hào)的幅頻特性曲線。本系統(tǒng)包括音頻采集、DSP對(duì)語(yǔ)音信號(hào)的處理、LCD顯示三部分。系統(tǒng)結(jié)構(gòu)如圖2-1所示:TLV320AIC23TLV320AIC23TMS320C5416DSP12864LCD音頻信號(hào)輸入數(shù)據(jù)接口控制接口圖2-12.2TLV320AIC23芯片簡(jiǎn)介TLV320AIC23(以下簡(jiǎn)稱AIC23)是TI推出的一款高性能的立體聲音頻Codec芯片,內(nèi)置耳機(jī)輸出放大器,支持MIC和LINEIN兩種輸入方式(二選一),且對(duì)輸入和輸出都具有可編程增益調(diào)節(jié)。AIC23的模數(shù)轉(zhuǎn)換(ADCs)和數(shù)模轉(zhuǎn)換(DACs)部件高度集成在芯片內(nèi)部,采用了先進(jìn)的Sigma-delta過(guò)采樣技術(shù),可以在8K到96K的頻率范圍內(nèi)提供16bit、20bit、24bit和32bit的采樣,ADC和DAC的輸出信噪比分別可以達(dá)到90dB和100dB。與此同時(shí),AIC23還具有很低的能耗,回放模式下功率僅為23mW,省電模式下更是小于15uW。由于具有上述優(yōu)點(diǎn),使得AIC23是一款非常理想的音頻模擬I/O器件,可以很好的應(yīng)用在隨聲聽(tīng)(如CD,MP3……)、錄音機(jī)等數(shù)字音頻領(lǐng)域。2.3TMS320C5416DSP芯片系統(tǒng)采用的主芯片是TI公司的一款16位定點(diǎn)DSP:TMS320C5416(以下簡(jiǎn)稱C5416),主要是考慮到C5416片內(nèi)具有128K*16位的內(nèi)部RAM,這對(duì)提高系統(tǒng)總體性能和集成度有很大的幫助。另外C5416還具有3個(gè)MCBSP多通道緩沖串口,該串口與SPI器件兼容,提供多達(dá)128個(gè)發(fā)送和接收通道。與其他C54xDSP芯片一樣C5416具有功耗低、運(yùn)算速率高、性價(jià)比高的優(yōu)點(diǎn)。另外C5416具有如下特點(diǎn):當(dāng)核電壓為1.6伏特時(shí)的工作頻率可達(dá)到160MIPS;能訪問(wèn)64K數(shù)據(jù)存儲(chǔ)空間、64KI/O空間、以及192K程序存儲(chǔ)空間。TMS320C5416作為主芯片實(shí)現(xiàn)語(yǔ)音信號(hào)采集、存儲(chǔ)和各模塊之間的通信等控制,其主要功能有:上電自舉,讀取鍵盤值并初始化音頻編碼芯片和液晶屏,控制TLV320AIC23并通過(guò)液晶屏顯示TLV320AIC23的工作狀態(tài),TMS320C5416通過(guò)以下引腳與TLV320AIC23連接。BCLKX0/BCLKX1:緩沖串口0和1的發(fā)送時(shí)鐘,用于對(duì)來(lái)自緩沖串行口發(fā)送移位寄存器和傳送至數(shù)據(jù)發(fā)送引腳的數(shù)據(jù)進(jìn)行定時(shí);BDX0/BDX1:緩沖串行口數(shù)據(jù)發(fā)送端,來(lái)自緩沖串行口發(fā)送移位寄存器中的數(shù)據(jù)經(jīng)該引腳串行發(fā)送;BFSX0/BFSX1:用于發(fā)送輸出的幀同步脈沖;BDR0:緩沖串行口數(shù)據(jù)接收端;BFSR0:用于接收輸入的幀同步脈沖;X2/CLKIN:由晶振接到內(nèi)部振蕩器的輸入引腳。2.412864LCD帶中文字庫(kù)的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集.利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。3系統(tǒng)模塊設(shè)計(jì)3.1語(yǔ)音信號(hào)采集模塊從適應(yīng)語(yǔ)音信號(hào)頻率、滿足實(shí)時(shí)性、降低成本、簡(jiǎn)化設(shè)計(jì)的要求出發(fā),本系統(tǒng)選擇TLV320AIC23。TLV320AIC23是一種高性能的立體聲音頻Codec芯片作為從設(shè)備,主要完成輸入語(yǔ)音信號(hào)的A/D轉(zhuǎn)換,語(yǔ)音采樣編解碼及濾波處理,該芯片構(gòu)成簡(jiǎn)單,功能強(qiáng)大。AIC23的管腳和內(nèi)部結(jié)構(gòu)框圖如下:

從上圖可以看出,AIC23主要的外圍接口分為以下幾個(gè)部分:一.?dāng)?shù)字音頻接口:主要管腳為

BCLK-數(shù)字音頻接口時(shí)鐘信號(hào)(bit時(shí)鐘),當(dāng)AIC23為從模式時(shí)(通常情況),該時(shí)鐘由DSP產(chǎn)生;AIC23為主模式時(shí),該時(shí)鐘由AIC23產(chǎn)生;

LRCIN-數(shù)字音頻接口DAC方向的幀信號(hào)(I2S模式下word時(shí)鐘)

LRCOUT-數(shù)字音頻接口ADC方向的幀信號(hào)

DIN-數(shù)字音頻接口DAC方向的數(shù)據(jù)輸入

DOUT-數(shù)字音頻接口ADC方向的數(shù)據(jù)輸出

這部分可以和DSP的McBSP(Multi-channelbufferedserialport,多通道緩存串口)無(wú)縫連接,唯一要注意的地方是McBSP的接收時(shí)鐘和AIC23的BCLK都由McBSP的發(fā)送時(shí)鐘提供。二.麥克風(fēng)輸入接口:主要管腳為

MICBIAS-提供麥克風(fēng)偏壓,通常是3/4AVDD

MICIN-麥克風(fēng)輸入,由AIC結(jié)構(gòu)框圖可以看出放大器默認(rèn)是5倍增益

連接示意圖如下:

三.LINEIN輸入接口:主要管腳為

LLINEIN-左聲道LINEIN輸入

RLINEIN-右聲道LINEIN輸入

連接示意圖如下:

四.耳機(jī)輸出接口:主要管腳為

LHPOUT-左聲道耳機(jī)放大輸出

RHPOUT-右聲道耳機(jī)放大輸出

LOUT-左聲道輸出

ROUT-右聲道輸出

從框圖可以看出,LOUT和ROUT沒(méi)有經(jīng)過(guò)內(nèi)部放大器,所以設(shè)計(jì)中常用LHPOUT和RHPOUT,連接示意圖如下:

五.配置接口:主要管腳為

SDIN-配置數(shù)據(jù)輸入

SCLK-配置時(shí)鐘

DSP通過(guò)該部分配置AIC23的內(nèi)部寄存器,每個(gè)word的前7bit為寄存器地址,后9bit為寄存器內(nèi)容。六.其他:主要管腳為

MCLK-芯片時(shí)鐘輸入(12.288M、11.2896M、18.432M、16.9344M)

VMID-半壓輸入,通常由一個(gè)10U和一個(gè)0.1U電容并聯(lián)接地

MODE-芯片工作模式選擇,Master或者Slave

CS-片選信號(hào)(配置時(shí)有效)

CLKOUT-時(shí)鐘輸出,可以為MCLK或者M(jìn)CLK/2(詳見(jiàn)寄存器配置)TLV320AIC23通過(guò)以下引腳與TMS320C5416連接。BCLK:I2S(一種TLV320AIC23的數(shù)字音頻接口支持的通用的音頻格式)串行數(shù)據(jù)傳輸時(shí)鐘,當(dāng)TLV320AIC23為主模式時(shí)BCLK由TLV320AIC23產(chǎn)生并提供給DSP,頻率為主時(shí)鐘的1/4,當(dāng)從模式時(shí)由DSP產(chǎn)生;DIN:I2S格式串行數(shù)據(jù)輸入端,送入立體聲DAC;DOUT:I2S格式串行數(shù)據(jù)輸出端,由立體聲ADC產(chǎn)生;LRCIN/LRCOUT:I2S格式數(shù)據(jù)輸入/出幀同步信號(hào);SCLK:控制端口移位時(shí)鐘;SDIN:控制端口串行數(shù)據(jù)輸入,用來(lái)傳輸配置TLV320AIC23內(nèi)部寄存器數(shù)據(jù);/CS:控制端口輸入和地址鎖存選擇端,在SPI控制模式下,作為數(shù)據(jù)鎖存控制端,在I2C模式下,定義外設(shè)的7位地址;XTI/MCLK:晶體或外部時(shí)鐘輸入端,TLV320AIC23內(nèi)部時(shí)鐘由它產(chǎn)生。TLV320AIC23的工作時(shí)鐘由外接的一個(gè)11.2896M的晶振提供,TLV320AIC23從電路模塊電路如圖3-1所示。圖3-1TLV320AIC23從電路模塊電路3.2語(yǔ)音信號(hào)處理模塊有語(yǔ)音信號(hào)采集模塊所采集的模塊經(jīng)過(guò)A/D轉(zhuǎn)換輸入TMS320C5416DSP芯片對(duì)其進(jìn)行FFT運(yùn)算,得其幅頻特性曲線。FFT算法的實(shí)現(xiàn)主要分為三個(gè)步驟:1.實(shí)現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn),輸入數(shù)據(jù)的比特翻轉(zhuǎn)實(shí)際上就是將輸入數(shù)據(jù)進(jìn)行位碼倒置,以便在整個(gè)運(yùn)算后的輸出序列是一個(gè)自然序列。2.實(shí)現(xiàn)N點(diǎn)復(fù)數(shù)FFT,這一過(guò)程的實(shí)現(xiàn)分為三個(gè)功能塊,即第一級(jí)蝶形運(yùn)算、第二級(jí)蝶形運(yùn)算、第三級(jí)蝶形運(yùn)算乃至log2N級(jí)蝶形運(yùn)算。對(duì)于任何一個(gè)2的整數(shù)冪N=2m,總可以通過(guò)M次分解到2點(diǎn)的DFT計(jì)算。通過(guò)這樣的M次分解,可構(gòu)成M(log2N)級(jí)迭代計(jì)算,每級(jí)由N/2個(gè)蝶形運(yùn)算組成。3.功率譜計(jì)算,即計(jì)算X(k)=X(n)WNnk,X(k)一般是由實(shí)部和虛部組成。因此計(jì)算功率普時(shí),只需將FFT變換好的數(shù)據(jù),按照實(shí)部和虛部求它們的平方和即可。設(shè)計(jì)的子程序流圖如圖3-2所示;初始化初始化輸入數(shù)組排序計(jì)算第一層中間值計(jì)算層數(shù)計(jì)算對(duì)應(yīng)層步長(zhǎng)計(jì)算計(jì)算各層中間結(jié)果計(jì)算結(jié)果輸出計(jì)算層數(shù)=0?YN圖3-2FFT運(yùn)算子程序流圖3.3LCD顯示模塊本設(shè)計(jì)中,采用并行8位數(shù)據(jù)接口輸入方式,把LCD映射到DSP芯片的I/O空間,通過(guò)讀寫I/O地址來(lái)控制液晶,TMS320C5416DSP芯片對(duì)該地址輸出數(shù)據(jù),實(shí)現(xiàn)LCD的顯示控制。LCD顯示子程序流程圖如圖3-3所示。圖3-3LCD顯示子程序流圖4設(shè)計(jì)結(jié)果顯示運(yùn)用C語(yǔ)言編寫設(shè)計(jì)所需要的程序(見(jiàn)附錄),把程序下載到的實(shí)驗(yàn)箱中,觀察LCD上所顯示的幅頻特性曲線如圖4-1,圖4-2所示。圖4-1基波幅頻特性曲線圖4-2混頻信號(hào)幅頻特性曲線上圖中所顯示的分別是基波和基波三次諧波以及五次諧波所疊加而得信號(hào)的幅頻特性曲線,并且所給信號(hào)是一定的,LCD的只進(jìn)行一次掃描,并且是點(diǎn)狀圖。對(duì)程序稍作修改可以實(shí)現(xiàn)動(dòng)態(tài)顯示,也可以實(shí)現(xiàn)用柱形圖來(lái)表示頻譜,如圖4-3所示。圖4-3幅頻特性柱狀圖5設(shè)計(jì)心得這兩周的課程設(shè)計(jì)實(shí)習(xí)周終于結(jié)束了,通過(guò)兩周以來(lái)同學(xué)和老師的共同努力,我們終于完成了設(shè)計(jì)要求。但大家臉上的表情都是欣慰和歡喜的,到底工夫不負(fù)有心人。回想過(guò)去兩周,這里面的辛苦只有做是課程設(shè)計(jì)的人才明白,才能體會(huì)。通過(guò)這種綜合性訓(xùn)練,要學(xué)生達(dá)到以下的目的和要求:1.結(jié)合課程中所學(xué)的理論知識(shí),獨(dú)立設(shè)計(jì)方案。達(dá)到學(xué)有所用的目的。2.學(xué)會(huì)查閱相關(guān)手冊(cè)與資料,通過(guò)查閱手冊(cè)和文獻(xiàn)資料,并掌握合理選用的原則,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力。這次設(shè)計(jì)我們學(xué)到了很多東西,雖然作出來(lái)的東西很基礎(chǔ),但是我們加深了對(duì)知識(shí)的理解和掌握。作為一名大四的學(xué)生,我覺(jué)得能做類似的課程設(shè)計(jì)是十分有意義的。同時(shí)這是一次團(tuán)隊(duì)合作開(kāi)發(fā)過(guò)程,一次難得的經(jīng)歷。通過(guò)此次設(shè)計(jì)試驗(yàn)也著重能夠?qū)W到許多東西。如果說(shuō)任何機(jī)會(huì)都是需要去創(chuàng)造出來(lái)的話,那么那個(gè)創(chuàng)造者,其實(shí)就是你自己。時(shí)間過(guò)得真快,轉(zhuǎn)眼間已經(jīng)有兩個(gè)星期了,現(xiàn)在回想起來(lái),往事還歷歷在目。但是不可否認(rèn)的卻是這些經(jīng)歷將會(huì)是我人生當(dāng)中不可多得的財(cái)富和經(jīng)驗(yàn)的累積。參考文獻(xiàn)[1]鄒彥.DSP原理及應(yīng)用[M].北京:電子工業(yè)出版社,2005,1.[2]戴明楨.TMS320C54xDSP結(jié)構(gòu)、原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2001,8.[3]胡圣堯.DSP原理及應(yīng)用[M].東南大學(xué)出版社,2008.7.[4]清源科技.TMS320C54xDSP應(yīng)用程序設(shè)計(jì)教程[M].機(jī)械工業(yè)出版社,2004,1.[5]清源科技.TMS320C54x硬件開(kāi)發(fā)教程[M].機(jī)械工業(yè)出版社,2003,1.附錄設(shè)計(jì)程序//頭文件//#include"MMRegs.h"#include"DspRegDefine.h"http://VC5402寄存器定義#include<math.h>#include<stdio.h>///*******************宏定義****************************************************************************/#defineUCHAR unsignedchar#defineUINT16 unsignedint#defineUINT32 unsignedlong#defineTRUE 1#defineFALSE 0#defineLEN128////LCD指令//基本指令集RE=0#defineCLEAR0x0001//清除顯示#defineRESAC0x0002//位址歸位#defineSETPOINT0x0006//進(jìn)入點(diǎn)設(shè)定,游標(biāo)右移,DDRAM位址計(jì)數(shù)器(AC)加1#defineCURSOR0x000F//整體顯示,游標(biāo)顯示,游標(biāo)位置反白#defineMCURSOR0x0014//游標(biāo)向右移動(dòng),AC=AC+1#defineFUCSET0x0030//功能設(shè)定,BITMPU控制界面,基本指令集,默認(rèn)設(shè)置#defineCGRAMAC0x0040//設(shè)定CGRAM位址#defineDDRAMAC0x0080//設(shè)定DDRAM位址//第一行AC範(fàn)圍為80H..8FH//第二行AC範(fàn)圍為90H..9FH//第三行AC範(fàn)圍為A0H..AFH//第四行AC範(fàn)圍為B0H..BFH//#defineREADBFRS=0,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//BFAC6AC5AC4AC3AC2AC1AC0//讀取忙碌旗標(biāo)(BF)和位址//就是讀取指令寄存器,PORT8006,BF=1,表示LCD忙碌//#defineWRITERAMRS=1,RW=0,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//D7D6D5D4D3D2D1D0//寫入資料到RAM//就是寫數(shù)據(jù)寄存器:PORT8005//#defineREADRAMRS=1,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//D7D6D5D4D3D2D1D0//讀取RAM的值//就是從數(shù)據(jù)寄存器讀取資料,PORT8007//擴(kuò)充指令集RE=1#defineIDLE0x01//待命模式#defineCGRAMSET0x02//捲動(dòng)位址或RAM位址選擇#defineREVERSE0x04//反白選擇#defineSLEEP0x0c//脫離睡眠模式#defineEFUCSET0x66//擴(kuò)充功能設(shè)定,8BITMPU控制界面,為擴(kuò)充指令集動(dòng)作,繪圖顯示ON#defineSISA0x40//設(shè)定IRAM位址或捲動(dòng)位址#defineSETGDRAM0x80//設(shè)定繪圖RAM位址#defineLength128//FFT的點(diǎn)數(shù)/////*端口定義*///ioportUINT16port8002;ioportUINT16port8006;//串行時(shí)鐘地址ioportUINT16port8007;//串行數(shù)據(jù)地址///*全局變量定義*///UINT16data_buff[LEN];UCHARdata_buffer[128];UCHARdata_picture[16*64];doublepr[128],pi[128],fr[128],fi[128],result[128];constdoublepp=3.1415926;UINT16iii=0;/**************************************************************************************所使用的函數(shù)原型****************************************************************************************/voidcpu_init(void);//初始化CPUvoidDelay(UINT16numbers);//延遲externvoiddelay_100us(void);//100us延遲--指令之間的延遲externvoiddelay_1us(void);//1us延遲--時(shí)鐘之間的延遲voiddelay_50ms(void);//50ms延遲--復(fù)位延遲voiddelay_20ms(void);//20ms延遲--清屏延遲voidSendByte(UCHARdat);//串行發(fā)送一字節(jié)數(shù)據(jù)voidSendCMD(UCHARdat);//寫指令寄存器voidSendDat(UCHARdat);//寫顯示數(shù)據(jù)或單字節(jié)字符voidDisplay(UCHARx_add,UCHARdat1,UCHARdat2);//寫漢字到LCD指定的位置voidxint2_init(void);//外部中斷2初始化子程序interruptvoidExtInt2();//中斷2中斷子程序voidInitlcd(void);//初始化LCdvoiddisplay_lcd();voidbuffer();voiddata_switch(unsignedchar*ptr);voidkfft(doublepr[128],doublepi[128],intn,intk,doublefr[128],doublefi[128],intl,intil);///************************************************************************* ***********************函數(shù)定義*******************************************************************************************/////函數(shù)名稱:voidcpu_init(void)//函數(shù)說(shuō)明:初始化CPU//輸入?yún)?shù):無(wú)//輸出參數(shù):無(wú)//voidxint2_init()//外部中斷2初始化子程序{*(unsignedint*)IMR=0x0004;//使能int2中斷/*bit151:XINT2flag--write"1"toclearbit14-30:reservedbit21:XINT2Polarity--"1"risingeagebit10:XINT2Priority--"0"Highprioritybit01:XINT2Enable--"1"Enableinterrupt*/asm("rsbxINTM");//開(kāi)總中斷}interruptvoidExtInt2()//中斷2中斷子程序{*(unsignedint*)IFR=0xFFFF;//清除所有中斷標(biāo)志,"寫1清0",這個(gè)語(yǔ)句可以省略,響應(yīng)中斷自動(dòng)清除中斷標(biāo)志//讀AD7822的轉(zhuǎn)換結(jié)果data_buff[iii]=port8002&0x00ff;iii++;if(iii==256)iii=0;//在此設(shè)斷點(diǎn)return;}voidcpu_init(void){ asm("nop"); asm("nop"); asm("nop");// //CLKMDDEFINITIONS: //PLLMUL(bit15-12)-0000PLLmultiplier=0(multby1)//PLLDIV(bit11)-0PLLdivider=0(divby1)//PLLCOUNT(bit10-3)-11111111PLLcountersettomax//PLLONOFF(bit2)-1PLLon//PLLNDIV(bit1)-1SelectPLLmode//PLLSTATUS(bit1)-xPLLStatus(readonly)////0000011111111111=0x07ffCLKMD=1XCLKIN// *(unsignedint*)CLKMD=0x0;//switchtoDIVmodeclkout=1/2clkinwhile(((*(unsignedint*)CLKMD)&01)!=0);*(unsignedint*)CLKMD=0x07ff;//switchtoPLLX1mode////ST0DEFINITIONS://ARP(bit15-13)-000Auxiliaryregisterpointer//TC(bit12)-1Test/controlflag//C(bit11)-1Carryissetto1iftheresultofanadditiongeneratesacarry;itisclearedto0ifthe//resultofasubtractiongeneratesaborrow.//OVA(bit10)-0OverflowflagforaccumulatorA//OVB(bit9)-0OverflowflagforaccumulatorB//DP(bit8-0)-00000000Data-memorypagepointer////0001100000000000=0x1800Resetvalue////*(unsignedint*)ST0=0x1800;////ST1DEFINITIONS://BRAF(bit15)-0Block-repeatactiveflag//CPL(bit14)-1CompilermodeCPL=0DP;CPL=1SP//XF(bit13)-1XFstatus//HM(bit12)-0Holdmode//INTM(bit11)-1InterruptmodeINTM=0,Allunmaskedinterruptsareenabled//Reser(bit10)-0Alwaysreadas0//OVM(bit9)-0Overflowmode//SXM(bit8)-1Sign-extensionmode//C16(bit7)-0Dual16-Bit/double-precisionarithmeticmode//FRCT(bit6)-0Fractionalmode//CMPT(bit5)-0Compatibilitymode//ASM(bit4-0)-00000Accumulatorshiftmode////0110100100000000=0x2900Resetvalue////*(unsignedint*)ST1=0x6900;////IPTRDEFINITIONS?//IPTR(bit15-7)-001111111Run-timeInterruptvectorlocation=0x3f80(fornow)//MP/~MC(bit6)-1TurnoffinternalInstructionROM(useRAM)//OVLY(bit5)-1TurnoninternalRAM//AVIS(bit4)-1Addressvisibilityon//DROM(bit3)-0DataROMofFF00~FFFFisexternal//CLKOFF(bit2)-0Clockoutenabled,onlyforuseclkout=cpuclock//SMUL(bit1)-1SaturatebeforemultiplyonMAC//SST(bit0)-0Donotsaturatebeforestore////0011111111110010=0x3ff2/**/ *(unsignedint*)PMST=0x3FF2;// //SWWSRDEFINITIONS?//XPA(bit15)-0Extendedprogramaddresscontrolbit.XPAisusedinconjunctionwiththeprogramspacefields//(bits0through5)toselecttheaddressrangeforprogramspacewaitstates//I/O(bits14-12)-111settomaxwaitstatesforseven//Data1(bits11-9)-111SevenWaitstateforUpperdataspace(0x8000-0xFFFF)//Data2(bits8-6)-111SevenWaitstatesforLowerdataspace(0x0000-0x7FFF)//Prog1(bits5-3)-111SevenWaitstateforUpperprogramspace.(xx8000-xxFFFF)//Prog2(bits2-0)-111SevenWaitstatesforProgramspace.(xx0000-xx7FFF)////1111111111111111-0x7fff/**/ *(unsignedint*)SWWSR=0x7fff;////SWCRDEFINITIONS?//Reserved(bits15-1)//SWSM(bit0)-1wait-statebasevaluesaremulitpliedby2//foramaximumof14waitstates.////0000000000000001// *(unsignedint*)SWCR=0x0001;////BSCRDEFINITIONS?//BNKCMP(bit15-12)-1111Bankcompare.Determinestheexternalmemory-banksize.BNKCMPisusedtomaskthefourMSBsof//anaddress.//11114k//11108k//110016k//100032k//000064k//PS-DS(bit11)-1Oneextracycleisinsertedbetweenconsecutivedataandprogramreads.//Reserved(bits10-3)-00000000//HBH (bit2)-0Thehpibusholderisdisabled//BH(bit1)-0Thedatabusholderisdisabled//EXIO(bit0)-0Theexternalbusinterfacefunctionsasusual////1111100000000000//*(unsignedint*)BSCR=0xf800;// asm("ssbxintm");//Disableallmaskinterrupts////IMRDEFINITIONS //Writinga1toanyIMRbitpositionenablesthecorrespondinginterrupt(whenINTM=0)//Reserved(bits15-14)-xx//DMAC5(bit13)-0DMAchannel5interruptmaskbit//DMAC4(bit12)-0DMAchannel4interruptmaskbit//BXINT1/DMAC3(bit11)-0McBSP1transmitinterruptmaskbit,ortheDMAchannel3//BRINT1/DMAC2(bit10)-0McBSP1receiveinterruptmaskbit,ortheDMAchannel2//HPINT(bit9)-0Hostto’54xinterrup/mask//INT3(bit8)-0Externalinterrupt3mask//TINT1/DMAC1(bit7)-0timer1interruptmaskbit,ortheDMAchannel1interruptmaskbit//DMAC0(bit6)-0reserved,ortheDMAchannel0interruptmaskbit//BXINT0(bit5)-0McBSP0transmitinterruptmaskbit//BRINT0(bit4)-0McBSP0receiveinterruptmaskbit//TINT0(bit3)-0Timer0interruptmaskbit//INT2(bit2)-0Externalinterrupt2maskbit//INT1(bit1)-0Externalinterrupt1maskbit//INT0(bit0)-0Externalinterrupt0maskbit////0000000000000000// *(unsignedint*)IMR=0x0;////IFRDEFINITIONS //Writinga1toanyIFRbitpositionclearthecorrespondinginterruptmask,whencorrespondinginterruptoccurIFRcorrespondingbit=1//Reserved(bits15-14)-xx//DMAC5(bit13)-1DMAchannel5interruptflagbit//DMAC4(bit12)-1DMAchannel4interruptflagbit//BXINT1/DMAC3(bit11)-1McBSP1transmitinterruptflagbit,ortheDMAchannel3//BRINT1/DMAC2(bit10)-1McBSP1receiveinterruptflagbit,ortheDMAchannel2//HPINT(bit9)-1Hostto’54xinterrutpflak//INT3(bit8)-1Externalinterrupt3flag//TINT1/DMAC1(bit7)-1timer1interruptflagbit,ortheDMAchannel1interruptmaskbit//DMAC0(bit6)-1reserved,ortheDMAchannel0interruptflagbit//BXINT0(bit5)-1McBSP0transmitinterruptflagbit//BRINT0(bit4)-1McBSP0receiveinterruptflagbit//TINT0(bit3)-1Timer0interruptflagbit//INT2(bit2)-1Externalinterrupt2flagbit//INT1(bit1)-1Externalinterrupt1flagbit//INT0(bit0)-1Externalinterrupt0flagbit////1111111111111111/**/ *(unsignedint*)IFR=0xffff;//asm("nop"); asm("nop"); asm("nop"); }/************************************************************-函數(shù)名稱:voidDelay(intnumbers)-函數(shù)說(shuō)明:延時(shí)-輸入?yún)?shù):numbers-輸出參數(shù):無(wú)************************************************************/voidDelay(UINT16numbers){ UINT16i,j; for(i=0;i<4000;i++) for(j=0;j<numbers;j++); }////函數(shù)名稱:voiddelay_50ms(void)//函數(shù)說(shuō)明:50ms延遲//輸入?yún)?shù):無(wú)//輸出參數(shù):無(wú)//voiddelay_50ms(){UINT16i,j;for(i=0;i<=1000;i++);for(j=0;j<=2000;j++);//延遲250*1000*CLKOUT=500000*CLKOUT//1/CLKOUT=0.2us}////函數(shù)名稱:voiddelay_20ms(void)//函數(shù)說(shuō)明:20ms延遲//輸入?yún)?shù):無(wú)//輸出參數(shù):無(wú)//voiddelay_20ms(){UINT16i,j;for(i=0;i<=1000;i++);for(j=0;j<=400;j++);//延遲10*1000*CLKOUT=100000*CLKOUT//1/CLKOUT=0.2us}////函數(shù)名稱:voidSendByte(UCHARdat)串行發(fā)送一字節(jié)數(shù)據(jù)//函數(shù)說(shuō)明:串行發(fā)送一字節(jié)數(shù)據(jù),在時(shí)鐘的上升沿發(fā)送數(shù)據(jù),在時(shí)鐘為低電平時(shí),數(shù)據(jù)變化//輸入?yún)?shù):發(fā)送的數(shù)據(jù)//輸出參數(shù):無(wú)//voidSendByte(UCHARdat){UCHARi;UINT16temp;for(i=0;i<8;i++){temp=port8007;//讀IO8007SCLK="0";if(dat&0x0080)port8006=0;//寫IO8006SID="1",發(fā)送數(shù)據(jù)"1"MSB先發(fā)送elsetemp=port8006;//讀IO8006SID="0",發(fā)送數(shù)據(jù)"0"MSB先發(fā)送port8007=0;//寫IO8007SCLK="1";dat=dat<<1;//數(shù)據(jù)左移,移位到dat.7}temp=port8007;//讀IO8007SCLK="0";}////函數(shù)名稱:voidSendCMD(UCHARdat)寫指令寄存器//函數(shù)說(shuō)明:寫指令寄存器//輸入?yún)?shù):輸入的命令字//輸出參數(shù):無(wú)//voidSendCMD(UCHARdat){SendByte(0x00F8);//11111,00,0RW=0,RS=0同步標(biāo)志SendByte(dat&0x00F0);//高四位SendByte((dat&0x000F)<<4);//低四位}////函數(shù)名稱:voidSendDat(UCHARdat)寫顯示數(shù)據(jù)或單字節(jié)字符//函數(shù)說(shuō)明:寫數(shù)據(jù)寄存器//輸入?yún)?shù):輸入的數(shù)據(jù)//輸出參數(shù):無(wú)//voidSendDat(UCHARdat){SendByte(0x00FA);//11111,01,0RW=0,RS=1SendByte(dat&0x00F0);//高四位SendByte((dat&0x000F)<<4);//低四位}////函數(shù)名稱:voiddisplay(UCHARx_add,UCHARdat1,UCHARdat2)寫漢字到LCD指定的位置//函數(shù)說(shuō)明:x_add顯示RAM的地址,dat1/dat2顯示漢字編碼//輸入?yún)?shù):x_add,dat1/dat2//輸出參數(shù):無(wú)//voidDisplay(UCHARx_add,UCHARdat1,UCHARdat2){SendCMD(x_add);//1xxx,xxxx設(shè)定DDRAM7位地址xxx,xxxx到地址計(jì)數(shù)器ACSendDat(dat1);SendDat(dat2);}////函數(shù)名稱:voidInitlcm(void)//函數(shù)說(shuō)明:初始化LCM//輸入?yún)?shù):無(wú)//輸出參數(shù):無(wú)//voidInitlcd(){asm("nop");delay_50ms();SendCMD(0x30);//功能設(shè)定,8BIT并口,基本指令集delay_100us();SendCMD(0x02);//功能設(shè)定,8BIT并口,基本指令集delay_100us();SendCMD(0x0c);//整體顯示,游標(biāo)顯示,游標(biāo)位置反白delay_100us();SendCMD(0x06);//清除顯示delay_20ms();SendCMD(0x80);//進(jìn)入點(diǎn)設(shè)定,游標(biāo)右移,DDRAM位址計(jì)數(shù)器(AC)加1delay_100us();}voiddisplay_lcd(unsignedchar*ptr){unsignedchari,j,k; SendCMD(0x34);//打開(kāi)擴(kuò)展指令集 i=0x80; for(j=0;j<32;j++) {SendCMD(i++);SendCMD(0x80); for(k=0;k<16;k++) { SendDat(*ptr++); } } i=0x80; for(j=0;j<32;j++) { SendCMD(i++);SendCMD(0x88); for(k=0;k<16;k++) { SendDat(*ptr++); } }SendCMD(0x36);//打開(kāi)繪圖顯示 SendCMD(0x30);//回到基本指令集}/************************************************************* ******************主函數(shù)********************************************************************************/voidbuffer(){ inti;/* for(i=0;i<128;i++) { data_buffer[i]=32.0*(1-sin(pp*i/64));; }*/ for(i=0;i<16*64;i++) { data_picture[i]=0x00; }}voiddata_switch(unsignedchar*ptr){ inti,k; for(i=0;i<128;i++) { k=i%8; switch(k) { case0:data_picture[data_buffer[i]*16+i/8]=0x80|data_picture[data_buffer[i]*16+i/8];break; case1:data_picture[data_buffer[i]*16+i/8]=0x40|data_picture[data_buffer[i]*16+i/8];break; case2:data_picture[data_buffer[i]*16+i/8]=0x20|data_picture[data_buffer[i]*16+i/8];break; case3:data_picture[data_buffer[i]*16+i/8]=0x10|data_picture[data_buffer[i]*16+i/8];break; case4:data_picture[data_buffer[i]*16+i/8]=0x08|data_picture[data_buffer[i]*16+i/8];break; case5:data_picture[data_buffer[i]*16+i/8]=0x04|data_picture[data_buffer[i]*16+i/8];break; case6:data_picture[data_buffer[i]*16+i/8]=0x02|data_picture[data_buffer[i]*16+i/8];break; case7:data_picture[data_buffer[i]*16+i/8]=0x01|data_picture[data_buffer[i]*16+i/8];break; } }}voidkfft(doublepr[128],doublepi[128],intn,intk,doublefr[128],doublefi[128],intl,intil){ intit,m,is,i,j,nv,l0;doublep,q,s,vr,vi,poddr,poddi;for(it=0;it<=n-1;it++){m=it;is=0;for(i=0;i<=k-1;i++){j=m/2;is=2*is+(m-2*j);m=j;}fr[it]=pr[is];fi[it]=pi[is];}pr[0]=1.0;pi[0]=0.0;p=6.283185306/(1.0*n);pr[1]=cos(p);pi[1]=-sin(p);if(l!=0)pi[1]=-pi[1];for(i=2;i<=n-1;i++){p=pr[i-1]*pr[1];q=pi[i-1]*pi[1];s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);pr[i]=p-q;pi[i]=s-p-q;}for(it=0;it<=n-2;it=it+2){vr=fr[it];vi=fi[it];fr[it]=vr+fr[it+1];fi[it]=vi+fi[it+1];fr[it+1]=vr-fr[it+1];fi[it+1]=vi-fi[it+1];}m=n/2;nv=2;for(l0=k-2;l0>=0;l0--){m=m/2;nv=2*nv;for(it=0;it<=(m-1)*nv;it=it+nv)for(j=0;j<=(nv/2)-1;j++){p=pr[m*j]*fr[it+j+nv/2];q=pi[m*j]*fi[it+j+nv/2];s=pr[m*j]+pi[m*j];s=s*(fr[it+j+nv/2]+fi[it+j+nv/2]);poddr=p-q;poddi=s-p-q;fr[it+j+nv/2]=fr[it+j]-poddr;fi[it+j+nv/2]=fi[it+j]-poddi;fr[it+j]=fr[it+j]+poddr;fi[it+j]=fi[it+j]+poddi;}}if(l!=0)for(i=0;i<=n-1;i++){fr[i]=fr[i]/(1.0*n);fi[i]=fi[i]/(1.0*n);}if(il!=0)for(i=0;i<=n-1;i++){pr[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i]);if(fabs(fr[i])<0.000001*fabs(fi[i])){if((fi[i]*fr[i])>0)pi[i]=90.0;elsepi[i]=-90.0;}elsepi[i]=atan(fi[i]/fr[i])*360.0/6.283185306;}}voidmain(){ inti=0;doublemax=0; //系統(tǒng)初始化asm("nop");cpu_init();//初始化CPUasm("nop"); xint2_init();//外部中斷2初始化asm("nop");//LCD初始化asm("nop");Initlcd();for(i=0;i<256;i++)//初始化數(shù)組data_buff[i]=0data_buff[i]=0;Delay(2);//while(1){for(i=0;i<128;i++)//待處理的數(shù)據(jù){pr[i]=sin(2*pp*i)+2*sin(5*pp*i)+sin(7*pp*i);//pr[i]=data_buff[i];pi[i]=0;fr[i]=0;fi[i]=0;}kfft(pr,pi,128,7,fr,fi,0,1);for(i=0;i<128;i++){result[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i]); if(result[i]>max) max=result[i];}for(i=0;i<128;i++){ result[i]=result[i]*64/max; } for(i=0;i<128;i++){ data_buffer[i]=result[i]; }buffer();data_switch(data_buffer);//LCD顯示display_lcd(data_picture);}}課程設(shè)計(jì)任務(wù)書(shū)學(xué)院:機(jī)電工程學(xué)院專業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化班級(jí):學(xué)號(hào):題目:銀行存取款管理一、課程設(shè)計(jì)時(shí)間20**年3月5日~9日(第1周),共計(jì)1周。二、課程設(shè)計(jì)內(nèi)容以VB+Access組合,實(shí)現(xiàn)銀行系統(tǒng)儲(chǔ)戶存取款管理。要求考慮存款類型:活期、定期,要按現(xiàn)有的實(shí)際利率計(jì)算,儲(chǔ)戶數(shù)據(jù)表至少應(yīng)包括:編號(hào)、用戶名稱、身份證號(hào)、密碼、存款日期、存款金額、取款日期、利息等,只有在取款時(shí)才計(jì)算利息。用戶界面中的菜單至少應(yīng)包括“建立新儲(chǔ)戶”、“存款”、“取款”、“退出”4項(xiàng)。三、課程設(shè)計(jì)要求程序質(zhì)量:貫徹事件驅(qū)動(dòng)的程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。課程設(shè)計(jì)說(shuō)明書(shū):課設(shè)結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書(shū)和源程序。課程設(shè)計(jì)說(shuō)明書(shū)的內(nèi)容參見(jiàn)提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:________學(xué)生簽名:________五、成績(jī)六、教師評(píng)語(yǔ)

目錄需求分析 4設(shè)計(jì)分析 4關(guān)鍵技術(shù) 5總結(jié) 9完整的源程序 10參考文獻(xiàn) 13

需求分析以VB+Access組合,實(shí)現(xiàn)銀行系統(tǒng)儲(chǔ)戶存取款管理。要求:考慮存款類型:活期、定期。要按現(xiàn)有的實(shí)際利率計(jì)算。儲(chǔ)戶數(shù)據(jù)表至少應(yīng)包括:編號(hào)、用戶名稱、身份證號(hào)、密碼、存款日期、存款金額、取款日期、利息等,只有在取款時(shí)才計(jì)算利息。用戶界面中的菜單至少應(yīng)包括“建立新儲(chǔ)戶”、“存款”、“取款”、“退出”4項(xiàng)。設(shè)計(jì)分析基本原理:建立程序設(shè)計(jì)與數(shù)據(jù)庫(kù)的連接,用SQL語(yǔ)句在數(shù)據(jù)庫(kù)中查找,添加和更改數(shù)據(jù)??傮w設(shè)計(jì):SQL語(yǔ)言處理SQL語(yǔ)言處理數(shù)據(jù)庫(kù)ADO技術(shù)連接(3)詳細(xì)設(shè)計(jì):開(kāi)始連接數(shù)據(jù)庫(kù)添加數(shù)據(jù)編輯數(shù)據(jù)新建儲(chǔ)戶存款取款開(kāi)始連接數(shù)據(jù)庫(kù)添加數(shù)據(jù)編輯數(shù)據(jù)新建儲(chǔ)戶存款取款查找數(shù)據(jù)1建立與數(shù)據(jù)庫(kù)的連接代碼如下PrivateSubForm_Load()Dimmpath$,mlink$'用代碼設(shè)置ADO控件的Connectionstring屬性和Commangtype屬性mpath=App.Path'獲取程序所在的路徑IfRight(mpath,1)<>"\"Thenmpath=mpath+"\"'判斷是否為子目錄mlink="Provider=Microsoft.Jet.OLEDB.4.0;"'指定提供者mlink=mlink+"DataSource="+mpath+"儲(chǔ)戶信息.mdb"'在數(shù)據(jù)庫(kù)文件名前插入路徑Adodc1.ConnectionString=mlink'設(shè)置連接屬性Adodc1.CommandType=adCmdUnknown'指定命令類型EndSub2新建儲(chǔ)戶是添加數(shù)據(jù)到數(shù)據(jù)庫(kù)中代碼如下PrivateSuba_Click()Adodc1.Recordset.AddNewEndSub界面如下圖一建立新儲(chǔ)戶3刷新設(shè)置代碼如下PrivateSubCommand1_Click()IfText2>""ThenAdodc1.RecordSource="Select*From儲(chǔ)戶信息Where身份證號(hào)='"&Text2&"'"ElseAdodc1.RecordSource="Select*From儲(chǔ)戶信息"EndIfAdodc1.RefreshEndS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論