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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

基于51單片機產生占空比和頻率可調的方波信號發生器(附全部代碼)

查看數: 28231 | 評論數: 14 | 收藏 25
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-8-5 21:16

正文摘要:

       前段時間開始接觸到單片機,以為單片機會很簡單,但比我預想的要復雜一些,特別是剛開始接觸的時候,需要下載各種軟件,然后自己慢慢地去熟悉這些軟件的操作。我是從51單片機開始入手, ...

回復

ID:1102160 發表于 2023-12-2 16:39
Lily-lemon 發表于 2020-1-3 11:20
請問一般Proutues要從哪里下載呀?

在嗶哩嗶哩有一堆的安裝資料以及教程,而且是免費的,可以去看看
ID:945571 發表于 2021-6-27 16:12
您好!有匯編語言的嗎
ID:253767 發表于 2021-1-13 07:52
zkb=50;
ID:792300 發表于 2021-1-12 22:03
丶1u0 發表于 2020-3-13 18:23
RV1是什么呀 在Proteus中怎么找呢

RU1是滑動變阻器。元件名是:POT-HG
ID:783282 發表于 2020-7-6 00:27
這個怎么調占空比
ID:718536 發表于 2020-4-11 22:17
本帖最后由 suqianfu 于 2020-4-11 22:29 編輯

