国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ARM Cortex-M0+內(nèi)核KL25微控制器TSI構(gòu)件設(shè)計方法研究

2018-04-03 11:31:02宋洪儒王宜懷
關(guān)鍵詞:寄存器中斷限值

宋洪儒,王宜懷,楊 凡,3

(1.銅陵學(xué)院 電氣工程學(xué)院,安徽 銅陵 244000;2.蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;3.銅陵學(xué)院 信息技術(shù)與工程管理研究所,安徽 銅陵 244000)

當(dāng)前,隨著多媒體信息查詢和移動手持終端電子產(chǎn)品的與日俱增,與傳統(tǒng)的觸點式按鍵相比,觸摸鍵具有方便易用、壽命長、節(jié)省空間、便于操作等諸多優(yōu)點,已被人們在日常生活中廣泛利用[1,2].在實際應(yīng)用中電容式觸摸鍵是比較普及的一種,雖然現(xiàn)在對電容式觸摸鍵有很多種設(shè)計方法,但是在硬件和軟件設(shè)計上缺少統(tǒng)一的構(gòu)件,沒有規(guī)范性和統(tǒng)一性,可重用性與可移植性較差,造成設(shè)計成本的增加,降低了工作效率,也會引起系統(tǒng)的工作不穩(wěn)定.為了克服以上的缺點,解決觸摸鍵設(shè)計存在的問題,本文研究采用由ARM公司發(fā)布一款擁有全球最低功耗的微處理器ARM Cortex-M0+為內(nèi)核的KL25微控制器進行觸摸鍵的設(shè)計,在KL25微控制器中包含有一個具有觸摸感應(yīng)輸入功能的模塊(TSI模塊)用于設(shè)計觸摸按鍵.

怎樣在KL25微控制器芯片上進行觸摸鍵構(gòu)件設(shè)計是本文研究的重點,根據(jù)TSI基本技術(shù)要素進行觸摸感應(yīng)軟硬件構(gòu)件設(shè)計,軟件構(gòu)件設(shè)計由頭文件和源代碼文件組成,在調(diào)用函數(shù)時只需調(diào)用頭文件中的函數(shù)即可實現(xiàn)所需功能要求,而源代碼文件是對相應(yīng)頭文件函數(shù)的編程,在調(diào)用函數(shù)時此部分內(nèi)容無須改動或改動很小,硬件構(gòu)件設(shè)計根據(jù)MCU功能引腳不同在使用時改變構(gòu)件的接口標(biāo)號,這樣就提高了軟硬件的可重用性和可移植性.通過不同的實驗環(huán)境對TSI構(gòu)件設(shè)計進行實驗驗證,證明該設(shè)計方法具有很強的穩(wěn)定性.

1 TSI模塊的工作原理

觸摸感應(yīng)輸入(TSI)模塊具有高靈敏和強魯棒性的電容觸摸感應(yīng)檢測能力,該模塊通過預(yù)設(shè)待檢測對象的閾值與感應(yīng)到檢測對象的電極電容值相比較,如檢測到電容值大于預(yù)設(shè)閾值時,會觸發(fā)TSI的中斷請求標(biāo)志位并置位,執(zhí)行TSI中斷服務(wù)程序,從而實現(xiàn)觸摸感應(yīng)的功能.

TSI模塊檢測觸摸感應(yīng)電容值是通過使用電極振蕩器和參考振蕩器兩個振蕩器相結(jié)合的方法,電極振蕩器的作用是產(chǎn)生三角波電壓實現(xiàn)對外部電極電容進行充放電壓值上限和下限進行限制,而三角波電壓信號的頻率也受外部電極電容變化影響,當(dāng)電容增加時,三角波電壓信號的頻率減小,周期變大.參考振蕩器的作用是由該振蕩器產(chǎn)生的時鐘信號作為參考節(jié)點,對三角波電壓信號的周期進行檢測計數(shù),當(dāng)三角波電壓信號周期增大時,對應(yīng)計數(shù)值也會增大[3].三角波電壓信號變化如圖1所示.

圖1 三角波電壓信號變化圖

