|
P1口輸出可調(diào)方波;key1上調(diào)頻率;
key2下調(diào)頻率;
注:若編譯時(shí)出現(xiàn)沒(méi)有T2MOD,可在頭文件reg52.h中加上sfr T2MOD = 0xC9; (此方法通過(guò)百度知道搜索)
頭文件夾目錄為keil->C51->INC
此程序用的時(shí)52中的T2定時(shí)/計(jì)數(shù)器51中沒(méi)有。
//這是書上的程序,做出來(lái)供參考一下 mcs-51單片機(jī)還是很強(qiáng)大的嘛 --來(lái)自初學(xué)者的感嘆!
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
35hz:
屏幕截圖(104).png (668.84 KB, 下載次數(shù): 76)
下載附件
35hz
2019-7-21 20:31 上傳
屏幕截圖(103).png (667.29 KB, 下載次數(shù): 70)
下載附件
83hz
2019-7-21 20:31 上傳
屏幕截圖(102).png (666.92 KB, 下載次數(shù): 68)
下載附件
50hz
2019-7-21 20:31 上傳
0.png (13.24 KB, 下載次數(shù): 75)
下載附件
2019-7-22 04:40 上傳
單片機(jī)源程序如下:
- #include <reg52.h>
- #include "delay.h"
- #define unit unsigned int
- #define uchar unsigned char
- uchar fre;//定義頻率變量
- uchar LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x39,0x5e,0x79,0x71};//0-e 共陰數(shù)碼管
- sbit pulse=P1^0;//脈沖輸出端
- sbit key1=P1^1;//按下 頻率增大1
- sbit key2=P1^2;//頻率減小1
- void main()
- {
- fre=50;//設(shè)頻率初值50hz
- pulse=1;
- T2MOD=0X02;
- T2CON=0X00;
- TH2=(65536-(12000000/(24*fre)))/256;
- TL2=(65536-(12000000/(24*fre)))%256;
- RCAP2H=(65536-(12000000/(24*fre)))/256;
- RCAP2L=(65536-(12000000/(24*fre)))%256;
- EA=1;
- ET2=1;
- TR2=1;
- while(1)
- {
- if(key1==0)
- {
- delay(5);//去除抖動(dòng)
- if(key1==0)
- {
- fre++;//頻率+1
- if(fre==100)fre=99;//極限頻率99hz
- RCAP2H=(65536-(12000000/(24*fre)))/256;
- RCAP2L=(65536-(12000000/(24*fre)))%256;
- while(!key1);
- do{delay(5);}
- while(!key1);//去除抖動(dòng)
- }
- }
- if(key2==0)
- {
- delay(5);
- if(key2==0)
- {
- fre--;//頻率-1
- if(fre==7)fre=8;//極限8hz
- RCAP2H=(65536-(12000000/(24*fre)))/256;
- RCAP2L=(65536-(12000000/(24*fre)))%256;
- while(!key2);
- do{delay(5);}
- while(!key2);//去除抖動(dòng)
- }
-
- }
- }
- }
- void counter2()interrupt 5
- {
- TF2=0;
- pulse=!pulse;
- }
復(fù)制代碼
所有資料51hei提供下載:
52單片機(jī)的t2功能(可調(diào)頻率方波).zip
(46.95 KB, 下載次數(shù): 36)
2019-7-21 20:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|