资源简介
使用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 自行车码表\程序\ob
文件 9796 2019-01-20 11:37 自行车码表\程序\ob
文件 116 2019-01-20 11:37 自行车码表\程序\ob
文件 819 2019-01-19 19:14 自行车码表\程序\ob
文件 10142 2019-01-20 11:37 自行车码表\程序\ob
文件 1012 2019-01-20 11:37 自行车码表\程序\ob
文件 4638 2019-01-20 11:37 自行车码表\程序\ob
文件 123 2019-01-20 11:37 自行车码表\程序\ob
文件 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个文件信息
- 上一篇:华中科技大学计算机学院C语言实验报告及源代码
- 下一篇:基于51单片机自动售货机
评论
共有 条评论