




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、車模競賽基礎(chǔ)綜合實(shí)驗(yàn)報告實(shí)驗(yàn)名稱:xs128平臺綜合實(shí)驗(yàn)班 級:學(xué) 號:姓 名:指導(dǎo)老師:2012 年 12 月 25 口1. 實(shí)驗(yàn)?zāi)康慕Y(jié)合這個淫期我們淫到的知識,應(yīng)用于單片機(jī)xs128平臺,測試并展示自 己學(xué)習(xí)實(shí)驗(yàn)班的成果,增強(qiáng)我們的自學(xué)能力。2. 實(shí)驗(yàn)要求(1)流水燈(矩陣鍵盤控制速度)(2)定時中斷(3)串口通信,比較查詢和中斷方式效率(4)5110液晶顯示(5)pwm產(chǎn)生正弦波形,在液晶上顯示(6)綜合實(shí)驗(yàn):吊口選擇pwm波形并回顯,lcd顯示,按鍵調(diào)整頻率及幅值3. 實(shí)現(xiàn)方法(1)流水燈的控制實(shí)際上是對b 口的控制。(2)這里通過中斷函數(shù)計(jì)數(shù),溢出后,翻轉(zhuǎn)led等,并清零,重新開始計(jì)
2、數(shù)。 相應(yīng)的定吋器設(shè)置參考xsl28技術(shù)手冊,然后在同學(xué)或是。(3)先進(jìn)行基本的波特率和一些必要的設(shè)置;主要過程是對sciosr1_tdre 的監(jiān)測和判斷,當(dāng)空的時候sc10sr1tdre二1 ,當(dāng)接受傳輸數(shù)據(jù)未結(jié)束時 sci0srl_tdre=0o中斷法不同于杳詢法的地方時,而者不同于后者一直在占用內(nèi) 存執(zhí)行查詢,前者只是中斷的吋候執(zhí)行查詢程序。同時我們可以比較在相同的時 間里完成屮斷然后進(jìn)行從1的自加。比較這兩種方法的效率,屮斷法較好。(4)n5110d的部件的應(yīng)用需要了解部件的初始化,對其進(jìn)行一些一些基本 的初始化,然后加上一些自己定義的函數(shù),然后加載到程序的主要步驟屮。(5)pwm波的
3、產(chǎn)生方法科協(xié)的學(xué)長給我們上過課,范例也給了,應(yīng)用到這里 基本不用改變多少語句。如何將pwm波的波形顯示到5110上是通過對占空比的 控制實(shí)現(xiàn)的。(6)通過串口選擇,我們可以提高速度,達(dá)到實(shí)時性要求,目前達(dá)到1兆毎 秒數(shù)據(jù)存儲。4. 程序清單每一個子程序上面都要有詳細(xì)說明 里面代碼注釋。#include <hidef.h>/* common defines and macros */#includc hdcrivativc.hn /* derivative-specific definitions */include h5110.hm#include nkey.hh#includc
4、"lcdshow.h" byte flag=o;byte width=20;void main(void)n5110_init(); for(;)lcd_show(); key_init();說明:pl 口產(chǎn)生周期為5毫秒的pwm波#ifndef_pwm_h_#dcfinc _pwm_h_#include <hidef.h> /* common defines and macros */#include ''derivative.h'1/* derivative-specific definitions */void pwm_init(v
5、oid);#endifinclude “pwm.h”void pwmnit(void)pwme_pwme() = 0 ; /禁止要設(shè)置的通道,因?yàn)橐壜?lián),該通道被屏蔽即使打開 也沒波形pwme_pwme1 =0;/禁止要設(shè)置的通道pwmctl.conol = 1 ;/合并通道0和1形成16位pwm通道,通道0和通道0的設(shè)置被屏蔽pwmpol_ppol1 = 1 ; 設(shè)置通道極性,起始輸出高電平,占空比就是高電平 pwmcae_cae1 = 0 ;/設(shè)置對其方式,左對齊方式pwmclk.pclkl = 0 ;/設(shè)置參考時鐘,a吋鐘為參考吋鐘pwmprclk.pcka = 0;/設(shè)置a時鐘的分頻系
6、數(shù)pwmper01 = 40000 ;/設(shè)置周期計(jì)數(shù)值pwmdty01 = 20000 ;/設(shè)置占空比,初始為0pwme_pwme1 = 1 ;/使能通道3 ,即開啟pwm/* common defines and macros */#ifndef _key_h_ #define _key_h_ #include <hidef.h> #inckidc "derivative.h" include ,5110.hm #include "lcdshow.h1' void key_init(void);#cndifextern byte flag;e
7、xtern byte width;void key_init(void)ddrb=0x00; /檢測b 口所以設(shè)置b 口的輸出portb=oxff;ddrt=0xff;ptt=0xfe;if(flag>2)flag=0;if(portb_pb4=0)while(portb_pb4=0);n511 ()_clean_screen();flag+;else if(portb_pb5=0)while(portb_pb5=0);n5110_clcan_scrccn();flag-;else if(portb_pb6=0)whilc(portb_pb6=0);n5110_clean_screen(
8、);width+;else if(portb_pb7=0)while(portb_pb7=0);n5110_clean_screen();width-;#ifndef _lcdshow_h_#define _lcdshow_h_#includc <hidcf.h> /* common defines and macros */#include "derivative.h"include “511o.h”#include nkey.hhvoid lcd_show(void);#endif#include"lcdshow.h"extern byt
9、e flag;extern byte width;void lcd_show(void)byte i,j;if(flag=o)for(i=0;i*width<84;i+)n5110_write_coord(i*width,2);n5110_write_datacdoxff);n5110_write_coord(i*width,3);n5110_writc_data(d,oxff);for(j = width *i+1 ;j<width*(i+1 );j+) if(i%2=0)n5110_writc_coord(j,2); n5110_write_data(d,0x01);elsen
10、5110_writc_coord(j,3); n5110_write_data(d,0x80);else if(flag= 1)for(i=0;i*width<84;i+)n5110_write_coord(i * width j);n5110_write_datacd0xff);n51 io_write_coord(i*width,2);n51 l()_write_data(d,()xff);n5110_writc_coord(i*width,3);n5110_write_datacd0xff);n5110_write_coord(i*width,4);n51 l()_wri(e_da
11、ta(d;()xff);for(j=width *i+1 ;j< width *(i+1 );j+) if(i%2=0)n5110_writc_coord(jj); n5110_write_datacdoxo 1);elsen5110_writc_coord(j,4);n5110_write_datacd0x80); else if(flag=2)for(i=0;i*width<84;i+)n5110_write_coord(i*width,0);n5110_write_datacd0xff);n5110_write_coord(i*width, 1);n51 l()_write_
12、data(d,()xff);n5110_writc_coord(i*width,2);n5110_write_datacd0xff);n5110_write_coord(i*width,3);n5110_writ e_data(d,oxff);n5110_write_coord(i*width,4);n5110_writc_data('doxff);n5110_write_coord(i*width,5);n5110_write_datacd0xff);for(j=width*i+l ;j<width*(i+l);j+)if(i%2=0)n5110_write_coord(j,0
13、);n511 ()_write_data(d,()x() 1);elsen511()_write_coord(j,5);n5110_write_data('d',0x80);#ifndef_5110_h_#define_5110_h_ #include <hidef.h> /* common defines and macros */#include "derivative.hn #define ret_511()_h porte_pe7= 1 #dcfinc ret_5110_l porte_pe7=0 #define ce_5110_h ptm_ptm
14、0 = 1 #define ce_5110_l ptm.ptmo = 0 #define dc_5110_d ptj_ptj7=1 #define dc_511()_c ptj_ptj7=0 #dcfinc sdin_5110_h ptm_ptm4=1 #define sdin_511o_l ptm_ptm4=0 #define sclk_5110_h ptm_ptm5= 1 #define sclk_511o_l ptm_ptm5=0 void n5110_init(void);void n5110_write_data(byte dc , byte data);void n511()_wr
15、ite_coord(byte coord_x , byte coord_y);void n5110_clcan_scrccn(void);void n5110_write_char(char ascii);void menu_write_string(char* string);#endif/n5110初始化函數(shù)void n5110_lnit(void)porte_pe7=0;ptm=0x00;/m 口方向寄存器/e 口方向寄存器/j 口方向寄存器ptt_ptt7 =0;ddrm 1= (l«0)l(l«4)l(l<<5);ddre_ddre7 = 1;ddrj
16、.ddrj7 = 1;ret_5110_l;/n5110芯片復(fù)位ret_5110_h;ce_5110_l; /初始不選通n5110芯片,僅在需要寫入數(shù)據(jù)的時候選通芯片n511()_writc_data(c, 0x21); 命令n5110_write_data(,c, oxbf);n5110_write_data(,c, 0x06);/設(shè)置功能設(shè)置寄存器,芯片活動,水平尋址,使用擴(kuò)展/設(shè)置液晶偏査電壓/溫度校正n5110_write_datacc ox 13); n51io_write_data(,c, 0x20);/設(shè)置偏置系統(tǒng)1:48/使用基本指令集n5110_write_data(,c,
17、oxoc);n5110_clcan_scrccn();/設(shè)置顯示模式為普通模式/清屏/n5110同步串行函數(shù)void n5110_write_data(byte dc , byte data) byte i ;ce_5110_l; if( dc = d )/片選芯片使得數(shù)據(jù)可以寫入/區(qū)分?jǐn)?shù)據(jù)類型dc_511()_d;elsedc 5110 c;for(i = 0;i<8; i+)/同步串行發(fā)送數(shù)據(jù)sclk_5u0_l;時鐘信號拉低if(data & ()x8() != 0)/每一次判斷第八位數(shù)據(jù)來確定數(shù)據(jù)引腳的狀態(tài),通過左移數(shù)據(jù)位到第八位實(shí)現(xiàn)八位輸出sdin_5110_ 比els
18、esdin_5110_l;sclk_5110_h;data «= 1 ;/時鐘信號拉高,上升沿寫入數(shù)據(jù)/把要發(fā)送的數(shù)據(jù)左移到第八位用于判斷/n5110設(shè)置坐標(biāo)函數(shù)void n5110_write_coord(byte coord_x , byte coord_y)n5110_write_data(,c, coord_x i 0x80); 所以與上0x80n5110_write_datacc', coord_y i 0x40);所以與上0x40/設(shè)置x坐標(biāo),x坐標(biāo)命令字要求第八位為1/設(shè)置y坐標(biāo),x坐標(biāo)命令字要求第五位為1/n5110淸屏函數(shù)void n5110_clcan_scrccn(void) word i;n5110_write_coord(0,0);for(i = 0 ; i < 504 ; i+)n5110_write_d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB 11215-1989核輻射環(huán)境質(zhì)量評價一般規(guī)定》(2025版)深度解析
- 中專護(hù)理教學(xué)課件
- 合伙開設(shè)物流公司協(xié)議書模板
- 供應(yīng)商合同供貨協(xié)議范本
- 科研儀器租賃合同
- 商用空間裝修保障合同
- 三方債權(quán)債務(wù)承接合同
- 肇慶市實(shí)驗(yàn)中學(xué)高三生物三四五高效課堂教學(xué)設(shè)計(jì):雜交實(shí)驗(yàn)一相關(guān)練習(xí)
- 山東省德州市寧津縣南環(huán)小學(xué)2024-2025學(xué)年數(shù)學(xué)五年級第二學(xué)期期末達(dá)標(biāo)檢測試題含答案
- 自愿收養(yǎng)合同書
- 2025年重慶渝開發(fā)股份有限公司招聘筆試參考題庫含答案解析
- 中華優(yōu)秀傳統(tǒng)文化的內(nèi)涵與特點(diǎn)【考點(diǎn)精研+知識架構(gòu)+提分專練】高中歷史統(tǒng)編版(2019)選擇性必修三文化交流與傳播
- 光伏工程強(qiáng)條執(zhí)行記錄表
- GB 15892-2009生活飲用水用聚氯化鋁
- 24雙匯系統(tǒng)操作手冊
- 硬筆書法:幼小銜接識字寫字教學(xué)課件
- 盤扣支模架工程監(jiān)理細(xì)則
- 橋梁工程梁板的預(yù)制和安裝監(jiān)理實(shí)施細(xì)則
- 施工電梯租賃合同及安全協(xié)議
- 加油站臨時用電專項(xiàng)方案
- MTBF測試驗(yàn)證規(guī)范文件和報告
評論
0/150
提交評論