/*******************************************************************************
*
* 普中科技
--------------------------------------------------------------------------------
* 实 验 名 : NE555脉冲计数显示试验
* 实验说明 : 数码管显示接收到的脉冲频率。
* 连接方式 : 见连接图
* 注 意 :
*******************************************************************************/
#include<reg51.h>
//--定义使用的IO--//
#define GPIO_DIG P0
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
//--定义全局变量--//
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
unsigned char DisplayData[8];
//用来存放要显示的8位数的值
//--声明全局函数--//
void DigDisplay(); //动态显示函数
void TIMER_Configuration(); //初始化定时器
//--定义全局变量--//
unsigned long Freq; //用来存放要显示的频率值
unsigned long TimeCount; //用于计算1S钟的
/*******************************************
*函数名 :main
*功 能 :主函数
*输 入 :无
*输 出 :无
*******************************************/
void main()
{
TIMER_Configuration();
while(1)
{
if(TR0 == 0) //当计数器停下的时候,表明计数完毕
{
Freq = Freq + TL1; //读取TL的值
Freq = Freq + (TH1 * 256); //读取TH的值
//--求频率的个十百千万十万位--//
DisplayData[0] = DIG_CODE[Freq%1000000/100000];
DisplayData[1] = DIG_CODE[Freq%100000/10000];
DisplayData[2] = DIG_CODE[Freq%10000/1000];
DisplayData[3] = DIG_CODE[Freq%1000/100];
DisplayData[4] = DIG_CODE[Freq%100/10];
DisplayData[5] = DIG_CODE[Freq%10];
//--显示完,重新计算下一次频率。--//
Freq = 0;//将计算的频率清零
TH1 = 0; //将计数器的值清零
TL1 = 0;
TR0 = 1; //开启定时器
TR1 = 1; //开启计数器
}
//--显示求得的数值--//
DigDisplay();
}
}
/*******************************************
*函数名 :TIMER_Configuration
*功 能 :配置定时/计数器T0和T1
*输 入 :无
*输 出 :无
*******************************************/
void TIMER_Configuration()
{
//--定时器T1做计数器,工作方式1(16位定时器),只由TRx打开计数器--//
//--定时器T0做定时器,工作方式1(16位定时器),只由TRx打开定时器--//
TMOD=0x51;
//--设置定时器晶振为12MHZ时定时50ms--//
TH0=0x3C;
TL0=0xB0;
//--打开中断-//
ET0=1;
ET1=1;
EA=1;
//--打开定时器*/
TR0=1;
TR1=1;
}
/*******************************************
*函数名 :Timer0
*功 能 :定时器0的中断函数
*输 入 :无
*输 出 :无
*******************************************/
void Timer0() interrupt 1
{
TimeCount++;
if(TimeCount==20)//计时到1S
{
TR0=0;
TR1=0;
TimeCount=0;
}
//--12MHZ设置定时50ms的初值--//
TH0=0x3C;
TL0=0xB0;
}
/*******************************************
*函数名 :Timer1
*功 能 :定时器1的中断函数
*输 入 :无
*输 出 :无
*******************************************/
void Timer1() interrupt 3
{
//--进入一次中断,表明计数到了65536--//
Freq=Freq+65536;
}
/*******************************************************************************
* 函 数 名 : DigDisplay
* 函数功能 : 使用数码管显示
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=0;i<8;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1; break;//显示第6位
case(7):
LSA=1;LSB=1;LSC=1; break;//显示第7位
}
GPIO_DIG=DisplayData[i];//发送段码
j=50; //扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
17.555脉冲发生器仿真实验.zip
共24个文件
uvproj:2个
uvopt:2个
workspace:2个
需积分: 5 0 下载量 11 浏览量
2024-05-15
14:46:51
上传
评论
收藏 139KB ZIP 举报
温馨提示
17.555脉冲发生器仿真实验
资源推荐
资源详情
资源评论
收起资源包目录
17.555脉冲发生器仿真实验.zip (24个子文件)
17.555脉冲发生器仿真实验
LCD显示脉冲频率
脉冲计数器.pdsprj 21KB
脉冲计数器.pdsprj.SVL5MBPHQOHMRTK.Administrator.workspace 2KB
Backup Of 脉冲计数器.pdsbak 22KB
LCD显示脉冲发生器
lcd显示脉冲发生器.hex 4KB
lcd显示脉冲发生器_uvproj.bak 0B
lcd显示脉冲发生器.uvproj 13KB
lcd显示脉冲发生器.M51 10KB
lcd显示脉冲发生器.lnp 66B
lcd显示脉冲发生器.LST 5KB
lcd显示脉冲发生器_uvopt.bak 54KB
lcd显示脉冲发生器 7KB
lcd显示脉冲发生器.OBJ 9KB
lcd显示脉冲发生器.uvopt 54KB
lcd显示脉冲发生器.plg 463B
lcd显示脉冲发生器.c 2KB
数码管显示脉冲频率
数码管显示脉冲频率计数.pdsprj 27KB
数码管显示脉冲频率
程序
数码管显示.uvproj 13KB
pro.hex 3KB
STARTUP.A51 6KB
main.c 4KB
pro.uvopt 71KB
pro.M51 8KB
Backup Of 数码管显示脉冲频率计数.pdsbak 27KB
数码管显示脉冲频率计数.pdsprj.SVL5MBPHQOHMRTK.Administrator.workspace 328B
共 24 条
- 1
资源评论
老王模拟IC
- 粉丝: 334
- 资源: 293
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功