久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6426|回復: 12
打印 上一主題 下一主題
收起左側

我用51單片機寫的波形發生器 可以輸出正弦波 但是不能調整頻率 難道是我的中斷...

[復制鏈接]
跳轉到指定樓層
樓主
ID:51036 發表于 2013-6-18 13:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define fosc 12000000
#define all 65535
float sindatar;
sbit hong=P2^3;
sbit lan=P2^5;
sbit huang=P2^7;
uint VM=2500,b=0;
uint FREQ=1,j=0;
void delay(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
    for(y=1;y>0;y--);
}

/**********************************************
                計算正弦波數據
********************************************/
void getsin(uchar x)
{   
    sindatar=((sin(6.28*x/256)+1)/2.0)*VM*0.051;
P3=(uchar)sindatar;
delay(1);
}
void main()
{
   TH1=(all-fosc/12/256/FREQ)/256;
   TL1=(all-fosc/12/256/FREQ)%256;
   ET1=1;
   EA=1;
   TR1=1;
   while(1)
   {
       n getsin(j);
   }
}
void timer1() interrupt 3 using 3
{
   TH1=(all-fosc/12/256/FREQ)/256;
   TL1=(all-fosc/12/256/FREQ)%256;
   j++;
   if(j==256)
   j=0;
}



這是我的程序,麻煩幫忙解答一下為什么。  此時示波器上的顯示的周期是2s,這跟我的設置的頻率的FREQ=1有點不對。  求解釋一下。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:262 發表于 2013-6-19 00:51 | 只看該作者
有高手知道嗎
回復

使用道具 舉報

板凳
ID:51036 發表于 2013-6-19 01:02 | 只看該作者

謝謝  我真的調了好多天了  
回復

使用道具 舉報

地板
ID:51036 發表于 2013-6-19 01:04 | 只看該作者

還是沒有調試出來
回復

使用道具 舉報

5#
ID:7485 發表于 2013-6-19 11:00 | 只看該作者
本帖最后由 ahshmj 于 2013-6-19 11:09 編輯

你有必要搞這么復雜么?你這樣,中斷函數的運行過程就超過了中斷定時,怎能會正常?
不信,你直接將你需要的數值填寫進去試一試!
“   TH1=(all-fosc/12/256/FREQ)/256;
   TL1=(all-fosc/12/256/FREQ)%256;

如下改試一試,如果是值不對你自己計算一下:
   TL1=0XBD;
   TH1=0XF0;

正弦波發生器,如果要求嚴格的話,定時部分最好使用匯編。
回復

使用道具 舉報

6#
ID:7485 發表于 2013-6-19 11:06 | 只看該作者
本帖最后由 ahshmj 于 2013-6-19 11:10 編輯

定時需要再延長一些,中間的計算過程耗時多。如果不能延長,就要使用更高的晶振。否則這個程序調不正常。
回復

使用道具 舉報

7#
ID:51036 發表于 2013-6-19 13:12 | 只看該作者
ahshmj 發表于 2013-6-19 11:00
你有必要搞這么復雜么?你這樣,中斷函數的運行過程就超過了中斷定時,怎能會正常?
不信,你直接將你需要 ...

恩恩  謝謝啊   是要開始學學匯編了
因為我是要調這個波形發生器頻率的   假如不用這種方法  還可以有其他的方法么?
真的謝謝您啊
回復

使用道具 舉報

8#
ID:51036 發表于 2013-6-19 13:14 | 只看該作者
ahshmj 發表于 2013-6-19 11:06
定時需要再延長一些,中間的計算過程耗時多。如果不能延長,就要使用更高的晶振。否則這個程序調不正常。

我當時是想通過這種計算來控制頻率的  我是不能延時太長了   因為要求波形發生器的頻率最高要1k  HZH
回復

使用道具 舉報

9#
ID:7485 發表于 2013-6-19 15:38 | 只看該作者
忘了告訴你了:
你沒有設置定時器的工作模式,就成了默認的13位計數/定時,需要加上一句:   TMOD = 0x10; 當然你不加這一句也行,13位的。但是初裝值不一樣。
回復

使用道具 舉報

10#
ID:51036 發表于 2013-6-20 13:55 | 只看該作者
ahshmj 發表于 2013-6-19 15:38
忘了告訴你了:
你沒有設置定時器的工作模式,就成了默認的13位計數/定時,需要加上一句:   TMOD = 0x10; ...

好的  好的  謝謝
回復

使用道具 舉報

11#
ID:76287 發表于 2015-4-7 19:02 | 只看該作者
不懂,但是還是要頂,安撫樓主受傷心靈,每一個新手都是痛苦的開始,快樂的結局
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费一区二区三区 | 成年免费大片黄在线观看一级 | 日韩手机视频 | 亚洲成人免费在线观看 | www.夜夜草| 欧美精品一区二区三区在线播放 | 日韩无| 在线观看www | 久久精品国产99国产 | 日韩精品欧美精品 | 亚洲第一av| 日韩一区二区在线视频 | 亚洲精品久久久久中文字幕欢迎你 | 韩日在线视频 | 一级h片 | 久久91精品| 久久精品视频免费观看 | 色999视频 | 天天操人人干 | 国产午夜在线 | 欧美日韩精品中文字幕 | 久久99深爱久久99精品 | 精品久久久久久亚洲精品 | 国产精品一区二区三区四区五区 | 在线观看特色大片免费网站 | 国产精品久久久久久久久久久久久久 | 久久综合伊人一区二区三 | 久久综合一区 | 欧美电影免费观看高清 | 久久久99精品免费观看 | 影音先锋男 | 亚洲免费在线视频 | 国产伦精品一区二区三区视频金莲 | 久久成人免费视频 | 亚洲精品一二三区 | 成人性视频在线播放 | 日韩在线免费视频 | 亚洲一级在线 | 国产欧美一区二区三区在线看蜜臀 | 国产一区二区精品在线观看 | 在线午夜 |