|
用了STC12C5A60S2做的一個(gè)頻率計(jì)
1586674504(1).png (100.37 KB, 下載次數(shù): 57)
下載附件
2020-4-12 14:55 上傳
1586674436(1).png (55.07 KB, 下載次數(shù): 54)
下載附件
2020-4-12 14:55 上傳
單片機(jī)源程序如下:
- #include "stdio.h"
- #include "stc12c5a60s2.h"
- unsigned int j;
- unsigned long Fx;
- char A[10];
- void send(char* Data) //發(fā)送
- {
- while(* Data != '\0')
- {
- SBUF = *Data;
- while(!(SCON&0x02));
- SCON &= 0xFD;
- Data++;
- }
- }
- void Timer_Init(void) //T1定時(shí)模式 T0計(jì)數(shù)模式
- {
- unsigned int a=500;
- TMOD = 0x15;
- TH1 = (65536-9216)/256;
- TL1 = (65536-9216)%256; //10毫秒溢出 0.35%誤差
- TH0 = 0x00;
- TL0 = 0x00;
- TR1 = 1;
- TR0 = 1;
- ET1 = 1;
- while(a--);
- EA = 1;
- }
- void Pulse()
- {
- Fx=TL0+TH0*256; //賦值脈沖
- TH0=0x00; //清零
- TL0=0x00;
- }
-
- void T11(void) interrupt 3 //0 外0 1 定0 2 外1 3 定1 4 串
- {
- TH1 = (65536-9216)/256; //10ms定時(shí) 0%誤差
- TL1 = (65536-9216)%256;
- j++;
- if(j>=100)
- {
- Pulse();
- sprintf(A,"%ld",Fx);
- send(A);
- send("\r\n");
- j=0;
- }
- }
- void UartInit(void) //9600bps@11.0592MHz
- {
- PCON &= 0x7F; //波特率不倍速
- SCON = 0x50; //8位數(shù)據(jù),可變波特率
- AUXR |= 0x04; //獨(dú)立波特率發(fā)生器時(shí)鐘為Fosc,即1T
- BRT = 0xDC; //設(shè)定獨(dú)立波特率發(fā)生器重裝值
- AUXR |= 0x01; //串口1選擇獨(dú)立波特率發(fā)生器為波特率發(fā)生器
- AUXR |= 0x10; //啟動(dòng)獨(dú)立波特率發(fā)生器
- }
- void main()
- {
- Timer_Init();
- UartInit();
- while(1);
- }
復(fù)制代碼
所有資料51hei提供下載:
8.8(頻率計(jì)).zip
(31.15 KB, 下載次數(shù): 35)
2020-4-12 14:52 上傳
點(diǎn)擊文件名下載附件
頻率計(jì) 下載積分: 黑幣 -5
|
|