婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> EDA開發(fā)應用 >> Keilc >> 正文

Keil C51編程控制倍頻正弦信號的產(chǎn)生

作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2011-3-3

    MCS51單片機是我國應用最為廣泛的單片機種。以往單片機應用程序主要用匯編語言編寫,由于匯編語言程序的可讀性和可移植性都較差,采用匯編語言編寫單片機應用程序不但周期長,而且調(diào)試和排錯也比較困難。為了提高編制單片機應用程序的效率,改善程序的可讀性和可移植性,采用高級語言無疑是一種好的選擇。C語言是一種通用的計算機程序設計語言,既具有一般高級語言的特點,又能直接對計算機的硬件進行操作,表達和運算能力也較強,許多以往只能采用匯編語言來解決的問題現(xiàn)在都可以改用c語言來解決。
    德國Keil Software公司多年來致力于單片機c語言編譯器的研究。該公司開發(fā)的Keil C51是一種專為8051單片機設計的高效率c語言編譯器,符合ANSI標準,生成的程序代碼運行速度極高,所需要的存儲器空間極小,完全可以和匯編語言相媲美。Keil C51具有豐富的函數(shù)庫,包含100多種功能函數(shù),為用戶編程提供了極大的方便。C51程序可以實現(xiàn)與匯編語言的接口,兩者相互之間的調(diào)用十分方便。。高版本的Keil C51編譯器,尤其是Keil Vision2(基于Windows操作系統(tǒng)的C51集成編譯環(huán)境),以其性能優(yōu)秀、使用方便,受到了眾多單片機愛好者的歡迎。
    在有些測量儀表中,常需要提供不同頻率的低頻正弦波信號源,它們的頻率完全成整數(shù)倍關系。如測量電廠工業(yè)用水的電導為防止電極傳感器的極化,要用低頻正弦波信號作為激勵源,雙頻測導法就要求提供精確雙倍頻率的正弦信號。常用的正弦波信號倍頻或分頻采用的方法有:

  1.  方波信號分頻后濾波;
  2.  鎖相合成法;
  3.  單片機控制的D/A轉(zhuǎn)換后再濾波等。

    方法① 由于基頻的諧波分量大,濾波效果差而很少采用;方法②采用的是壓控振蕩原理,常用于高頻正弦信號的倍頻或分頻;方法③ 由于高頻諧波分量遠小于基波分量,濾波效果好且能精確定時,容易實現(xiàn)信號的倍頻或分頻。本文采用單片機AT89C2051控制D/A轉(zhuǎn)換實現(xiàn)倍頻正弦波信號的產(chǎn)生,編程語言采用的就是Keil C51。

1 硬件電路
    圖1為倍頻正弦波信號發(fā)生電路,U2為l0位串行DA集成電路TLC5615(TEXAS儀器公司生產(chǎn)),VREF為2.5v的標準參考電壓。U3 MAX813為看門狗復位集成電路,在U1(AT89C2051)出現(xiàn)程序跑飛時可自動復位。U1控制DA輸出正弦變化的階梯電壓,經(jīng)R1、C3濾波,C4隔直后即可得到波形較理想的正弦波,只要在一個周期內(nèi)保證有足夠多的輸出點數(shù)。
 
圖1  倍頻正弦波發(fā)生電路
    U1根據(jù)P1.3和P1.4(標號分別為SWF0和SWF1)的狀態(tài)控制正弦波的產(chǎn)生與停止及基頻與倍頻,它們的組合關系為:SWF1=1、SWF0=x時DA無正弦信號輸出;SWF1=0、SWF0=0時DA輸出基本頻率的正弦信號;SWF1=0、SWF0=1時DA輸出雙倍基頻的正弦信號。DA轉(zhuǎn)換器TLC5615遵從SPI標準的三線串行通信協(xié)議,三線分別是:/CS片選線,低電平有效;SCLK時鐘線;DIN數(shù)據(jù)線。SPI串行總線上數(shù)據(jù)傳送時序如圖2所示,圖中在/CS低電平有效時,時鐘線SCLK上升沿時數(shù)據(jù)線DIN上的數(shù)據(jù)必須穩(wěn)定,方可保證數(shù)據(jù)的正確傳送,當/CS高電平時器件不接受數(shù)據(jù),這樣可在SPI串行總線上掛多個支持SPI標準的器件。有關SPI串行總線的具體參數(shù)請參閱器件資料。
 