大佬,我添加了一點注釋,不知道理解得對不對
#include<reg51.h>                                                 //調用頭文件
#define uchar unsigned char                                //
#define uint unsigned int
float fosc=12000000;                                        //聲明單片機運行頻率表12Mhz
sbit KEY1=P1^0;                                                        //聲明按鍵1占用腳
sbit KEY2=P1^1;                                                        //聲明按鍵2占用腳
sbit KEY3=P1^2;                                                        //聲明按鍵3占用腳
sbit KEY4=P1^3;                                                        //聲明按鍵4占用腳
sbit OUTPUT=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--)                                                //賦值I為255,I大于0,I--自減1.直至循環執行次數清零(無中生友系列)
{}
}}
void chushihua(void)                //名為(初始化)之子函數
{
P1=0x0f;                                //賦值P1口數據
freq=500;                                //賦值頻率=500
zkb=50;                                         //賦值占空比為50%
TIMER0_L=0xe0;                         //定時變量,定時器0初始時間高8位賦值,具體定時時間自己查資料
TIMER0_H=0xb1;                        //定時變量,定時器0初始時間低8位賦值,具體定時時間自己查資料
TIMER1_L=0xf0;                        //定時變量,定時器1初始時間高8位賦值,具體定時時間自己查資料
TIMER1_H=0xd8;                        //定時變量,定時器1初始時間低8位賦值,具體定時時間自己查資料
TL0=0xe0;                                //定時器0初始時間高8位賦值,具體定時時間自己查資料
TH0=0xb1;                                //定時器0初始時間低8位賦值,具體定時時間自己查資料
TL1=0xf0;                                //定時器0初始時間高8位賦值,具體定時時間自己查資料
TH1=0xd8;                                //定時器0初始時間高8位賦值,具體定時時間自己查資料
TMOD=0x11;                                //設定定時器工作模式
IT0=1;                                        //設定外部中斷模式
EX0=1;                                        //啟動外部中斷
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        //中斷子程序--頻率
{
TR1=1;                                                    //啟動定時器1
TL0=TIMER0_L;                                        //定時器0高8位重新賦值定時函數,具體定時時間自己查資料
TH0=TIMER0_H;                                        //定時器0低8位重新賦值定時函數,具體定時時間自己查資料
OUTPUT=1;                                                //輸出高電平
}
void Timer1_zkb() interrupt 3        //中斷子程序--占空比
{
TR1=0;                                                    //關閉定時器1
TL1=TIMER1_L;                                    //定時器1高8位重新賦值定時函數,具體定時時間自己查資料
TH1=TIMER1_H;                                    //定時器1低8位重新賦值定時函數,具體定時時間自己查資料
OUTPUT=0;                                                //輸出低電平
}
void keyscan() interrupt 0 using 1        //中斷子程序--按鍵檢測
{
float TF0,TZ1;                                        //聲明浮點變量....這句話不是看得太懂...理解錯了勿怪
EX0=0;                                                    //關閉外部中斷
delay(10);                                                //延時10
if(P1!=0x0f)                                    //演示后如果檢測到P1口不等于0X0F這個值,判斷按鍵按下
{                                                                                                          
if(KEY1==0) freq+=500;                    //如果是按鍵1按下,則頻率變量增加500
if(KEY2==0) freq+=50;                        //如果是按鍵2按下,則頻率變量增加50
if(freq>10000) freq=500;                //如果頻率變量超過10000,則頻率變量重新置為500
if(KEY3==0) zkb+=10;                        //如果是按鍵3按下,則占空比變量增加10
if(KEY4==0) zkb++;                                //如果是按鍵4按下,則占空比變量增加1
if(zkb>100) zkb=1;                                //如果占空比超過100,則占空比變量重新置為1
TF0=(65536-fosc/(12.0*freq));        //定時器溢出標記TF0賦值為65536減去時鐘頻率12分頻        ??不是太理解
TZ1=(65536-(fosc*zkb)/(12.0*100*freq));        //TZ1這個啥玩意?跟上一行大概意思吧
TIMER0_H=(uint)TF0/256;
TIMER0_L=(uint)TF0%256;
TIMER1_H=(uint)TZ1/256;
TIMER1_L=(uint)TZ1%256;
}
P1=0x0f;                                                //重新賦值P1口初始化
EX0=1;                                                    //啟動外部中斷
TR0=1;                                                        //重新啟動定時器0TR0
TR1=1;                                                    //重新啟動定時器1TR1
}
ID:718536 發表于 2020-4-11 21:33
丶1u0 發表于 2020-3-13 18:23
RV1是什么呀 在Proteus中怎么找呢

看圖RV1應該似乎可調電阻。隨便找個什么高阻值電阻就可以了。反正是測試波形用的
ID:587438 發表于 2020-3-13 18:53
RV1是什么東西阿
ID:587438 發表于 2020-3-13 18:23
RV1是什么東西阿 在Proteus中怎么查找呢
ID:587438 發表于 2020-3-13 18:23
RV1是什么呀 在Proteus中怎么找呢
ID:308417 發表于 2020-1-11 11:39
誒可以哦,不錯哦,真是個好思路,可以參考參考
ID:671476 發表于 2020-1-3 11:20
請問一般Proutues要從哪里下載呀?
ID:420256 發表于 2019-12-20 20:36
為什么我的仿真改不了占空比呢
ID:379386 發表于 2019-11-19 09:15
您好,樓主,在您的keyscan()中定義了TF0,這個是stc的中斷溢出標志位,您的程序跑起來沒有問題么?

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久中文 | 91啦丨九色丨刺激 | 99久热 | 国产日韩欧美日韩大片 | 91亚洲国产成人久久精品网站 | 毛片网站视频 | 国产福利在线视频 | 啪啪网站免费 | 日韩一区二区三区四区 | 日本特黄特色aaa大片免费 | 亚洲色在线视频 | 97超碰资源 | 久久久久久伊人 | 特级丰满少妇一级aaaa爱毛片 | 在线观看日韩av | 久久久久久久99 | 亚洲精品国产精品国自产观看浪潮 | 亚洲天堂免费 | 一区二区三区av | 天堂中文在线资源 | av网站观看| 亚州av在线 | 亚洲精品美女 | 深夜福利av| 日韩精品福利 | 欧美视频一二三区 | 青青草视频在线观看 | 国产欧美精品一区二区色综合 | 亚洲视频一区二区三区 | 银杏av| 日韩精品一 | 深夜福利在线播放 | 国产精品福利一区 | 日韩精品视频免费 | 欧美一区免费 | 99国产视频 | av片免费观看 | 日韩黄色网址 | 免费久久久 | 青青青在线视频 | 中文字幕在线观看第一页 |