单片机设计_自行车码表(AT89C51, LCD1602, DS1302,霍尔传感器)

想要更多项目私wo!!!

一、电路设计

系统采用51单片机+LCD1602液晶+DS1302时钟模块+霍尔传感器+电机+按键模块+蜂鸣器报警模块设计而成。

产品自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。

LCD1602可以显示当前的速度,里程,时间。

可以设置轮子直径。

具有超速报警功能,可以设置报警速度并具有保存功能,当实际的速度大于当前的速度时就会由蜂鸣器产生报警。

可以查看总路程。

可以按键修改当前的时间。

采用进口时钟芯片DS1302,走时非常精确。板载3V纽扣电池,断电重新上电无需重新设置时间。

二、运行结果

三、部分代码

cpp 复制代码
#include <reg52.h>                 //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255
#define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535
#include "eeprom52.h"

/******************主程序**********************/           
void main()
{
        beep = 0;
        delay_1ms(200) ;
        P0 = P1 = P2 = P3 = 0xff;  //IO口初始为电平
        init_ds1302_io();
        init_ds1302();
        init_1602();      //1602初始化
        init_int0();
        time_init();          //定时器0初始化程序
        init_eeprom();         //开机初始化保存的数据*
        while(1)
        {         //  shudu = 11;
                key();                         //按键程序
                if(key_can < 10)
                {
                        key_with();        

                }
                if(flag_200ms == 1)
                {
                        flag_200ms = 0;
                        read_time();                  //读时间
                        if(menu_1 == 0)
                                init_1602_ds1302();   //显示时钟
                        menu_dis();          //计算速度函数
                        clock_h_l();        //报警函数
                }
        }
}


/*********************外部中断0中断服务程序************************/
void int0() interrupt 0
{
        static uchar value;
        switch(value)
        {
                case 0:
                        t1_num = 0;                 //第一次就把变量清零
                        TH1 = 0;
                        TL1 = 0;
                        break;
                case 1:
                                t2_num = t1_num;  //保存
                                TH11 = TH1;
                                TL11 = TL1;
                                flag_en = 1;
                        break;
        }               
        value ++;
        if(value >= 2)
                value =0;
        /************
                2.1   16.6
                2          15.8
                1.9   15.0
        ************/
}
相关推荐
zlinear数据采集卡27 分钟前
数据采集卡从入门到精通(38):上位机开发实战——Python/QT/LabVIEW的技术选型与分层架构
python·单片机·嵌入式硬件·qt·fpga开发·开源·labview
嵌入式阿蔡39 分钟前
项目实战 02:智能家居环境网关——ESP32 做 BLE 中心 + 本地联动
网络·单片机·嵌入式硬件·esp32·智能家居·嵌入式实时数据库
自小吃多1 小时前
Capture软件原理图添加差分属性笔记
笔记·嵌入式硬件
简单电磁炮1 小时前
ADXL345调试
单片机·嵌入式硬件
LCG元1 小时前
STM32 软件模拟 I2C 驱动 AT24C02 EEPROM:从时序原理到实测读写全记录
stm32·单片机·嵌入式硬件
振南的单片机世界2 小时前
终端电阻硬核拆解:不接120Ω,RS485信号“撞墙反弹”乱码
arm开发·stm32·单片机·嵌入式硬件
恒锐丰科技韩生2 小时前
SS6625E|3.0‑20V 单通道 16A 峰值 H 桥直流电机驱动 SOP8 门锁玩具机器人专用
嵌入式硬件·硬件工程
国产HT1621B2 小时前
外挂 YL1621 SSOP48 芯片 vs MCU 内置 LCD 控制器深度对比
科技·单片机·嵌入式硬件·mcu·lcd驱动
zlinear数据采集卡2 小时前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
嵌入式阿蔡13 小时前
传感器_03:电机驱动——让 GPIO 当指挥官,别让 GPIO 当电源
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库