圖2 SPI串行數(shù)據(jù)總線數(shù)據(jù)傳送時序圖

2 Keil C51程序
    單片機程序采用Keil C51編程語言編寫,經(jīng)編譯后生成HEX文件即可固化在AT89C2051中。一個C,51工程(project)的源程序由C文件和H頭文件等組成。本文下面給出的C文件wave.c中有主程序"void main(void)"、DA轉(zhuǎn)換輸出函數(shù)"void da.out(void)"和定時器中斷函數(shù)"void timer0(void)interrupt 1 using 2"組成。兩次DA轉(zhuǎn)換之間采用定時器0進行定時。在產(chǎn)生基頻正弦信號或倍頻正弦信號時不改變定時器的定時時間,而是通過傳送給DA不同的數(shù)字量來實現(xiàn),即頭文件中的產(chǎn)生基頻正弦信號的wavel數(shù)組和產(chǎn)生倍頻信號的waveh數(shù)組的長度一樣,均為128,但wavel是一個周期內(nèi)正弦波的數(shù)字量,waveh是兩個周期內(nèi)的數(shù)字量,前64個數(shù)值與后64個數(shù)值相同。這樣可以避免執(zhí)行重置定時常數(shù)的指令而引起的時間誤差,從而得到精確的雙倍頻關系。另外,wavel數(shù)組中的峰-峰值(最大值-最小值)約為waveh數(shù)組中峰-峰值的一半,這樣使得經(jīng)RC濾波后兩種頻率的正弦波幅度近似相等,以滿足使用要求。如程序中的定時常數(shù)(TH0=0xff,TL0=0x00),在晶振為20MHz時,測得基頻為50.6Hz,倍頻為101.2Hz。以下是C51源程序wave.c和H頭文件wave.h,在Keil C51 V6.12下編譯通過生成HEX文件。
  C51源程序wave.c
#include<reg51.h>
#include<intrins.h>
#include "wave.h"
void da_out(void); //聲明函數(shù)
sbit DIN=0x97; //P1.7位定義
sbit SCLK=0x96; //P1.6位定義
sbit DACS=0x95; //P1.5位定義
sbit SWF1 =0x94; //P1.4位定義
sbit SWF0 =0x93; //P1.3位定義
sbit WDI =0x92; //P1.2位定義
sbit FLAG = 0x90;
IUI word; //IUI即idata unsigned int,在wave.h中預定義
void main(void){
IUI i;
TMOD =0x01; //定時器0方式1;
TH0=0xff;TL0=0x00; //置定時器0常數(shù);
TR0=1; //啟動定時器0
ET0=1;EA=1; //開定時器中斷及總中斷
SWF0=1;SWF1=1; //設P1.3,P1.4為輸入
WDI=1; //看門狗輸入置高電平
while(1){
for(i=0;i<128;i++){
FLAG=1; //置標志,FLAG在定時器0中斷程序中被清除
WDI=0;_nop_();WDI= 1;//看門狗復位
if(SWF1) word=512; //SWF1=1時,DA輸出同一量,無正弦信號輸出
else{
if(SWF0) word=waveh[i];//取倍頻數(shù)字量
else word=wavel[i]; //取基頻數(shù)字量
}
word=word<<6; //10位數(shù)字量移至高位
while(FLAG); //等待,直至定時器中斷程序中清FLA G
da_out(); //調(diào)用DA輸出子程序
}
}
}
void timer0(void) interrupt 1 using 2{
TH0=0xff;TL0=0x00;//重置定時器常數(shù)
FLAG=0;//清主程序中的等待標志
}
void da_out(void){
IUI i;
SCLK =0;_nop_();DACS=0; //準備傳送數(shù)據(jù)
for(i=0;i<10;i++){
DIN= (bit)(word&Ox80); //取最高位送數(shù)據(jù)線
word = word << 1; //左移,準備下一位傳送
SCLK =1;_nop_();SCLK =0; //一個CLK信號
}
DACS= 1;_nop_();SCLK=1; //傳送結(jié)束
}