圖1是感應(yīng)電容增大時三角波變化情況,從圖中可以看出,以觸摸感應(yīng)變化為分界點,在一個周期時間內(nèi),三角波信號在觸摸感應(yīng)沒有變化之前的計數(shù)時鐘個數(shù)小于觸摸感應(yīng)變化后的計數(shù)時鐘個數(shù).感應(yīng)電容減小時,變化情況相反.

電容檢測值由參考振蕩器頻率和電極采樣時間等參數(shù)決定,參考振蕩器頻率方程為:

電極采樣時間是由TSI振蕩器頻率信號先經(jīng)過分頻器進行分頻,再進入計數(shù)器計數(shù),計數(shù)值從0計到最大值,最大值由TSI0_GENCS寄存器中NSCN位定義,電極采樣時間方程:

在檢測電容值期間,電容檢測結(jié)果由TSI參考振蕩器周期值來定義,儲存到TSICHnCNT寄存器中,電容檢測值由式(2)可得.

由上述方程(1)~(3)可以得到電容式檢測方程:

其中在式(1)~(4)中參數(shù),PS:預(yù)分頻值,Cref:內(nèi)部參考電容器的電容,Iref:參考振蕩器電流源,NSCN:掃描次數(shù),Celec:電極電容,ΔV:滯環(huán)三角波電壓差值.在以上參數(shù)中只有參數(shù)電極電容Celec是變量,其他參數(shù)都是在寄存器中預(yù)先設(shè)置的常量,可以將測量電容值方程簡化為:TSICHnCNT=K×Celec,從簡化式中可以看出,電容測量值與電極電容成正比關(guān)系,隨著感應(yīng)電極電容的變化,檢測的電容值也在變化[4].

2 TSI構(gòu)件設(shè)計

根據(jù)TSI模塊的工作原理,對檢測程序進行軟件設(shè)計.在軟件設(shè)計時,為提高軟件設(shè)計的規(guī)范性,可重用性與可移植性,滿足TSI模塊應(yīng)用到不同控制系統(tǒng)時,能達到在調(diào)用源程序文件時不必修改或者修改很少的目的,需要進行構(gòu)件設(shè)計.在構(gòu)件設(shè)計過程中,關(guān)鍵對要設(shè)計構(gòu)件的共性和個性進行區(qū)別和分析,才能設(shè)計出規(guī)范的和可用的構(gòu)件.構(gòu)件由頭文件(.h)和源程序文件(.c)兩部分組成,頭文件(.h)是在應(yīng)用到不同系統(tǒng)中時,直接進行調(diào)用部分,設(shè)計頭文件就要做到在不查看源程序文件情況下,能夠完全使用該構(gòu)件進行程序的開發(fā).源程序文件(.c)是對頭文件中包含的函數(shù)進行具體功能實現(xiàn),在內(nèi)容要求上需要合理設(shè)計外接口函數(shù),在構(gòu)件應(yīng)用到不同的控制系統(tǒng)中時,不需要修改或修改很小[5].

KL25芯片共有16個引腳具有觸摸感應(yīng)功能,一個引腳對應(yīng)一個數(shù)據(jù)通道,在設(shè)計時需要定義使用的具體通道號,由于16個引腳都具有復(fù)用功能,通過引腳控制器的引腳復(fù)用控制(MUX)來設(shè)定引腳的具體功能.具體TSI引腳分配見表1.

表1 KL25的TSI引腳分配表

2.1 頭文件(tsi.h)構(gòu)件設(shè)計

TSI模塊構(gòu)件由頭文件(tsi.h)和源代碼文件(tsi.c)組成,根據(jù)功能需求在頭文件(tsi.h)中,主要進行以下幾種函數(shù)模塊的定義:TSI初始化模塊(tsi_init):void tsi_init(uint_8 chnl-Num,uint_32 threshold),其中chnlNum表示通道號,threshold表示觸發(fā)閾值;獲取TSI通道的計數(shù)值模塊(tsi_get_value16):uint_16 tsi_get_value16();設(shè)定TSI通道的閾值模塊(tsi_set_threshold):void tsi_set_threshold(uint_16 Lth,uint_16 Hth),其中Lth表示閾值下限,Hth表示閾值上限;使能TSI開中斷模塊(tsi_enable_re_int):void tsi_enable_re_int();使能TSI關(guān)中斷模塊 (tsi_disable_re_int):void tsi_disable_re_int();開啟一次軟件掃描模塊 (tsi_softsearch):void tsi_softsearch().在軟件設(shè)計過程中,需要使用哪個模塊只需直接調(diào)用函數(shù)即可.

