• 大小: 3.84MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-11
  • 语言: C/C++
  • 标签: STC89C52R  霍尔元件  

资源简介

使用STC89C52RC制作的自行车码表。采用LCD1602液晶屏显示速度和里程,引脚连接简单,合理布局后可以装在自行车上。资料中有C语言编写的程序和电路图。

资源截图

代码片段和文件信息

#include 
#define uint unsigned int
#define uchar unsigned char

uchar value=0;
uchar cout=0;
uchar flag_200ms;
uint speed;      //速度
float speed_kmspeed_m;
long juli;           //总路程
uchar zhouchang = 2;  //周长
uchar flag_1s = 1;    //1s

//sbit rs=P2^6;
//sbit rw=P2^5;
//sbit e =P2^7;
sbit rs=P2^7;
sbit rw=P2^6;
sbit e =P2^5;

void init()
{
EX0=1;   //允许外部中断0中断
EA=1;     //开总中断
IT0 = 1;    //外部中断0负跳变中断
}

void time_init()   //定时器0初始化程序 
{
EA   = 1;     //开总中断
TMOD = 0X11;   //定时器0、工作方式1
ET0  = 1;   //开定时器0中断 
TR0  = 1;   //允许定时器0定时
TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;
}

void delay(uint q)
{
while(q--);
}

void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay(3);
e=1;
delay(25);
e=0;
}

void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay(3);
e=1;
delay(25);
e=0;
}

void write_string(uchar hanguchar adduchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == ‘\0‘)  break;
write_data(*p);
p++;
}
}

void write1(uchar adduint date)
{
write_com(0x80+add);
write_data(0x30+date/10%10);
write_data(0x30+date%10);
}

void write2(uchar addlong date)
{
write_com(0x80+0x40+add);
write_data(0x30+date/10000%10);
write_data(0x30+date/1000%10);
write_data(‘.‘);
write_data(0x30+date/100%10);
write_data(0x30+date/10%10);
write_data(0x30+date%10);
}

void compute()
{
if(flag_1s == 1)   
{
flag_1s = 0; 
speed_m = cout*zhouchang;  //m/s
speed_km = speed_m * 3.6 ; //km/s
speed = (uint)speed_km;
cout=0;
}
}

void main()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_string(10“sp:00km/h       “);
write_string(20“ml:00.000km     “);

init();
time_init();

while(1)
{  
if(flag_200ms == 1)
{
flag_200ms = 0;
compute();           //计算速度函数
write1(3speed);
write2(3juli);
}
}
}

void int0() interrupt 0
{
cout++;
juli=juli+zhouchang;
}

void time0() interrupt 1
{
TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;     // 50ms
value++;
if(value % 4 == 0)
flag_200ms = 1;

if(value >= 20)  //1秒
{
value = 0;
flag_1s = 1;
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-24 13:57  自行车码表\
     目录           0  2019-01-24 13:56  自行车码表\原理图\
     文件      137216  2019-01-18 15:21  自行车码表\原理图\1602显示自行车码表.SchDoc
     目录           0  2019-01-20 10:18  自行车码表\原理图\__Previews\
     文件        4771  2019-01-24 13:54  自行车码表\原理图\__Previews\PCB1.PcbDocPreview
     文件       74295  2019-01-20 10:18  自行车码表\原理图\__Previews\Sch1.SchDocPreview
     目录           0  2019-01-20 11:43  自行车码表\程序\
     目录           0  2019-01-20 11:37  自行车码表\程序\Listings\
     文件        5986  2019-01-20 11:37  自行车码表\程序\Listings\main.lst
     文件       14158  2019-01-19 19:14  自行车码表\程序\Listings\STARTUP.lst
     文件       15079  2019-01-20 11:37  自行车码表\程序\Listings\测速测距.m51
     文件        2439  2019-01-24 13:50  自行车码表\程序\main.c
     目录           0  2019-01-20 11:37  自行车码表\程序\objects\
     文件        9796  2019-01-20 11:37  自行车码表\程序\objects\main.obj
     文件         116  2019-01-20 11:37  自行车码表\程序\objects\main.__i
     文件         819  2019-01-19 19:14  自行车码表\程序\objects\STARTUP.obj
     文件       10142  2019-01-20 11:37  自行车码表\程序\objects\测速测距
     文件        1012  2019-01-20 11:37  自行车码表\程序\objects\测速测距.build_log.htm
     文件        4638  2019-01-20 11:37  自行车码表\程序\objects\测速测距.hex
     文件         123  2019-01-20 11:37  自行车码表\程序\objects\测速测距.lnp
     文件        6376  2015-07-08 16:02  自行车码表\程序\STARTUP.A51
     文件       90007  2019-01-20 11:43  自行车码表\程序\测速测距.uvgui.Moby
     文件        5415  2019-01-18 11:04  自行车码表\程序\测速测距.uvopt
     文件       14483  2019-01-18 11:04  自行车码表\程序\测速测距.uvproj
     目录           0  2019-01-24 13:58  自行车码表\芯片数据手册\
     目录           0  2019-01-24 13:56  自行车码表\芯片数据手册\1602字符手册\
     文件      262017  2005-12-14 19:18  自行车码表\芯片数据手册\1602字符手册\1602液晶说明.pdf
     文件     1368590  2005-08-04 03:41  自行车码表\芯片数据手册\1602字符手册\字符手册.pdf
     文件      296448  2017-09-12 14:10  自行车码表\芯片数据手册\A3144-44E-3144E-霍尔传感器-霍尔元件.doc
     文件     2697759  2009-01-05 19:56  自行车码表\芯片数据手册\STC89C52RC.pdf
     文件      238547  2019-01-14 18:39  自行车码表\芯片数据手册\STC89C52RC单片机用户手册.pdf
............此处省略0个文件信息

评论

共有 条评论

相关资源