H頭文件(wave.h):
typedef idata unsigned int IUI;
int code wavel[]={
512,524,537,550,563,698,707,715,723,731,775,775,774,772,770,698,689,679,669,658,
512,499,486,473,460,325,316,308,300,292,248,248,249,251,253,325,334,344,354,365,
};
int code waveh[]={
512,562,611,660,707,753,796,836,874,907,937,963,985,1001,1014,1021,
1023,1021,1014,1001,985,963,937,907,874,836,796,753,707,660,611,562,
512,46l,412,363,316,270,227,187,149,116,86,60,38,22,9,2,
0,2,9,22,38,60,86,116,149,187,227,270,316,363,412,461,
512,562,611,660,707,753,796,836,874,907,937,963,985,1001,1014,1021,
1023,1021,1014,1001,985,963,937,907,874,836,796,753,707,660,611,562,
512,461,412,363,316,270,227,187,149,116,86,60,38,22,9,2,
0,2,9,22,38,60,86,116,149,187,227,270,316,363,412,461
}:

3  小結(jié)
    筆者有多年的單片機匯編語言編程經(jīng)歷,改用Keil C51后感覺很好,編程效率大為提高。本文是Keil C51在正弦波產(chǎn)生中的應用,由C源程序可見,程序較匯編語言程序可讀性大為提高,非常簡煉。本文介紹的倍頻正弦波信號發(fā)生電路已用于某型電導率表中,效果很好。

