标题:
51单片机设计的频率计仿真与源代码
[打印本页]
作者:
zhuzhu@qq
时间:
2018-5-29 17:57
标题:
51单片机设计的频率计仿真与源代码
频率计仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(21.6 KB, 下载次数: 48)
下载附件
2018-5-30 00:00 上传
0.png
(48.15 KB, 下载次数: 50)
下载附件
2018-5-30 00:00 上传
单片机频率计源程序如下:
#include<reg52.h>
sbit LED=P1^7;
sbit SW=P3^2;
bit flag=0;
bit CL = 0;
unsigned int high = 0; //计数器溢出的次数
unsigned int low = 0;
unsigned char cishu = 0; //定时器溢出次数
unsigned char ch[6];
unsigned char code dsy_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char num[6] = {0}; //存储各个位的值
void DelayMS (unsigned int x);
void main()
{
unsigned char i;
EA = 1;
EX0 = 1;
IT0=1;
ES = 1; //开串口中断
SCON = 0x50; //方式1
PCON = 0x00;
TMOD = 0x21; //定时器T1方式2
TH1 = 0xFD;
TL1 = 0xFD; //波特率9600
TR0 = 1;
ET0 = 1;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256; //设置T0为50ms溢出一次
TCON = 0x50; //同时开启定时器T0和计数器T1
while(1)
{
if(flag==1)
{
for(i=0;i<6;i++)
{
P2 = 0x04<< i;
P0 = dsy_code[num[i]];
DelayMS(2);
ch[i]=num[i] + '0';
SBUF=ch[i];
while(!TI);
TI=0;
}
SBUF=' ';
while(!TI);
TI=0;
}
}
}
void Timer0() interrupt 1
{
if(CL==1)
{
cishu++;
// TH0 = (65536 - 50000) / 256;
// TL0 = (65536 - 50000) % 256;
if(cishu == 20)
{
TCON = 0x00; //暂停定时器,缓解CPU压力,并不影响频率值
cishu = 0;
num[0] = (high*256 + low)/ 100000 % 10;
num[1] = (high*256 + low)/ 10000 % 10;
num[2] = (high*256 + low)/ 1000 % 10;
num[3] = (high*256 + low)/ 100 % 10;
num[4] = (high*256 + low)/ 10% 10;
num[5] = (high*256 + low)% 10;
high = 0;
low = 0;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256; //再重装初值,保证计数时间为1秒
TCON = 0x50; //同时开启定时器T0和计数器T1
flag=1;
LED=1;
}
}
}
void Timer1() interrupt 0
{
TF0=1;
low++;
TH1 = 0xFD;
TL1 = 0xFD; //波特率9600
if(low==256)
{
high++;
// low=0;
}
TF0=0;
// if(high==256)high=0;
}
void InterruptUART () interrupt 4
{
static unsigned char m;
if(RI) //接受到字节
{
RI=0; //手动清零接收中断标志位
m=SBUF; //接收的数据+1后发回,左边是发送SBUF,右边是接收SBUF
if(m=='A')
{
CL=1;
LED=0;
}
}
}
void DelayMS (unsigned int x)
{
unsigned int t;
while (x--)
{
for(t=0;t<120;t++);
}
}
复制代码
所有资料51hei提供下载:
频率计.zip
(70.3 KB, 下载次数: 24)
2018-5-29 17:54 上传
点击文件名下载附件
基于c51设计
下载积分: 黑币 -5
作者:
ziba108
时间:
2018-6-14 21:37
缺少fangboxinhao.hex????
作者:
mif
时间:
2018-7-2 16:22
多谢了大佬
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1