2.2 源代碼文件(tsi.c)構(gòu)件設(shè)計

源代碼文件(tsi.c)主要是對頭文件中包含的幾種函數(shù)模塊進行具體的編程,通過對系統(tǒng)時鐘門控寄存器(SIM_SCG5),通用控制和狀態(tài)寄存器(TSI0_GENCS),DATA寄存器(TSI0_DATA),閾值寄存器(TSI0_TSHD)等的設(shè)置實現(xiàn)其功能.源代碼文件基本設(shè)計有以下幾個步驟[6]:

(1)首先進行初始化函數(shù)tsi_init模塊的編程:①在該函數(shù)中設(shè)置系統(tǒng)時鐘門控寄存器(SIM_SCG5),打開TSI模塊時鐘源,設(shè)置“1”打開時鐘,功能語句為BSET(SIM_SCGC5_TSI_SHIFT,SIM_SCGC5);選擇A端口為時鐘門,由功能語句BSET(SIM_SCGC5_PORTA_SHIFT,SIM_SCGC5)實現(xiàn),由于在A端口中有5個引腳(PTA0~PTA4)都具有TSI功能,并且A端口是復(fù)用端口,所以在使用TSI功能時是需要由引腳控制寄存器(PORT_PCR)中MUX選擇引腳復(fù)用功能,語句為PORTA_PCR(0~4)=PORT_PCR_MUX(0),其中 PORTA_PCR(0~4)的0~4表示TSI的1~5通道.②在通用控制和狀態(tài)寄存器(TSI0_GENCS)中進行參數(shù)設(shè)置,選擇TSI在低功耗模式下工作;參考振蕩器充放電時的電流值為4uA;振蕩器充放電電壓的峰谷值電壓分別為峰值Vp=1.18V,谷值電壓Vm=0.45V;電極振蕩器充放電電流值16uA;預(yù)分頻值為4;每個電極掃描4次;開啟TSI模塊使能位;中斷使能位等操作.③在DATA寄存器(TSI0_DATA)中設(shè)置通道號,語句為TSI0_DATA|=(TSI_DATA_TSICH(chnlNum)).通過對以上參數(shù)的詳細配置,已經(jīng)初步完成了初始化函數(shù)模塊編程,具體初始化程序如下.

BCLR(TSI_GENCS_TSIIEN_SHIFT,TSI0_GENCS);

BSET(TSI_GENCS_STPE_SHIFT,TSI0_GENCS);

