资源简介
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
相关资源
- 8051单片机altium元件库
- 数字三轴加速度计ADXL34551单片机例程
- 51单片机模拟IIC协议读写EEPROM(24C02)
- 简易c51单片机矩阵式键盘密码锁
- 二三四位数码管原理图和封装
- 51单片机方波发生器频率计lcd.zip
- 乐鑫esp8266 NONOS SDK 3.0编程使用 SPI 驱动
- 056 货车超重监测系统 51单片机 仿真
- 030 矩阵键盘 电子琴 仿真 51单片机
- 025 四路定时开关 51单片机仿真
- 014 电流表 仿真 51单片机 proteus仿真
- 基于51单片机的16X16点阵电子琴
- 光敏电阻测试数码管显示
- 基于labview的电子时钟显示拼出的数码
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
- 基于51单片机DHT11温湿度检测和串口通
- 基于51单片机的16*16点阵显示汉字
- 51单片机舵机角度控制程序
- 基于51单片机的测量放大电路,简单实
- 5V量程电压表汇编程序
- 51单片机步进电机正反转调速1602显示
- 51单片机做的温度计和AD采样,用的
- 基于51单片机的8路AD电压采集与测量
- 51单片机上的CRC8和CRC16的源码
- 基于P89C51单片机的多路数据采集系统
- 51单片机串口控制舵机
- 基于AT89S52单片机数码管显示数字钟含
- 基于51单片机的电器定时开关C程序
评论
共有 条评论