Tags:keilc,正弦信號,產(chǎn)生  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
推薦文章
最新推薦
熱門文章
關于我們 - 聯(lián)系我們 - 廣告服務 - 友情鏈接 - 網(wǎng)站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 成人免费看片'免费看| 男女超爽视频免费播放| 少妇高清精品毛片在线视频| 精品一区二区成人免费视频| 污污网站免费看| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 国产精品久久国产| 久久婷婷中文字幕| 亚洲精品永久视频| 亚洲网中文字幕| 日韩精品一区二区三区色欲av| 波多野结衣综合网| 欧美亚洲另类色图| 欧美污视频网站| 中文字幕第80页| 三日本三级少妇三级99| 亚洲一区二区偷拍| 黄色网在线视频| 国产精品久久中文字幕| 欧美牲交a欧美牲交aⅴ免费真| www.四虎成人| 亚洲精品www.| 免费一级淫片aaa片毛片a级| 阿v天堂2018| 亚洲福利精品视频| 免费观看国产视频在线| 日韩网站在线免费观看| 最近免费中文字幕中文高清百度| 午夜视频你懂的| 午夜啪啪福利视频| 丝袜老师办公室里做好紧好爽| 在线观看国产中文字幕| 免费cad大片在线观看| 91看片就是不一样| 亚洲色图都市激情| 北条麻妃在线一区| 国产情侣第一页| 日韩欧美在线免费观看视频| 一级片黄色免费| 免费日韩视频在线观看| 中文字幕在线视频一区二区| 99热自拍偷拍| 中国老女人av| 日韩精品无码一区二区三区免费| 亚洲av首页在线| 中文字幕第100页| 凹凸国产熟女精品视频| 欧美aaa在线观看| 妓院一钑片免看黄大片| 2018日日夜夜| 久久天天东北熟女毛茸茸| 情侣黄网站免费看| 黄色一级片播放| 无码 制服 丝袜 国产 另类| 欧美aaa在线观看| 欧美美女一级片| 一区二区三区韩国| 国产aaa一级片| 国产特级淫片高清视频| 成人av在线不卡| 欧美少妇一级片| 亚洲 欧洲 日韩| 色天使在线观看| 亚欧美在线观看| 污视频免费在线观看网站| 成人在线观看黄| 男人的天堂99| 99久久激情视频| 国产精品无码专区av在线播放| 国产97在线 | 亚洲| 国产欧美精品aaaaaa片| 黄色一级片国产| 国产精彩视频一区二区| 欧美视频免费看欧美视频| 欧美亚洲日本一区二区三区| 日韩伦理在线免费观看| 欧美老熟妇喷水| 欧美精品成人网| 成年人三级黄色片| a级网站在线观看| 真实国产乱子伦对白视频| 蜜臀av色欲a片无码精品一区| 九色自拍视频在线观看| 日韩欧美精品在线观看视频| 色综合天天色综合| 国产又粗又长又爽又黄的视频| 奇米777在线视频| www.成年人视频| 久章草在线视频| 亚洲高清免费在线观看| 在线免费黄色小视频| 国产妇女馒头高清泬20p多| 欧美在线观看www| 亚洲最大成人在线观看| 男同互操gay射视频在线看| 国产特级淫片高清视频| 亚洲综合欧美激情| 国产玉足脚交久久欧美| 九色porny91| 成人av在线播放观看| 久久久久久久激情| 日本老太婆做爰视频| 人妻有码中文字幕| 无码人妻精品一区二区三区99v| jizzjizz国产精品喷水| 超碰人人草人人| 精品中文字幕av| 7777在线视频| 日日干夜夜操s8| 久久综合色视频| 经典三级在线视频| 91福利国产成人精品播放| 老司机激情视频| 亚洲视频第二页| 日本熟妇人妻xxxxx| 福利在线一区二区| 天天摸天天舔天天操| 日韩av播放器| avav在线看| 毛片在线播放视频| www.日本在线视频| 日本a级片在线观看| 欧美成人乱码一二三四区免费| 欧美牲交a欧美牲交| 青青草成人免费在线视频| 精品国产无码在线| 午夜大片在线观看| 亚洲欧美在线精品| 国产区二区三区| 91国产精品视频在线观看| 国产欧美高清在线| 不卡影院一区二区| 亚洲成人av免费看| 五月婷婷之综合激情| 午夜在线观看av| 天天干天天操天天做| 嫩草视频免费在线观看| 一区二区三区欧美精品| 美女在线视频一区二区| 色91精品久久久久久久久| 中文字幕天天干| 亚洲综合激情视频| 午夜激情视频网| 51xx午夜影福利| 97超碰在线人人| 免费高清在线观看免费| 日本wwww视频| 色婷婷成人在线| 吴梦梦av在线| 青青青青草视频| 午夜激情在线观看视频| 婷婷激情综合五月天| 欧美一级特黄aaaaaa在线看片| 国产内射老熟女aaaa| 日日碰狠狠添天天爽超碰97| 午夜激情福利在线| 中文字幕剧情在线观看| 欧美高清中文字幕| 黄色一级免费大片| 熟女视频一区二区三区| 久久久性生活视频| 欧美大尺度做爰床戏| 丰满人妻一区二区三区53号| 国产欧美在线一区| 爱豆国产剧免费观看大全剧苏畅| 免费观看黄色大片| 久热免费在线观看| 女同性恋一区二区| 天天干在线影院| 老子影院午夜伦不卡大全| 亚洲精品自拍网| 国产无限制自拍| 在线观看免费不卡av| 成人在线观看你懂的| 超碰成人在线播放| 国产综合免费视频| 国产亚洲精品久久久久久久| 亚洲一区二区蜜桃| 国产h视频在线播放| 偷拍盗摄高潮叫床对白清晰| 日本va中文字幕| av日韩一区二区三区| 欧美日韩一级在线| 久热精品在线播放| 哪个网站能看毛片| 免费在线观看视频a| 青青视频免费在线观看| 中文字幕第36页| 成人羞羞国产免费网站| a天堂资源在线观看| 做爰高潮hd色即是空| 91pony九色| 在线观看免费不卡av| 亚洲黄色a v| 国产理论在线播放| 爱福利视频一区二区| 欧美亚洲一二三区| 青青艹视频在线| 男人天堂网视频| 亚洲中文字幕久久精品无码喷水|