TSI0_GENCS|=(TSI_GENCS_REFCHRG(3)

|TSI_GENCS_DVOLT(1)

|TSI_GENCS_EXTCHRG(5)

|TSI_GENCS_PS(2)//電極振蕩器4分頻

|TSI_GENCS_NSCN(11);//每個電極掃描4次

BCLR(TSI_GENCS_ESOR_SHIFT,TSI0_GENCS);//設(shè)置超過閾值產(chǎn)生中斷

BCLR(TSI_GENCS_STM_SHIFT,TSI0_GENCS);

BSET(TSI_GENCS_OUTRGF_SHIFT,TSI0_GENCS);

BSET(TSI_GENCS_EOSF_SHIFT,TSI0_GENCS);//超出閾值置位,EOSF為1設(shè)置成掃描完成狀態(tài)

TSI0_DATA|=(TSI_DATA_TSICH(chnlNum));//選擇通道

BSET(TSI_GENCS_TSIEN_SHIFT,TSI0_GENCS);//TSI模塊使能

TSI0_TSHD=threshold;

(2)獲取返回值函數(shù)tsi_get_value16模塊:主要是啟動一次TSI掃描,獲取TSI通道的計數(shù)值,將計數(shù)值保存并返回.該函數(shù)的實現(xiàn)主要是通過在通用控制和狀態(tài)寄存器(TSI0_GENCS)中設(shè)置開關(guān)中斷和產(chǎn)生中斷方式以及在DATA寄存器(TSI0_DATA)中設(shè)置參數(shù),實現(xiàn)讀取計數(shù)寄存器中值的目的,計數(shù)值定義為value=(TSI0_DATA&TSI_DATA_TSICNT_MASK).具體參考程序如下.

BCLR(TSI_GENCS_TSIIEN_SHIFT,TSI0_GENCS);BSET(TSI_DATA_SWTS_SHIFT,TSI0_DATA);

while(!(TSI0_GENCS&TSI_GENCS_EOSF_MASK));

BSET(TSI_GENCS_EOSF_SHIFT,TSI0_GENCS);//寫 1清0掃描結(jié)束標(biāo)志位

value=(TSI0_DATA&TSI_DATA_TSICNT_MASK);BSET(TSI_GENCS_OUTRGF_SHIFT,TSI0_GENCS);//寫1清0超值標(biāo)志位

BSET(TSI_GENCS_EOSF_SHIFT,TSI0_GENCS);//清掃描結(jié)束標(biāo)志位

BSET(TSI_GENCS_TSIIEN_SHIFT,TSI0_GENCS);

(3)設(shè)置TSI閾值函數(shù)tsi_set_threshold模塊:對閾值寄存器(TSI0_TSHD)進行參數(shù)設(shè)置,閾值寄存器TSI0_TSHD是32位寄存器,包含高16位THRESH存儲閾值上限值和低16位存儲閾值下限值.預(yù)設(shè)TSI通道的觸發(fā)下限閾值和上限閾值,若TSI通道檢測值超出預(yù)設(shè)閾值的上下限時,則TSI模塊認(rèn)為TSI引腳上有TSI事件觸發(fā),將會自動設(shè)置TSI觸發(fā)標(biāo)志位,產(chǎn)生中斷服務(wù)請求.具體參考程序如下.

voidtsi_set_threshold(uint_16 Lth,uint_16 Hth)

{uint_32thresholdValue;

thresholdValue=Hth;//高16位為上限閾值

thresholdValue=(thresholdValue<<16)|Lth;//低 16 位為下限閾值

TSI0_TSHD=thresholdValue;}

(4)使能 TSI模塊函數(shù) tsi_enable_re_int(開 TSI中斷)和關(guān)閉TSI模塊函數(shù)tsi_disable_re_int(關(guān)TSI中斷),這兩個模塊通過對通用控制和狀態(tài)寄存器(TSI0_GENCS)中的控制位分別進行由BSET置1開啟和BCLR清0關(guān)斷中斷功能.具體參考程序如下.

BSET(TSI_GENCS_TSIIEN_SHIFT,TSI0_GENCS);

BSET(TSI_GENCS_STM_SHIFT,TSI0_GENCS);

enable_irq(26);//開中斷

BCLR(TSI_GENCS_STM_SHIFT,TSI0_GENCS);

BSET(TSI_DATA_SWTS_SHIFT,TSI0_DATA);

disable_irq(26);//關(guān)中斷

3 TSI檢測程序設(shè)計

TSI檢測程序主要有主函數(shù)main和中斷函數(shù)兩部分組成.

3.1 主函數(shù)main設(shè)計

在main函數(shù)設(shè)計時,主要完成以下功能:

(1)設(shè)置TSI模塊所使用的通道號并調(diào)用TSI初始化函數(shù).

uint_8chnlNum=2; //TSI選擇通道2

tsi_init(chnlNum,TSI_VALUE); //調(diào)用初始化TSI函數(shù)

在初始化函數(shù)中參數(shù)TSI_VALUE的設(shè)置在頭文件include中定義宏賦初始值,#define TSI_VALUE0x00620050,其中32位閾值表示下限值和上限值,其中高16位為上限值,低16位為下限值.

(2)調(diào)用TSI中斷使能函數(shù)和串口中斷使能函數(shù).

tsi_enable_re_int(); //開 TSI中斷

uart_enable_re_int(UART_1)//開串口1中斷

(3)調(diào)用串口1初始化函數(shù)和軟件掃描函數(shù).

uart_init(UART_1,9600);

tsi_softsearch();

串口1函數(shù)的編程不是本文談?wù)摰闹攸c,在這里就不做詳細的設(shè)計說明.

3.2 TSI中斷函數(shù)設(shè)計

