资源简介
51单片机霍尔测速 数码管显示,调试通过

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //段选锁存器控制端
sbit wela=P2^7; //位选锁存器控制端
uint temp=0;
uchar buf_min=1;
uchar table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};//共阴极数码管[0~9]
uchar disnum[4]={0};
void display();
void delay(uint x);
sbit P1_0=P1^0;
sbit P1_7=P1^7;
//定时器0中断函数
void timer0()interrupt 1 using 1//0定时器100ms定时中断
{
TH0=0x3c;TL0=0xb0;
buf_min=buf_min+1;
if(P1_0==1)
P1_0=0;
else P1_0=1;
}
void main()
{
P1_0=0;
P1_7=0;
TMOD=0x51; //T0为定时中断方式
TH1=0;TL1=0; //T1初始化
TH0=0x3c;TL0=0xb0;//T0初始化
EA=1;ET0=1;TR0=1;//开T0定时中断
TR1=1;//T1开始计数
while(1)
{
if(buf_min==10) //定时达到1s后,开始处理数据并显示
{
if(P1_7==1)
P1_7=0;
else P1_7=1;
TR1=0; //计数器1停止计数
temp=(TH1*256+TL1)*60;//单个磁钢,单位为r/min
TH1=0;TL1=0; //T1初始化
TR1=1;//计数器1开始计数
// temp=buf_min;
buf_min=0;
disnum[3]=temp/1000;
disnum[2]=(temp%1000)/100;
disnum[1]=(temp%100)/10;
disnum[0]=(temp%100)%10;
}
display();
}
}
//四位显示函数
void display()
{
dula=0;
P0=table[disnum[3]];
dula=1;
dula=0; //送高位段值(led1)
wela=0;
P0=0xfe;
wela=1;
wela=0; //选通高位数码管(wei1)
delay(1200);
P0=table[disnum[2]];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(1200);
P0=table[disnum[1]];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delay(1200);
P0=table[disnum[0]];
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(1200);
}
//延时子程序
void delay(uint x)//x=1000时为1ms延时
{
while(--x);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5420 2012-08-10 16:39 定时器计数器显示\fff
文件 1682 2012-08-10 16:39 定时器计数器显示\fff.hex
文件 64 2012-08-10 16:39 定时器计数器显示\fff.lnp
文件 8182 2012-08-10 16:39 定时器计数器显示\fff.M51
文件 1072 2012-08-11 08:42 定时器计数器显示\fff.Opt
文件 220 2012-08-11 08:42 定时器计数器显示\fff.plg
文件 2020 2012-08-10 16:49 定时器计数器显示\fff.Uv2
文件 1074 2012-08-10 16:49 定时器计数器显示\fff_Opt.Bak
文件 0 2012-08-10 16:01 定时器计数器显示\fff_Uv2.Bak
文件 5115 2002-04-16 14:32 定时器计数器显示\STARTUP.A51
文件 11665 2012-08-10 16:39 定时器计数器显示\STARTUP.LST
文件 749 2012-08-10 16:39 定时器计数器显示\STARTUP.OBJ
文件 1730 2012-08-10 16:39 定时器计数器显示\Text3.c
文件 4314 2012-08-10 16:39 定时器计数器显示\Text3.LST
文件 5211 2012-08-10 16:39 定时器计数器显示\Text3.OBJ
目录 0 2012-08-13 11:18 定时器计数器显示
----------- --------- ---------- ----- ----
48518 16
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 25.数码管显示0-99
- STC12C5A60S2 CH4521 驱动数码管 显示
- C51单片机汇编指令查询、学习工具集
- CH454键盘与数码管显示程序
- 基于8051单片机的红外接收程序
- 基于EWB软件的数码管显示控制器
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
评论
共有 条评论