找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2385|回復: 12
打印 上一主題 下一主題
收起左側

單片機Proteus仿真可以成功實現(xiàn)方波輸出和調頻,但是制作的實物電路就不行了

[復制鏈接]
跳轉到指定樓層
樓主
ID:792300 發(fā)表于 2021-1-12 21:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼調試和protues仿真都可以成功實現(xiàn)方波輸出和調頻。但是實物用示波器就不能,求大佬幫助

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
float fosc=11059200;
sbit KEY=P1^0;
sbit OUTPUT=P2^0;
sbit P2_0=P2^0;
uchar zkb;
uint freq;
uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H;
void delay(uchar n)
{
uchar i;
        while(n--)
        {
                for(i=255;i>0;i--)
                {
                }
        }
}
void chushihua(void)
{
P1=0x01;//00000001
freq=1000;
zkb=50;
P2_0=1;
TIMER0_L=0x67;//11100000
TIMER0_H=0xfc;//10110001
TIMER1_L=0xf0;//11110000
TIMER1_H=0xd8;//11011000 定時器高、低賦初值
TL0=0x67;
TH0=0xfc;//T0計數(shù)器賦初值
TL1=0xf0;
TH1=0xd8;//T1計數(shù)器賦初值
TMOD=0x11;
IT0=1;//INT0為下降沿中斷
EX0=1;//INT0中斷
ET0=1;//打開定時器0的中斷
ET1=1;//打開定時器1的中斷
EA=1;//中斷允許
TR0=1;//表示定時器0工作。
TR1=1;//表示定時器1工作。
}//初始化
void main(void)
{
                chushihua();
                        while(1)
                        {

                        }
}
void Timer0_freq() interrupt 1//對應定時器/計數(shù)器0中斷;
{
TR0=1;
TL0=TIMER0_L;
TH0=TIMER0_H;
OUTPUT=~OUTPUT;
}
void Timer1_zkb() interrupt 3//對應定時器/計數(shù)器1中斷
{
TR0=0;
TL1=TIMER1_L;
TH1=TIMER1_H;
OUTPUT=~OUTPUT;
}
void keyscan() interrupt 0 using 1//對應外部中斷0
{
float TF0,TZ1;
EX0=0;
delay(10);
if(P1!=0x01)
{
if(KEY==0) freq+=1000;
if(freq>10000) freq=1000;
TF0=(65536-fosc/(11.0592*freq));
TZ1=(65536-(fosc*zkb)/(11.0592*100*freq));
TIMER0_H=(uint)TF0/256;
TIMER0_L=(uint)TF0%256;
TIMER1_H=(uint)TZ1/256;
TIMER1_L=(uint)TZ1%256;//計算定時器0和定時器1
}
P1=0x01;
EX0=1;
TR0=1;
TR1=1;
}

2.jpg (1.57 MB, 下載次數(shù): 26)

2.jpg

1.png (38.25 KB, 下載次數(shù): 29)

1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:332444 發(fā)表于 2021-1-13 08:36 | 只看該作者
如果實物有示波器的話建議功能一個個驗證,先弄占空比到實物完成后再弄其他。
回復

使用道具 舉報

板凳
ID:844772 發(fā)表于 2021-1-13 11:02 | 只看該作者
是不是目前只有方波,不能調頻?發(fā)個實物示波器的圖片唄。
回復

使用道具 舉報

地板
ID:877228 發(fā)表于 2021-1-13 17:03 | 只看該作者
需要詳細描述一下現(xiàn)在的問題,先確認好單片機的工作狀態(tài),另外在做示波器實際測試時,建議將R7接地,示波器直接測量R7兩端
回復

使用道具 舉報

5#
ID:390416 發(fā)表于 2021-1-13 17:06 | 只看該作者
天天玩仿真,實物搞不定,將來怎么工作?有哪個公司會請你?有哪個客戶會看看你的仿真就下百萬小訂單?
回復

使用道具 舉報

6#
ID:792300 發(fā)表于 2021-1-13 21:40 | 只看該作者
人人學會單片機 發(fā)表于 2021-1-13 17:06
就你這樣,天天玩仿真,實物搞不定,將來怎么工作?有哪個公司會請你?有哪個客戶會看看你的仿真就下百萬小 ...

我不是不懂再問嗎??誰生下來就會�。�?
回復

使用道具 舉報

7#
ID:792300 發(fā)表于 2021-1-13 21:41 | 只看該作者
ZHHB 發(fā)表于 2021-1-13 17:03
需要詳細描述一下現(xiàn)在的問題,先確認好單片機的工作狀態(tài),另外在做示波器實際測試時,建議將R7接地,示波器 ...

r7是保護電阻
回復

使用道具 舉報

8#
ID:792300 發(fā)表于 2021-1-13 21:43 | 只看該作者
glinfei 發(fā)表于 2021-1-13 11:02
是不是目前只有方波,不能調頻?發(fā)個實物示波器的圖片唄。

示波器如圖

555.jpg (1.89 MB, 下載次數(shù): 30)

555.jpg
回復

使用道具 舉報

9#
ID:844772 發(fā)表于 2021-1-14 11:25 | 只看該作者
void Timer1_zkb() interrupt 3//對應定時器/計數(shù)器1中斷
{
  TR0=0;    你在這關了以后就沒打開啊,所以應該能改變頻率,只是和你想的不一樣。

TF0=(65536-fosc/(11.0592*freq)); 應該除以12而不是11.0592,所以你的頻率稍慢了。

另外,你不會真的把開關給短接了吧?
回復

使用道具 舉報

10#
ID:146782 發(fā)表于 2021-1-14 11:31 | 只看該作者
你仿真圖上按鍵是短路的,實物也是這樣嗎?
回復

使用道具 舉報

11#
ID:792300 發(fā)表于 2021-1-14 18:45 | 只看該作者
glinfei 發(fā)表于 2021-1-14 11:25
void Timer1_zkb() interrupt 3//對應定時器/計數(shù)器1中斷
{
  TR0=0;    你在這關了以后就沒打開啊,所以 ...

我使用的11.2592MHZ的晶震,TRO后邊是打開了的
回復

使用道具 舉報

12#
ID:792300 發(fā)表于 2021-1-14 22:38 | 只看該作者
問題已經(jīng)成功解決,謝謝大家的幫助。是代碼output 哪兒有點問題,改過了就好了,謝謝大家
回復

使用道具 舉報

13#
ID:882417 發(fā)表于 2021-8-26 14:47 來自觸屏版 | 只看該作者
我去年七歲 發(fā)表于 2021-1-14 22:38
問題已經(jīng)成功解決,謝謝大家的幫助。是代碼output 哪兒有點問題,改過了就好了,謝謝大家

請問樓主怎么改的呀
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表