當(dāng)獲得的通道計數(shù)值超出設(shè)定閾值的上限范圍時,會產(chǎn)生TSI中斷響應(yīng),執(zhí)行中斷函數(shù)獲取計數(shù)值,并通過串口1發(fā)送給PC機.為了保證獲得檢測值的穩(wěn)定,需要對檢測值進行中值濾波處理,參考程序如下.

voidTSI0_IRQHandler(void)

{uint_16,k,j,average=0,sum1=0,sum=0,ave=0;

DISABLE_INTERRUPTS;

if(TSI0_GENCS&SI_GENCS_OUTRGF_MASK)

{i=tsi_get_value16();//獲取計數(shù)值

for(j=0;j<100;j++)//中值濾波

{for(k=0;k<150;k++)

{sum1=sum1+i;}

average=sum1/150;

sum1=0;

sum=sum+average;}

ave=sum/100;

if(ave/100!=0)

uart_send1(UART_1,(uint_8)(ave/100)+′0′);

ave=ave%100;

if(ave/10!=0)uart_send1(UART_1,(ave/10)+′0′);ave=ave%10;if(ave!=0)

uart_send1(UART_1,(uint_8)(ave)+′0′);

uart_send1(UART_1,′ ′);}

TSI0_GENCS|=TSI_GENCS_OUTRGF_MASK;//寫1清除

ENABLE_INTERRUPTS;}

4 TSI檢測電路和檢測分析

4.1 檢測電路

TSI檢測電路如圖2所示,該圖中觸摸片通過電阻R101直接與CPU上具有觸摸感應(yīng)功能的PTA1引腳相連,P1為觸摸片.該檢測電路設(shè)計成硬件構(gòu)件,在應(yīng)用到其他觸摸電路中時,構(gòu)件MCU引腳功能修改端口標(biāo)號就能正常使用,無須再重新設(shè)計.

圖2 檢測電路

在電路設(shè)計時,電阻的作用是過電流保護和提高抗干擾能力,電阻選擇要合理,電阻值選擇過大,引起信號感應(yīng)信號較弱.電阻值選擇過小,抗干擾能力差,引起感應(yīng)信號不穩(wěn)定.

4.2 TSI檢測分析

在TSI檢測時,兩個關(guān)鍵參數(shù)影響檢測值,即觸摸片串聯(lián)電阻值和預(yù)設(shè)閾值.(1)預(yù)設(shè)閾值的設(shè)置方法:觸摸感應(yīng)引腳在受外界電磁場的干擾時,也會產(chǎn)生一個干擾閾值,如果設(shè)置的閾值上限值低于干擾閾值或者閾值下限值超過干擾閾值,觸摸片會在干擾信號影響下自動產(chǎn)生中斷,抗干擾能力較差.如果設(shè)置閾值上限值遠大于干擾閾值,會引起觸摸片反應(yīng)不靈敏,不能實時產(chǎn)生中斷響應(yīng),準(zhǔn)確地輸出檢測值.所以,在預(yù)設(shè)閾值時,要考慮上下限閾值的取值范圍,上限值一定要高于干擾閾值,下限值也要低于干擾閾值,這樣才能避免由于外界的干擾而自動產(chǎn)生觸發(fā)中斷.在上下限閾值的設(shè)置上,關(guān)鍵是先確定下限閾值,在下限值不變的情況下,確定上限閾值的選取范圍,針對不同的應(yīng)用環(huán)境,干擾閾值也在發(fā)生變化,預(yù)設(shè)上下限閾值也要進行相應(yīng)的調(diào)整,才能達到觸摸感應(yīng)片比較理想的工作狀態(tài).(2)電阻值大小選擇合理,在檢測時,在預(yù)設(shè)閾值確定后,再調(diào)整電阻值的大小,進行檢測值.

圖3和圖4分別選取以2mm的塑料殼和2.5mm的亞克力玻璃兩種不同材質(zhì)為例作為觸摸片進行檢測實驗,閾值選取為TSI_VALUE=0x00800040,串聯(lián)電阻R取不同阻值時得到的實驗數(shù)據(jù).在圖中橫軸表示測量次數(shù),縱軸表示測量感應(yīng)值,選取連續(xù)進行30次檢測所得數(shù)據(jù)進行分析.

