【正文】
CY D_SCLK 1 D_SCLK 0 D_CS 1 void SET_FRQ uchar p uint tab[4] uchar i SendData 0XF800 發(fā)控制字 SendData 0XA000 發(fā)控制字 for i 0i 4i tab[i] tab7[i] 8 SendData tab[i] pi SendData 0x1800 SendData 0x0900 SendData 0x1a00 SendData 0x0b00 SendData 0x1c00 SendData 0x0d00 SendData 0x1e00 SendData 0x0f00 SendData 0XC000 void disp_chn1 uchar code chn uchar x uchar y uchar n uchar i for i 2i xi wr_zb 0xf0iny send chn[ i2 2]0xa0 send chn[ i2 21]0xa0 delay1 10 顯示字符 void disp_eng uchar code enguchar x uchar y uchar n uchar m uchar ij for j 0j yj for i 0i xi wr_zb 0xf9injm send eng[j20i] delay1 10 顯示字符 void disp_eng1 uchar code eng uchar ij for j 0j 2j for i 0i 20i wr_zb 0xf9i4j3626 send eng[j20i] void disp_img uchar code img uchar ij for j 0j 16j for i 0i 2i wr_zb 0xf3ij send img[j16i] void clear send 0xf4 延時子程序 void delay uint us while us void delay1 uint ms uint ij for i 0i msi for j 0j 1000j 寫命令或數據到 LCD void wr_zb uchar muchar addr_xuchar addr_y send m send addr_x send addr_y void send uchar dat 寫命令或數據 while BUSY 1 data_ora dat REG 1 while BUSY 0 REG 0 WriteCharTo7843 unsigned char num SPI 寫數據 unsigned char count 0 DCLK 0 for count 0count 8count num 1 DIN CY DCLK 0 _nop_ _nop_ _nop_ 上升沿有效 DCLK 1 _nop_ _nop_ _nop_ ReadFromCharFrom7843 SPI 讀數據 unsigned char count 0 unsigned int Num 0 for count 0count 12count Num 1 DCLK 1 _nop_ _nop_ _nop_ DCLK 0 _nop_ _nop_ _nop_ if DOUT Num return Num void start SPI 開始 DCLK 0 CS 1 DIN 1 DCLK 1 CS 0 void go unsigned int X 0Y 0i uchar eq delay 10000 中斷后延時以消除抖動使得采樣數據更準確 start 啟動 SPI while BUSY1 如果 BUSY 信號不好使可以刪除不用 delay 2 WriteCharTo7843 0x90 送控制字 10010000 即用差分方式讀 X坐標 while BUSY1 如果 BUSY 信號不好使可以刪除不用 delay 2 DCLK 1 _nop_ _nop_ _nop_ _nop_ DCLK 0 _nop_ _nop_ _nop_ _nop_ X ReadFromCharFrom7843 讀 X 軸坐標 WriteCharTo7843 0xD0 送控制字 11010000 即用差分方式讀 Y 坐標 DCLK 1 _nop_ _nop_ _nop_ _nop_ DCLK 0 _nop_ _nop_ _nop_ _nop_ Y ReadFromCharFrom7843 讀 Y 軸坐標 CS 1 tabx[0] X1000 tabx[1] Xtabx[0]1000 100 tabx[2] Xtabx[0]1000tabx[1]100 10 tabx[3] Xtabx[0]1000tabx[1]100tabx[2]10 taby[0] Y1000 taby[1] Ytaby[0]1000 100 taby[2] Ytaby[0]1000taby[1]100 10 taby[3] Ytaby[0]1000taby[1]100taby[2]10 if X 1000 if X 800 if Y 2200 if Y 2021 clear disp_chn1 tab4503 disp_eng1 tab5 if X 2900 if X 2700 if Y 3600 if Y 3400 D_CS 1 for i 0i 1000i SET_FRQ FRQ if X 2900 if X 2700 if Y 2800 if Y 2600 D_CS 1 for i 0i 1000i SET_FRQ FRQ1 if X 2900 if X 2700 if Y 1900 if Y 1700 D_CS 1 for i 0i 1000i SET_FRQ FRQ2 if X 2900 if X 2700 if Y 1200 if Y 1000 D_CS 1 for i 0i 1000i SET_FRQ FRQ3 致 謝 在眾多的畢業(yè)設計課題中我選擇了李彤老師所帶領的這個比較具有實用性和趣味性的課題對我而言這不僅給了我對單片 機知識領域有了一次深層次的學習的機會也是對我的一種考驗和對我大學四年所學知識的綜合檢查 在單片機基本理論的學習過程中感覺內容比較枯燥繁多但當我感覺自己學到了知識有了進步的時候我認為一切都是值得的在進行具體的電路設計和程序設計的時候我發(fā)現理論到實踐的過程確實有相當的難度在這個過程中李老師給了我極大的鼓勵和很多的指導在畢業(yè)設計之初她就經常勉勵我要提前作好準備凡事都要往前趕的道理在她的諄諄教導之下我順利的完成了我的畢業(yè)設計其次就是 DDS 芯片 AD9835 這是我第一次接觸這個芯片根本什么都不懂一開始上網收集資料但網上 全是英文后來經過老師和同學的幫助對它有了一定的了解在整個設計制作過程當中我感覺收獲也是非常大不僅是理論和實踐中的收獲更對我今后做的每一件有意義的事都會有很大的幫助和指導意義畢業(yè)設計的完成意味著我的大學四年的學習生活即將結束從此我將踏上一個新的工作崗位開始一段全新的生活在此我要感謝所有在我做畢業(yè)設計期間幫助過我的人 首先我要感謝我的畢業(yè)設計導師李彤老師的大力幫助和支持同時還有孫老師給予我畢業(yè)論文的指導我還要感謝在畢業(yè)設計期間幫助過我的同學從資料的查找到電路板的制作以及最后程序的調試他們都給過我無私的幫助在此我 要感謝他們的幫助 基本放大器 A 正反饋網絡 B FREQ0 寄存器 FREQ1 寄存器寄存器 相位累加器 32 頻率選擇器 串行寄存器 16 位數據寄存器 PHASE2 寄存器 PHASE3 寄存器 PHASE1 寄存器 PHASE0 寄存器 COMS ROM 10BIT DAC 頻率相位選擇 ∑ 相位選擇器 CPU ROM RAM 時鐘 定時器 計數器 IO 接口