圖3 塑料殼(2mm)對比圖

圖4 亞克力玻璃(2.5mm)對比圖

通過圖3和圖4圖形變化可以看出,不同的實驗環(huán)境,產(chǎn)生的觸摸感應(yīng)值的大小不同,由于受外界環(huán)境的干擾,都會有誤差值產(chǎn)生,而在對于同一種環(huán)境下,串聯(lián)電阻R對測量值有很大的影響,串聯(lián)電阻值R=50Ω和10KΩ時,測量所得值變化較大,通過實驗驗證R值的選取范圍在500Ω~2KΩ最為合適,在保證檢測值穩(wěn)定的前提下,從低功耗角度考慮,R選擇在1KΩ最為合適.同時,閾值范圍的選取不同,決定感應(yīng)的靈敏度,隨著閾值上限值的增加,對觸摸片的感應(yīng)能力在逐漸地減弱.根據(jù)實驗所得,2mm的塑料殼和2.5mm的亞克力玻璃閾值上限值分別選取到Hth=0x0087和Hth=0x0086時,觸摸感應(yīng)片不能產(chǎn)生中斷響應(yīng),在串口上不能輸出檢測值.

5 結(jié)束語

通過對KL25微控制器觸摸感應(yīng)工作原理詳細分析,結(jié)合實際的應(yīng)用詳細解析了TSI構(gòu)件設(shè)計過程和方法,給出了檢測主程序和中斷程序,并在閾值范圍的設(shè)置上進行了說明,最后進行不同環(huán)境的實驗測試.實驗結(jié)果表明該觸摸鍵設(shè)計方法有很好的穩(wěn)定性.構(gòu)件設(shè)計具有的規(guī)范性和統(tǒng)一性,便于函數(shù)的調(diào)用和移植,提高軟件設(shè)計的工作效率,有效降低觸摸按鍵編程的技術(shù)門檻,為觸摸按鍵的應(yīng)用開發(fā)提供技術(shù)基礎(chǔ)和應(yīng)用方面具有廣闊的應(yīng)用前景.

參考文獻:

〔1〕田野,廖明燕.基于充放電原理的電容式觸摸按鍵設(shè)計[J].電子設(shè)計工程,2010(10):142-144.

〔2〕張毅君.電容觸摸式汽車中控面板的關(guān)鍵技術(shù)[D].上海:上海交通大學(xué),2014.

〔3〕Freescale.KL25 Sub-Family Reference Manual[DB/OL].[2013-03-15].http://www.Freescale.com.

〔4〕朱仕浪,王宜懷,馮德汪.基于KL25低功耗喚醒機制的TSI鍵盤應(yīng)用分析 [J].計算機工程與設(shè)計.2014,35(7):2375-2379.

〔5〕王宜懷,吳瑾,文瑾.嵌入式技術(shù)基礎(chǔ)與實踐(第 4版)[M].北京:清華大學(xué)出版社,2017.

〔6〕Freescale.KL25 Sub-Family data sheet[DB/OL].[2013-03-15].http://www.Freescale.c.

猜你喜歡
寄存器中斷限值
Lite寄存器模型的設(shè)計與實現(xiàn)
關(guān)于廢水排放特別限值的思考
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
分簇結(jié)構(gòu)向量寄存器分配策略研究*
遼寧省遼河流域石油煉制排放限值的制定
中美煉鋼行業(yè)污染物排放限值研究
環(huán)境保護部解讀新發(fā)布的大氣污染物特別排放限值
AT89C51與中斷有關(guān)的寄存器功能表解
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
微處理機(2012年4期)2012-06-13 11:32:24
汝城县| 大田县| 昌黎县| 平泉县| 阆中市| 富蕴县| 黄平县| 宜宾县| 涞水县| 巴楚县| 滦南县| 舒城县| 石景山区| 罗甸县| 古田县| 霍邱县| 黔江区| 上饶县| 泗洪县| 虎林市| 南靖县| 博兴县| 常德市| 开化县| 绿春县| 镇巴县| 景洪市| 湘乡市| 英山县| 留坝县| 沭阳县| 视频| 册亨县| 上饶市| 启东市| 桃园市| 凌云县| 六枝特区| 芜湖县| 镇宁| 嘉义县|