1.å¦ä½ç¨vbå个å车åºç®¡çç³»ç»
2.Cè¯è¨å车åºç®¡çç³»ç»
3.20个python3大项目开发源代码(含可执行程序及源码)
4.åºç§è½¦è®¡ä»·å¨
5.智慧停车方案+源码
6.EDA课ç¨è®¾è®¡ï¼ç¨VHDLç¼ç¨ååºç§è½¦è®¡è´¹å¨
å¦ä½ç¨vbå个å车åºç®¡çç³»ç»
åºäºä½ çæè¿°å车åºç®¡çç³»ç»ï¼æ们å¯ä»¥ä¸ºä½ æä¾ä¸ä»½éç¨äºåå¦è ç代ç ,
å¦æå ·ä½éæ±ï¼å¯ä»¥æ们èç³»,,èç³»æ们éè¦æä¾ä½ çé®é¢åçµåé®ä»¶,æå¯è½å¸®ä½ ï¼ä½æ¯ç»å¯¹ææ¥,请ç¨BaiduHi为æçè¨,
æ¤åå¤é对æææ¥è®¿è åéæ±è ææ,
ES:\\7FB6FBECC7BBC8
Cè¯è¨å车åºç®¡çç³»ç»
/*----------------------------------------------------------------
// Copyright (C) æ²é³å·¥ç¨å¦é¢ä¿¡æ¯å®å ¨å·¥ä½å®¤
// çæææã
//
// æ件åï¼æ¨¡æå车åºé®é¢.cpp
// æ件åè½æè¿°ï¼æ¨¡æå车åºé®é¢
//
//
// å建æ è¯ï¼
//
// ä¿®æ¹æ è¯ï¼
// ä¿®æ¹æè¿°ï¼å®æç¼ç
//----------------------------------------------------------------*/
//头æ件
#include <iostream>
#include <malloc.h>
#include <string>
#include <windows.h>
//常éå®ä¹
#define MAX_STOP 4 //å®ä¹å车åºæ大å车æ°
#define MAX_PLATE //å®ä¹è½¦çå·æ大é¿åº¦
#define TIME_COUNT "ç§" //å®ä¹æ¶é´åä½
#define TIME_MS_TO_CONUT //å®ä¹æ¶é´è¿å¶ï¼æ为ç±TIME_COUNTå°æ¯«ç§çè¿å¶
#define UNIT_PRICE //å®ä¹åä½æ¶é´æ¶è´¹æ å
using namespace std; //使ç¨stdå½å空é´
//æ°æ®ç»æå®ä¹
//å®ä¹åå¨æ±½è½¦ä¿¡æ¯çç»æä½
typedef struct
{
char license_plate[MAX_PLATE]; //汽车çç §å·ç ï¼å®ä¹ä¸ºä¸ä¸ªå符æéç±»å
char state; //汽车å½åç¶æï¼å符p表示åæ¾å¨å车ä½ä¸ï¼å符s表示åæ¾å¨ä¾¿éä¸ï¼æ¯è¾è½¦çåå§ç¶æç¨å符iæ¥è¿è¡è¡¨ç¤º
int time; //汽车åå ¥å车åºæ¶çæ¶é´ï¼ç¨æ¥è®¡æ¶æ¶è´¹
}CAR;
//å®ä¹æ¨¡æå车åºçæ ç»æ
typedef struct
{
CAR STOP[MAX_STOP]; //汽车信æ¯çåå¨ç©ºé´
int top; //ç¨æ¥æ示æ 顶ä½ç½®çéææé
}SeqStack;
//å®ä¹æ¨¡æ便éçéåç»æ
typedef struct node
{
CAR WAIT; //汽车信æ¯çåå¨ç©ºé´
struct node *next; //ç¨æ¥æ示éåä½ç½®çå¨ææé
}QNode; //é¾éåèç¹çç±»å
//å®ä¹é¾éåçæ¶å°¾æé
typedef struct
{
QNode *front,*rear;
}LQueue; //å°å¤´å°¾æéå°è£ å¨ä¸èµ·çé¾é
//å½æ°å£°æ
int Empty_LQueue(LQueue *q); //å¤é空
int LeaveCheck(SeqStack parking , char *license_plate); //æ£æ¥ç¦»å¼ç车æ¯å¦å¨å车åºä¸
int QueueLength(LQueue *q); //å¤éé¿åº¦
int Out_LQueue(LQueue *&sidewalk , char *license_plate); //åºéæä½
int StackEmpty(SeqStack parking); //å¤ææ æ¯å¦ä¸ºç©º
int StackFull(SeqStack parking); //å¤ææ æ¯å¦ä¸ºæ»¡
int StackPop(SeqStack &parking); //åºæ æä½
int StackTop(SeqStack parking , char *license_plate , int &time);//åæ 顶å ç´
void Car_come(SeqStack &parking , LQueue *&sidewalk); //æ车å°æ¥æ¶çæä½
void Car_leave(SeqStack &parking , LQueue *&sidewalk); //æ车离å¼çæä½
void Display(SeqStack parking); //æ¾ç¤ºå车åºå çææä¿¡æ¯ è°è¯æ¶ç¨
void InitStack(SeqStack &parking); //åå§åæ
void InitList(LQueue *&sidewalk); //åå§åéå
void In_LQueue(LQueue *&sidewalk , char *license_plate); //è¿éæä½
void Input_Check(char *license_plate); ////æ£éªè¾å ¥ç车çæ¯å¦åæ³
void StackPush(SeqStack &parking , char *license_plate , int stop_time);//è¿æ æä½
void main()
{
//å®ä¹åé
SeqStack parking;
LQueue *sidewalk = NULL;
char *choice = new char;
int flag = 1; //å®ä¹ä¸ä¸ªåé å¤ææ¯å¦éåº
//åå§åä¸ä¸ªä¸ºç©ºçå车åº
InitStack(parking);
//åå§åä¸ä¸ªä¸ºç©ºç便é
InitList(sidewalk);
//è¿è¡çé¢ååè½éæ©
while(flag)
{
cout<<"\n\t å车åºæ¨¡æ管çç³»ç» \n\n";
cout<<"\t|--------------------------------------------------|\n\n";
cout<<"\t|æ¬ç¨åºä¸ºå车åºç模æ管çç³»ç»ï¼æ车å°æ¥æ¶è¯·æCé®ã|\n\n";
cout<<"\t|ç¶åæ ¹æ®å±å¹æ示è¿è¡ç¸å ³æä½ï¼æ车è¦èµ°æ¶è¯·ælé®ã|\n\n";
cout<<"\t|ç¶åæ ¹æ®å±å¹æ示è¿è¡ç¸å ³æä½ï¼æ¥çå车åºè¯·æDé®ã|\n\n";
cout<<"\t|ç¶åæ ¹æ®å±å¹æ示è¿è¡ç¸å ³æä½ï¼è¦éåºç³»ç»è¯·æQé®ã|\n\n";
cout<<"\t|--------------------------------------------------|\n\n";
cout<<"请éæ©æä½ï¼";
gets(choice);
if(1 != strlen(choice))
{
cout<<"请æ£ç¡®è¾å ¥é项!";
continue;
}
else
{
switch(*choice)
{
case 'c':
case 'C':
{
Car_come(parking,sidewalk);break;
}
case 'l':
case 'L':
{
Car_leave(parking,sidewalk);break;
}
case 'q':
case 'Q':
{
flag=0;break;
}
case 'd':
case 'D':
{
Display(parking);break;
}
default:
cout<<"éæ©ä¸æ£ç¡®ï¼è¯·éæ°éæ©ï¼\n";
}
}
}
}
//æ车å°æ¥æ¶çæä½
void Car_come(SeqStack &parking , LQueue *&sidewalk)
{
//å®ä¹åé
char license_plate[MAX_PLATE];
cout<<"请è¾å ¥è½¦è¾ç车çå·ç ï¼";
Input_Check(license_plate);
//å¤æå车åºæ¯å¦å·²æ»¡ï¼æ»¡åè¿å ¥ä¾¿éï¼ä¸æ»¡è¿å ¥å车åº
if(StackFull(parking))
{
In_LQueue(sidewalk , license_plate); //è¿å ¥ä¾¿é
cout<<"å车åºå·²æ»¡è¯·å¨ä¾¿éçå,æ¨çä½ç½®ä¸º"<<QueueLength(sidewalk)
<<endl;
}
else
{
StackPush(parking , license_plate , GetTickCount()); //è¿å ¥å车åº
cout<<"请è¿å ¥å车åºä¸ç"<<parking.top+1<<"å·å车ä½\n";
}
// Display(parking);
}
//æ车离å¼æ¶çæä½
void Car_leave(SeqStack &parking , LQueue *&sidewalk)
{
//å®ä¹åé
SeqStack tmpparking; //å®ä¹ä¸´æ¶å车åº
char leave_license_plate[MAX_PLATE]; //è¦ç¦»å¼ç车çå·
char license_plate[MAX_PLATE]; //åæ¾ä»å车åºä¸è¯»åºæ¥ç车çä¿¡æ¯
int time;
InitStack(tmpparking); //åå§å临æ¶å车åº
//å¤æå车åºä¸æ¯å¦æ车
if(StackEmpty(parking))
{
cout<<"å½åå车åºä¸æ²¡æ车\n";
return; //éåºåå½æ°
}
cout<<"请è¾å ¥è¦ç¦»å¼ç车çç §ï¼";
Input_Check(leave_license_plate);
cout<<"å½åå车åºä¸æ"<<parking.top+1<<"è¾è½¦\n";
if(LeaveCheck(parking , leave_license_plate)) //å¤æ车æ¯å¦å¨å车åºä¸
{
//车å¨å车åºä¸
cout<<"æ¨ç车å¨"<<LeaveCheck(parking , leave_license_plate)<<"å·è½¦ä½ä¸\n";
while(StackTop(parking , license_plate , time)
&& (strcmp(parking.STOP[parking.top].license_plate , leave_license_plate) != 0))
{
strcpy(parking.STOP[parking.top].license_plate , license_plate);
cout<<"çç §ä¸º"<<license_plate<<"ç车ææ¶éåºå车åº"<<parking.top+1<<"å·ä½\n";
StackPush(tmpparking , license_plate , time); //å车åºä¸ç车ææ¶éåº è¿å ¥ä¸´æ¶å车åº
StackPop(parking); //åºæ
}
cout<<"çç §ä¸º"<<license_plate<<"ç车离å¼å车åº"<<parking.top+1<<"å·ä½\n";
cout<<"æ¨å¨å车åºä¸åäº"<<(GetTickCount()-time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl; //è¾åºæåæ¶é´ä¿¡æ¯
cout<<"åºç¼´è´¹ç¨ä¸º"<<(GetTickCount()-time)/TIME_MS_TO_CONUT*UNIT_PRICE<<"å \n";; //è¾åºè´¹ç¨ä¿¡æ¯
StackPop(parking); //åºæ
//å°ä¸´æ¶å车åºä¸ç车ååå车åº
while(StackEmpty(tmpparking) != 1)
{
StackTop(tmpparking , license_plate , time);
StackPush(parking , license_plate , time);
cout<<"çç §ä¸º"<<license_plate<<"ç车è¿å ¥å车åº"<<parking.top+1<<"å·ä½\n";
license_plate[0] = '\0';
StackPop(tmpparking);
}
if(parking.top+1 == MAX_STOP-1) //å¤æ车离å¼åå车åºæ¯å¦å满
if(QueueLength(sidewalk)) //å¦æå满åå¤æ便éä¸æ¯å¦æ车
{
//便éä¸æ车 åä»ä¾¿éä¸åå ¥å车åº
Out_LQueue(sidewalk , license_plate); //åºé
StackPush(parking , license_plate , GetTickCount()); //å ¥æ
cout<<"å¨ä¾¿éä¸çç §ä¸º"<<license_plate<<"ç车è¿å ¥å车åº"<<parking.top+1<<"å·ä½\n";
}
}
else
//车ä¸å¨å车åºä¸
cout<<"æ¨ç车ä¸å¨å车åºä¸ï¼\n";
}
//åå§å顺åºæ
void InitStack(SeqStack &parking)
{
parking.top = -1;
}
//å¤æ 空
int StackEmpty(SeqStack parking)
{
if(parking.top == -1)
return 1;
else
return 0;
}
//å¤æ 满
int StackFull(SeqStack parking)
{
if(parking.top == MAX_STOP-1)
return 1;
else
return 0;
}
//å ¥æ
void StackPush(SeqStack &parking , char *license_plate , int stop_time)
{
parking.top++;
strcpy(parking.STOP[parking.top].license_plate , license_plate);
parking.STOP[parking.top].state = 'p';
parking.STOP[parking.top].time = stop_time;
}
//åºæ è¿åæ 顶æé
int StackPop(SeqStack &parking)
{
if(StackEmpty(parking))
return 0;
else
return parking.top--;
}
//åæ 顶å ç´
int StackTop(SeqStack parking , char *license_plate , int &time)
{
if(StackEmpty(parking))
return 0;
else
{
strcpy(license_plate , parking.STOP[parking.top].license_plate);
time = parking.STOP[parking.top].time;
return 1;
}
}
//æ¾ç¤ºææ
void Display(SeqStack parking)
{
if(parking.top == -1)
printf("å车åºä¸ºç©º\n");
else
{
while(parking.top != -1)
{
cout<<"车çå·ä¸ºï¼"<<parking.STOP[parking.top].license_plate;
cout<<"ï¼åå¨"<<parking.top + 1 <<"å·è½¦ä½ä¸";
cout<<"ï¼å·²å"<<(GetTickCount()-parking.STOP[parking.top].time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl;
parking.top--;
}
}
}
//åå§åéå
void InitList(LQueue *&sidewalk)
{
sidewalk = (LQueue *)malloc(sizeof(LQueue));
sidewalk->front=sidewalk->rear = NULL;
}
//å ¥é
void In_LQueue(LQueue *&sidewalk,char *license_plate)
{
QNode *car_on_sidewalk;
car_on_sidewalk = (QNode *)malloc(sizeof(QNode)); //为æ°èç¹å¼è¾æ°ç©ºé´
strcpy(car_on_sidewalk->WAIT.license_plate , license_plate); //å°æ°æ®åå ¥èç¹
car_on_sidewalk->WAIT.state = 's'; //åå ¥å车信æ¯
car_on_sidewalk->WAIT.time = GetTickCount(); //åå ¥å车æ¶é´
car_on_sidewalk->next = NULL;
if(Empty_LQueue(sidewalk)) //é空åå建第ä¸ä¸ªèç¹
sidewalk->front = sidewalk->rear = car_on_sidewalk;
else
{
//éé空æå ¥éå°¾
sidewalk->rear->next = car_on_sidewalk;
sidewalk->rear = car_on_sidewalk;
}
}
//å¤é空
int Empty_LQueue(LQueue *q)
{
if(q->front == NULL)
return 1;
else
return 0;
}
//å¤éé¿åº¦ è¿åéé¿
int QueueLength(LQueue *q)
{
QNode *p=q->front;
int i=0;
while(p != NULL)
{
i++;
p=p->next;
}
return i;
}
//åºé æåè¿å1 é空è¿å0
int Out_LQueue(LQueue *&sidewalk,char *license_plate)
{
QNode *car_on_sidewalk;
if(Empty_LQueue(sidewalk)) //å¦æé空è¿å0
return 0;
car_on_sidewalk = sidewalk->front;
strcpy(license_plate , car_on_sidewalk->WAIT.license_plate);//ååºé头å ç´
if(sidewalk->front == sidewalk->rear) //éä¸åªæä¸ä¸ªå ç´
sidewalk->front = sidewalk->rear=NULL; //å é¤å ç´
else
sidewalk->front = sidewalk->front->next; //é头æéå移
free(car_on_sidewalk); //éæ¾æé
return 1;
}
//æ£æ¥ç¦»å¼ç车æ¯å¦å¨å车åºä¸ è¿å车å¨å车åºä¸ä½ç½® ä¸å¨åè¿å0
int LeaveCheck(SeqStack parking,char *license_plate)
{
int flag = parking.top+1; //å®ä¹åéè®°å½å½å车å¨å车åºä¸ä½ç½®
if(StackEmpty(parking))
return 0;
else
{
//æ¥æ¾ç¦»å¼è½¦æå¨ä½ç½®
while(parking.top != -1 && strcmp(parking.STOP[parking.top].license_plate , license_plate) != 0)
{
flag--;
parking.top--;
}
return flag;
}
}
//æ£éªè¾å ¥ç车çæ¯å¦åæ³
void Input_Check(char *license_plate)
{
int flag = 1;
int i;
string tmpstr;
while(flag)
{
cin>>tmpstr;
getchar();
if(tmpstr.length()<MAX_PLATE)
{
for(i=0;i<;i++)
license_plate[i] = tmpstr.c_str()[i];
flag = 0;
}
else
cout<<"è¾å ¥æ误ï¼è¯·éæ°è¾å ¥ï¼";
}
}
以åç课设 ä½ ççå§ çº¯æå·¥ç~~
个python3大项目开发源代码(含可执行程序及源码)
高效学习源代码的关键在于实践操作,通过运行代码、计费计费调试、源码源码绘制类图流程图、停车停车记录问题、计费计费广告公司网站源码模板整理笔记和持续练习,源码源码android充值源码可以深入理解代码逻辑与运行机制。停车停车步骤如下:
1. 运行程序,计费计费观察其表现,源码源码初步感受代码功能与效果。停车停车
2. 调试源码,计费计费使用断点,源码源码跟踪执行流程,停车停车推理游戏源码注意函数调用栈。计费计费
3. 绘制类图和流程图,源码源码梳理重要类及其关系。
4. 记录不理解的财神精品源码内容或问题,逐个解决。
5. 写文章或笔记,系统性地梳理学习成果。
6. 重复上述步骤,涂鸦跳跳源码持续深入学习。
本文提供了个Python3项目开发的源代码资源,含可执行程序和源码,适合不同层次学习者。包括:
1. AI智能联系人管理系统
2. Excel数据分析师
3. Word助手
4. 火车票分析助手
5. 甜橙音乐网服务端代码
6. 微信机器人功能
7. 智能停车场车牌识别计费系统
8. 毕业生信息审核系统
9. 工资计算系统
. 轨道交通客流预测系统
. 驾驶员疲劳检测系统
. 进销存管理系统
. 股票系统
. AI对话系统
. 脉象识别系统
. 商品销售数据分析系统
. 天然气产气量预测系统
. 高频基金交易系统
. 资产管理系统
. 动物机器人桌面控制系统
这些资源适合用于项目实践、毕业设计或项目答辩,可提升编程能力与项目经验。请下载并实践这些代码,探索并改进它们,以满足特定需求或扩展功能。
åºç§è½¦è®¡ä»·å¨
ä¸ãé¢ç®ï¼Aé¢ è®¾è®¡å¹¶å¶ä½ä¸ä¸ªç¨äºåºç§è½¦ç计费系ç»ã
äºã设计è¦æ±
1ãåºæ¬è¦æ±ï¼
ï¼1ï¼å¶ä½ä¸ä¸ªæ¨¡æ车轮ç¨ç´æµçµå¨æºï¼ææ¥è¿çµæºï¼é©±å¨ï¼ç°åºæ¨¡æ以ä¸è¿è¡æ åµçæ¶è´¹æ åµï¼
u å设车轮çå¨é¿ä¸ºä¸ç±³ã
u èµ·æ¥ä»·ä¸ºä¸å ¬éäºå ï¼ç½å¤©æ¯å ¬éä¸å ï¼æä¸æ¯å ¬éåå ã
u è¿è¡äºå ¬éä¹åï¼åä¸åéï¼åè¿è¡äºå ¬éä¹åä¹å®¢ä¸è½¦ï¼ç±äºæ¼ç¤ºçæ¶é´çéè¦ï¼éä¸åè½¦è¶ è¿ä¸åéå¼å§æ¶è´¹ï¼è¶ è¿çæ¶é´æ¯åéä¸å ã
ï¼2ï¼è½å¤æå¨ä¿®æ¹åä»·ã
ï¼3ï¼å ·ææ°æ®çå¤ä½åè½ã
ï¼5ï¼æ°æ®è¾åº
u åä»·è¾åº è³å°2ä½
u è·¯ç¨è¾åº è³å°2ä½
u æ»éé¢è¾åº è³å°3ä½
2ãåæ¥é¨åï¼
ï¼1ï¼è½å¤å¨æçµçæ åµä¸åå¨åä»·çæ°æ®ã
ï¼2ï¼è½å¤æ¾ç¤ºãè°èå½åçç³»ç»æ¶é´ï¼å¹¶æ ¹æ®å½åçç³»ç»æ¶é´è¿è¡è®¡è´¹ï¼6æ¶è³æ¶ä¸ºç½å¤©ï¼æ¶è³ç¬¬äºå¤©6æ¶ä¸ºæä¸ï¼ã
ï¼3ï¼æè¯é³æ¥ä»·åè½ã
1.2 æ¹æ¡æ¯è¾ä¸è®ºè¯
1.2.1æ§å¶å¨æ¨¡å
æ¹æ¡ä¸ï¼éç¨å¯ç¼ç¨é»è¾å¨ä»¶CPLD ä½ä¸ºæ§å¶å¨ãCPLDå¯ä»¥å®ç°åç§å¤æçé»è¾åè½ãè§æ¨¡å¤§ãå¯åº¦é«ãä½ç§¯å°ã稳å®æ§é«ãIOèµæºä¸°å¯ãæäºè¿è¡åè½æ©å±ãéç¨å¹¶è¡çè¾å ¥è¾åºæ¹å¼ï¼æé«äºç³»ç»çå¤çé度ï¼éåä½ä¸ºå¤§è§æ¨¡æ§å¶ç³»ç»çæ§å¶æ ¸å¿ãä½æ¬ç³»ç»ä¸éè¦å¤æçé»è¾åè½ï¼å¯¹æ°æ®çå¤çé度çè¦æ±ä¹ä¸æ¯é常é«ãä¸ä»ä½¿ç¨åç»æµçè§åº¦èèæ们æ¾å¼äºæ¤æ¹æ¡ã
æ¹æ¡äºï¼éç¨åé³å ¬å¸çä½åçæºï¼å®æ¯ä½æ§å¶å¨ï¼å ·æä½ç§¯å°ã驱å¨è½åé«ãéæ度é«ãææ©å±ãå¯é æ§é«ãåèä½ãç»æç®åãä¸æå¤çè½å强çç¹ç¹ãå¤çé度é«ï¼å°¤å ¶éç¨äºè¯é³å¤çåè¯å«çé¢åï¼éç¨æ¤åçæºè½å¤å¾æ¹ä¾¿çå®ç°åæ¥é¨åçè¯é³æ¥ä»·åè½ï¼ä½æ¤åçæºè¾é¾ä¹°å°ï¼èä¸ä»·æ ¼ç¨è´µï¼æ æ¾å¼äºæ¤æ¹æ¡ã
æ¹æ¡ä¸ï¼éç¨Atmelå ¬å¸çATSåçæºä½ä¸ºä¸»æ§å¶å¨ï¼æ¤åçæºæ¯å æ ¸çCMOS 8ä½åçæºï¼çå å«8k空é´çå¯åå¤æ¦äºæ¬¡çFlash读ååå¨å¨ï¼å ·æ bytesçéæºååæ°æ®åå¨å¨ï¼RAMï¼ï¼ä¸ªIOå£ï¼ä½ ç¥éåæ¿è£ ä¿®ååæ ·æ¿ã2个ä½å¯ç¼ç¨å®æ¶è®¡æ°å¨ãå ¶ä»·æ ¼ä½å»ï¼é常éåç¨äºå°ç³»ç»çå¼åï¼å¼éç¨ISPå¨çº¿ç¼ç¨ï¼ç¨åºçä¸è½½åä¿®æ¹ä¹å¾æ¹ä¾¿ãé¢ç®æè¦æ±çç³»ç»å¯¹æ§å¶å¨çè¦æ±ä¸é«ï¼æ们综åå¤æ¹é¢èèéç¨äºæ¤æ¹æ¡ã
1.2.2车轮转éæ¢æµæ¨¡å
æ¹æ¡ä¸ï¼ç¨å æçµé»ç»æå ææ¢æµå¨ãå æçµé»çé»å¼å¯ä»¥è·éå¨å´ç¯å¢å 线çååèååãå½å çº¿ç §å°å°è½¦è½®ç ççç½è²é¨åæ¶ï¼å 线åå°å¼ºçï¼å çº¿ç §å°å°è½¦è½®ç ççé»è²é¨åæ¶ï¼å 线åå°è¾å¼±ãå æ¤å æçµé»å¨ç½è²é¨ååé»è²é¨åä¸æ¹æ¶ï¼é»å¼ä¼åçææ¾çååãå°é»å¼çååå¼ç»è¿æ¯è¾å¨å°±å¯ä»¥è¾åºé«ä½çµå¹³ãæ¤æ¹æ¡æåå¤çå 线çå¹²æ°ã
æ¹æ¡äºï¼éç¨éå°ä¼ æå¨æ为æ¢æµå¨ä»¶ï¼éå°ä¼ æå¨ç两é¨ååå«å®è£ å¨è½¦è½®ååºå®çµè·¯æ¿ä¸ï¼æ ¹æ®è½¦è½®è½¬å¨æ¶å°ååçç£åºå¼ºåº¦è½¬æ¢ä¸ºèå²çµä¿¡å·ï¼æ¤æ¹æ¡è½å¤ä½¿å¯¹è½¦è½®è®¡æ°ç²¾ç¡®ï¼å·¥ä½ç¨³å®ï¼ä½ææ¬è¾é«ã
æ¹æ¡ä¸ï¼éç¨çº¢å¤å¯¹ç®¡ï¼å½çº¢å¤åå°ç®¡åå°åºç红å¤çº¿ç §å°ç ççç½è²é¨ååé»è²é¨åæ¶ï¼å ¶åå°ç红å¤çº¿å¼ºåº¦ä¸åï¼éè¿çº¢å¤æ¥æ¶ç®¡æ¥æ¶åç»çµåæ¯è¾å¨LMæ¯è¾åå³å¯è¾åºé«ä½çµå¹³ãæ¤æ¹æ¡ææ¬ä½ï¼å®¹æå®ç°ï¼ä¸çµæ度è¾é«ã
æ ¹æ®æ¬ç³»ç»ç设计è¦æ±ï¼å¯¹è½¦è½®è½¬éçæ¢æµåå¤ççå¹²æ°è¾å°ï¼èéç¨éç¨çº¢å¤å¯¹ç®¡å·¥ä½çµè·¯ç®åï¼è°è¯æ¹ä¾¿ï¼æ以æ们éæ©æ¤æ¹æ¡ã
1.2.3æ¶éæ§å¶æ¨¡å
æ¹æ¡ä¸ï¼éç¨.MHzçæ¶æ¯äº§çéè¡åç»å¤ä¸ªLSè¿è¡æ¬¡2åé¢ï¼äº§ç精确çç§ä¿¡å·ï¼èªè¡æ建æ¶é´çµè·¯ãæ¤æ¹æ¡å ·æè¾å¥½çååæ§ï¼ä½çµè·¯æ建起æ¥è¾ä¸ºå¤æï¼å·¥ä½ä¸å¤ç¨³å®ï¼ä¹ä¸æ¹ä¾¿è°èã
æ¹æ¡äºï¼ç´æ¥éç¨åçæºå é¨çæ¶éä¿¡å·ãè¿æ ·è½å¤å¤§å¤§ç®å硬件ç设计ï¼ä½æçµåä¸è½å·¥ä½ï¼èä¸å¤§éå ç¨åçæºæéçå åèµæºã
æ¹æ¡ä¸ï¼éç¨DSä¸ç¨æ¶éè¯çãDSæ¯åè½å¼ºå¤§çå®æ¶æ¶éè¯çï¼å ç½®éçµæ± ï¼å ç½®æ¶æ¯ãæä¾äºè¿å¶æ°åBCDç 两ç§æ°æ®è¡¨ç¤ºæ¹å¼ãå¯åæ¢å°æ¶å¶åå°æ¶å¶æ¶é´è¡¨ç¤ºãå ·æé¹éåè½ãå¯ç¼ç¨æ¹æ³¢è¾åºãæä¾åèéæ失åå¨ç©ºé´ï¼ç¨äºæçµä¿åæ°æ®ã
ç±äºæ¬ç³»ç»çå¾å¤åè½é½æ¯åºäºæ¶é´çåºç¡ä¸å®ç°çï¼å æ¤å¯¹æ¶éçè¦æ±è¾é«ï¼æ æ们éæ©æ¹æ¡ä¸ã
1.2.4æ¾ç¤ºæ¨¡å
æ¹æ¡ä¸ï¼ç¨æ°ç 管è¿è¡æ¾ç¤ºãæ°ç 管ç±äºæ¾ç¤ºé度快ï¼ä½¿ç¨ç®åï¼æ¾ç¤ºææç®æ´æäºèå¾å°äºå¹¿æ³åºç¨ï¼ä½æ¾ç¤ºçå å®¹ä» ä» å±éäºæ°åï¼äººæºçé¢ä¸å¤å好å æ¤æ们æ¾å¼äºæ¤æ¹æ¡ã
æ¹æ¡äºï¼ç¨LCD液æ¶è¿è¡æ¾ç¤ºãLCDç±äºå ¶æ¾ç¤ºæ¸ æ°ï¼æ¾ç¤ºå 容丰å¯ãæ¸ æ°ï¼æ¾ç¤ºä¿¡æ¯é大ï¼ä½¿ç¨æ¹ä¾¿ï¼æ¾ç¤ºå¿«éèå¾å°äºå¹¿æ³çåºç¨ãç±äºæ¬æ¤ç³»ç»éè¦æ¾ç¤ºçå 容è¾å¤ï¼ä¸ºè¾¾å°è¾å¥½ç人æºäº¤äºçé¢ï¼æ们éæ©äºæ¤æ¹æ¡ã
1.3æç»éæ©æ¹æ¡
u éç¨ATSåçæºä½ä¸ºä¸»æ§å¶å¨ã
u éç¨çº¢å¤å¯¹ç®¡+LMä½ä¸ºè½¦è½®è½¬éæ¢æµæ¨¡åã
u éç¨DSä½ä¸ºå®æ¶æ¶éæ§å¶è¯çã
u éç¨LCD液æ¶ä½ä¸ºæ¾ç¤ºæ¨¡åã
u éç¨æ®éçç´æµçµæºåèªå¶ç车轮åç çä½ä¸ºæ¨¡æ车轮ã
1.4ç³»ç»ç»æå¾
æé®ï¼
红å¤æåºæ¨¡å
MCU
ATS
DSç³»ç»æ¶é´ï¼æçµä¿åæ°æ®
LCD液æ¶æ¾ç¤º
模æ车轮
å¾1 ç³»ç»ç»ææ¡æ¶
第äºç« :åé¨åçµè·¯åçä¸è®¾è®¡
2.1åçæºä¸»æ§æ¨¡åç设计
Atmelå ¬å¸çATSæ¯å æ ¸çåçæºãä¸ç¨ç§åå¨èåªç¨ä¸²å£æè 并å£å°±å¯ä»¥å¾åçæºä¸ä¸è½½ç¨åºã
æ们æ设计çåçæºæå°ç³»ç»æ¿éç¨çåé¾å ¬å¸ç并å£ä¸è½½æ åï¼ä¸å¨æ¿ä¸çæä¸è½½çº¿æ座ï¼è¿æ ·å¯ä»¥é常æ¹ä¾¿çå®ç°éè¿PCæºç并å£å¾åçæºä¸ä¸è½½ç¨åºãåæ¶å°ç¨³åçµæºé¨åä¹éå¨å ¶ä¸ï¼ç»è¿ç¨³ååç+5Vçµæºä¸ºé¤çµæºå¤çå ¶ä»ç³»ç»æ¨¡åæä¾å·¥ä½çµæºã
åçæºæ§å¶æ¨¡åç示æå¾å¦å¾9æ示ï¼
å¾2 åçæºä¸»æ§æ¨¡å
åçæºçI/Oå£åé å¦ä¸ï¼
P0,P2.5~P2.7 LCD模å
P1,P2.0~P2.3,P3.3 å®æ¶æ¶é模å
P3.0~P3.1,P3.5~P3.7 æé®å¼å ³
P3.2 红å¤æ¢æµæ¨¡å
2.2红å¤æ¢æµæ¨¡åç设计
æ们éè¿å°çº¢å¤æ¥æ¶äºæ管çä¸ååéä¸åºåçµåéå ¥çµåæ¯è¾å¨LMè¿è¡æ¯è¾ï¼è¾åºå¯¹åºçé«ä½çµå¹³ä¿¡å·ï¼éå°åçæºè¿è¡å¤çãå ¶çµè·¯åçå¾å¦ä¸ï¼
å¾3 红å¤æ¢æµæ¨¡å
å¨å¾3ä¸ï¼å¯è°çµé»RWå¯ä»¥è°èæ¯è¾å¨çé¨éçµåï¼ç»ç¤ºæ³¢å¨è§å¯ï¼è¾åºæ³¢å½¢ç¸å½è§åï¼å¯ä»¥ç´æ¥å¤åçæºæ¥è¯¢ä½¿ç¨ã
ç±äºæ们çç çéç¨äºåæ³è¿è¡è®¾è®¡ï¼é»ç½ä¸¤ç§é¢è²åå åå¨çä¸åï¼å æ¤åçæºæ¯æ¥æ¶å°ä¸ä¸ªé«çµå¹³ä¿¡å·å模æ车轮转äºä¸åï¼éè¿è®¡ç®æ¯ç§éåçæºæ¥æ¶å°çé«çµå¹³ä¿¡å·ä¸ªæ°å³å¯æ¹ä¾¿ç计ç®åºè½¦è½®çé度åæèµ°çéç¨ã
2.3模æ车轮ç设计
å°è½¦çé度åéç¨çæµéæ¯éè¿å çµå¯¹ç®¡æ£æµç çå®ç°çãæ们éç¨æ®éçç´æµçµæºåç©å ·è½¦ç车轮ï¼èªå¶ç çï¼åæ模æ车轮ï¼ä¾æµéç¨ã
èèå°çµæºè¿è¡æ¶å¯¹çµåçå¹²æ°ï¼çµæºççµæºç´æ¥ç±è¾å ¥çæªç»è¿ç¨³åççµæºæä¾ï¼è¯ç¨æ解é¤å³å¨ååã并设ç«ç¬ç«çå¼å ³ï¼æ人工æ§å¶ï¼è¿æ ·æ´ç¬¦åå®é çå·¥ä½æ åµã
为é²æ¢å çµç®¡äº§ç误å¨ä½ï¼æ们å°å çµç çå为2份é»ç½ç¸é´çåçï¼æ¯ä»½åå åå¨çä¸åï¼å¦å¾4ï¼
å¾4 模æ车轮ç ç
å°å ¶ç´§è´´å¨è½¦è½®çå 侧ãå¨å°è£ çå³ä¾§æä¸ä¸ªæ¹åï¼çº¢å¤å¯¹ç®¡éè¿æ¹å对å çµç çè¿è¡æ£æµå°±å¯ä»¥å¾å°è½¦è½®è½¬è¿çåæ°ãä»è计ç®åºå°è½¦åè¿çè·¯ç¨ã
æ¬ç³»ç»å设车轮çå¨é¿ä¸º1ç±³ï¼å设åçæºæ¯ç§æ£æµå°é»ç½ä¿¡å·çåå为nï¼å ±èµ°äºkç§åå°è½¦èµ°è¿çè·¯ç¨ä¸ºSï¼nkç±³ã
2.4å®æ¶æ¶éæ§å¶æ¨¡åç设计
æ们éç¨çDSåè½å¼ºå¤§ï¼å ç½®éçµæ± ï¼å ç½®æ¶æ¯ï¼å¯ä»¥ä½ä¸ºå®æ¶çµåéï¼ä¸ºæ´ä¸ªç³»ç»æä¾æ¶éï¼å¾å¥½å°è§£å³äºé¢ç®åæ¥é¨åâè½å¤æ¾ç¤ºãè°èå½åçç³»ç»æ¶é´ï¼å¹¶æ ¹æ®å½åçç³»ç»æ¶é´è¿è¡è®¡è´¹ï¼6æ¶è³æ¶ä¸ºç½å¤©ï¼æ¶è³ç¬¬äºå¤©6æ¶ä¸ºæä¸ï¼âçè¦æ±ãåæ¶å©ç¨å ¶é¹éåè½å¯¹æ¢æµä¿¡å·è¿è¡éæ ·ï¼ç²¾ç¡®ç计ç®åºè½¦éãç±äºè¯çè¿æä¾åèéæ失åå¨ç©ºé´ï¼å æ¤æ们å°é¢ç®è¦æ±çåç§ä»·æ ¼ç设置æ¹ä¾¿çä¿åå¨éé¢ï¼è¾¾å°æçµä¿åæ°æ®çåè½ã
å¾5 æ¶é模åçµè·¯å¾
2.5人æºäº¤äºçé¢ç设计
为使系ç»ææ´è¯å¥½ç人æºäº¤äºçé¢ï¼æ们å°LCD液æ¶æ¾ç¤ºæ¨¡åï¼æä½æé®ï¼ç³»ç»å¤ä½å¼å ³å车轮æ§å¶å¼å ³éä¸äºå°è£ ççé¢æ¿ä¸ï¼æ¹ä¾¿ç¨æ·æä½ï¼å¦ä¸å¾ï¼
å¾6 人æºäº¤äºçé¢
2.6ç³»ç»æ»ä½çµè·¯å¾
å¾7 ç³»ç»æ»çµè·¯å¾
å¾8 ç³»ç»è£ ç®±åçå é¨å®ç©å¾
第ä¸ç« ï¼ç³»ç»ç¨åºè®¾è®¡
3.1ç³»ç»ç¨åºæå®ç°çåè½
u å®æ¶æ¾ç¤ºæ»éé¢ï¼æ»éç¨ï¼è½¦éï¼å·²èµ°è¿æ¶é´ï¼ç³»ç»æ¶é´ã
u å¯å¨çº¿ä¿®æ¹ç³»ç»æ¶é´ã
u å¯ä¿®æ¹èµ·æ¥ä»·åèµ·æ¥è·ç¦»ã
u å¯ä¿®æ¹æ¯è¶ è¿ä¸å ¬éå æ¶è´¹ç¨ã
u å¯ä¿®æ¹éä¸åè½¦è¶ è¿æ¶é´å¼å§æ¶è´¹çæ¶é´ååä»·ã
3.2ç¨åºä»»å¡åé
表1 ç¨åºä»»å¡åé
å¤é¨ä¸æ0ï¼æ¥èªè½¦è½®ï¼
å¤é¨ä¸æ1ï¼æ¥èªæ¶éï¼
主å½æ°
æ´æ°è·¯ç¨ï¼å æ»ä»·ï¼å¤ä½è®¡æ¶å¨ï¼å¦ææ¾ç¤ºå±ä½¿ç¨æå¨INT0ï¼å°±æ´æ°æ¾ç¤ºã
æ¾ç¤ºå±ä½¿ç¨æç¨screenåé表示ã
计ç®é度ï¼è®¡ç®è¡è½¦æ¶é´ï¼è®¡æ¶å¹¶å¨åè½¦è¶ æ¶åå é±ãæ ¹æ®æ¾ç¤ºå±ä½¿ç¨æå¤ææ¯å¦æ´æ°æ¾ç¤ºã
æ ¹æ®real_timeåéçå¼å³å®æ¯å¦æç³»ç»æ¶é´æ´æ°å°å±å¹ä¸ã
读åæé®ãå³å®æ§å¶é»è¾ã
3.3主ç¨åºæµç¨å¾
å¼å§
åå§åLCDãå®æ¶æ¶é
ä»åå¨å¨è¯»åºåä»·çæ°æ®
æ¾ç¤ºlogo
ä»»æé®
空é²ç¶æï¼æ¾ç¤ºç³»ç»æ¶é´
æé®æä¸
空é²ç¶æ
计费ç¶æ
设置�
N
Y
设置
çå¾ æé®
æ¯2é®?
N
Y
åå§å计费å±å¹ï¼è¿å ¥è®¡è´¹ç¶æ
æ¯3é®
Y
æ¥çç³»ç»æ¶é´ï¼å»¶æ¶4ç§
N
æ¯4é®?
Y
åæ¢è®¡è´¹ï¼è¿å ¥ç©ºé²ç¶æ
N
æä¸2é®å¤ä½
3.4åæ°æ®å¨ä¸åå¨å°å
表2 åæ°æ®å¨ä¸åå¨å°å
å°å
åé
åè½
0x0e
d
//èµ·æ¥ä»· d å ¬é p è§
0x0f
p
0x
day_price
//ç½å¤©æ¯å ¬éä»·æ ¼ï¼åä½ï¼è§
0x
night_price
//å¤ææ¯å ¬éä»·æ ¼ï¼åä½ï¼è§
0x
x
//ä¸éåè½¦è¶ è¿yåéä¹åæxè§æ¯åé计价
0x
y
3.5ä¸ææå¡0ç¨åºæµç¨å¾
触åä¸æ
è·¯ç¨å ä¸ç±³
å 许使ç¨æ¾ç¤ºå±?
计æ¶å¨å¤ä½
è·¯ç¨ï¼ï¼èµ·æ¥è·¯ç¨ï¼
è·¯ç¨>èµ·æ¥è·¯ç¨ï¼
Y
N
Y
æ´æ°è·¯ç¨æ¾ç¤º
åæ»éé¢å ä¸å ¬éä»·
N
æ´æ°æ»éé¢æ¾ç¤º
Y
N
Y
å ¬é计ç¨å¨å¤ä½
ä¸æ2æå¡ç¨åºçtimer_stateåtimer_countåé
counter_åé
å ¬é计ç¨å¨å 1
å ¬é计ç¨å¨ï¼ï¼?
ç»æ
N
Y
åæ»éé¢å ä¸å ¬éä»·
å 许使ç¨æ¾ç¤ºå±?
æ´æ°æ»éé¢æ¾ç¤º
Y
N
å ¬é计ç¨å¨å¤ä½
0å·ä¸ææå¡ç¨åºï¼
车轮转å¨ä¸å触åä¸æ¬¡
3.6 ä¸ææå¡2ç¨åºæµç¨å¾
触åä¸æ
ç³»ç»å¨è®¡è´¹ç¶æï¼
Y
N
éè¦åæ¥æ¶é´ï¼
Y
N
ç»æ
é度=ç°å¨çè·¯ç¨âä¸ç§ä¹åçè·¯ç¨
è¡è½¦æ¶é´å ä¸ç§
计æ¶å¨å ä¸ç§
计æ¶çäºæ大å车æ¶é´ï¼
N
æ»éé¢å æ¯åéä»·
è¿å ¥åè½¦è¶ æ¶ç¶æ
Y
åè½¦è¶ æ¶ç¶æï¼
Y
æ¯åéå é±
N
å°ç³»ç»æ¶é´åæ¥æåæ¥å°å±å¹ä¸
2å·ä¸ææå¡ç¨åºï¼
æ¯ç§é触åä¸æ¬¡
第åç« :ç³»ç»è°è¯ç»æä¸åæ
4.1è°è¯æ¹æ³ä¸ä»ªå¨
表3 æµè¯ä»ªå¨è®¾å¤æ¸ å
仪å¨å称
åå·
ç¨é
æ°é
PCæº
èæ³
è°è¯åä¸è½½ç¨åº
1
æ°åä¸ç¨è¡¨
UNI-TA
æµéåçµè·¯å·¥ä½æ åµ
1
ç§è¡¨
è®°å½æ¶é´
1
ç´æµç¨³åçµæº
ALKIMIA
æä¾çµæº
1
4.2è°è¯æ¥éª¤ä¸æµè¯æ°æ®
4.2.1ç³»ç»æ¶é´ä¸ç§è¡¨å®é æ¶é´æµé
å¼æºåæâå¼å§âé®è¿å ¥è®¡æ¶å·¥ä½ç¶æï¼åæ¶å¯å¨ç§è¡¨è¿è¡åæ¶å¯¹æ¯ï¼åå«å¯¹å·¥ä½æ¶é´ä¸º1åéï¼2åéï¼3åéï¼4åéï¼5åéè¿è¡æµéæ¯è¾ï¼ç»æå¦è¡¨2
表4 ç³»ç»æ¶é´æµè¯æ¯è¾
æµè¯æ¶é´
ç³»ç»æ¾ç¤ºæ¶é´
ç§è¡¨æµéæ¶é´
s
s
.s
s
s
.s
s
s
.s
s
s
.s
s
s
.s
4.2..2车轮转éæµè¯
æ¬ç³»ç»ç设计对æ¢æµä¿¡å·çä¸é沿è¿è¡è§¦åï¼å æ¤å½çº¢å¤å¯¹ç®¡æ¢æµå°çç çä»ç½è²è½¬ä¸ºé»è²æ¶ï¼åçæºä¸æ触åï¼è®¡æ°å¨å ä¸ã
å¯å¨è®¡è´¹ç³»ç»ï¼åæ¶æ工转å¨è½¦è½®ä¸å¨ï¼æ¾ç¤ºå±ä¸è·¯ç¨æ¾ç¤º1mï¼å¨è½¬å¨è½¦è½®å åï¼LCDçæ¾ç¤ºæ°å¼åä¸å®é ç¸ç¬¦ã
4.2.3计费系ç»æµè¯
表5 ä¸åæ åµä¸ç计费ç»ææµè¯
计费æ¶é´æ®µ
è¡é©¶éç¨
è¡é©¶æ¶é´
ä¸éå车æ¶é´
è®¡è´¹ä»·æ ¼
ç½å¤©
m
s
0
5.0å
ç½å¤©
m
s
0
.0å
æä¸
m
s
0
.0å
æä¸
m
s
s
.0å
4.2.4æ°æ®è®¾å®åæçµå¨ååè½
å¨å¾ æºç¶æä¸æâ设置âé®ï¼åå«ä¿®æ¹èµ·æ¥ä»·4kmå 8å ï¼ç½å¤©æ¯å ¬é5å ï¼æä¸æ¯å ¬é7å ï¼ä¿®æ¹ç³»ç»æ¶é´ï¼ç¶åä¿åï¼å ³æºï¼æå¼çµæºï¼çå¾ 5åéä¹åéæ°å¼æºï¼åç°æ°æ®ä¸ºä¿®æ¹åçæ°æ®ï¼å³æ°æ®ç设å®åæçµå¨ååè½ææã
4.3æµè¯ç»æåæ
éè¿è°è¯åç³»ç»æµè¯ï¼åç°ç³»ç»è½å¾å¥½å°å®ç°é¢æçç®çï¼å®ç°äºé¤è¯é³åè½å¤çå ¶ä»ææåè½ï¼å·¥ä½æ§è½ç¨³å®ï¼è®¡è´¹ç²¾ç¡®ãç³»ç»æ¶é´å®æ¶è¿è¡ï¼åç¡®ï¼éç¨çæ¾ç¤ºè¯¯å·®å¨1m以å ãå¾å¥½çå®æäºèµé¢çè¦æ±ã
第äºç« ï¼ç³»ç»æ§è½æ»ç»åç¹ç¹
5.1 å®ç°åºæ¬è¦æ±åè½
表4 åºæ¬åè½çå®ç°æ åµ
åºæ¬è¦æ±åè½
åè½å®ç°æ åµ
åºæ¬è¦æ±ç¬¬ï¼1ï¼é¡¹
å®ç°
åºæ¬è¦æ±ç¬¬ï¼2ï¼é¡¹
å®ç°
åºæ¬è¦æ±ç¬¬ï¼3ï¼é¡¹
å®ç°
åºæ¬è¦æ±ç¬¬ï¼4ï¼é¡¹
å®ç°
åºæ¬è¦æ±ç¬¬ï¼5ï¼é¡¹
å®ç°
5.2 å®ç°åæ¥é¨ååè½
表5 åæ¥åè½çå®ç°æ åµ
åæ¥è¦æ±åè½
åè½å®ç°æ åµ
åæ¥è¦æ±ç¬¬ï¼1ï¼é¡¹
å®ç°
åæ¥è¦æ±ç¬¬ï¼2ï¼é¡¹
å®ç°
åæ¥è¦æ±ç¬¬ï¼3ï¼é¡¹
æªå®ç°
5.3 å¢å çå ¶ä»åè½
u ä¸è®¡è´¹ç³»ç»ç¸å ³çææåæ°ç¨æ·åå¯ä¿®æ¹å¹¶å¨åã
u å ¼æä¸å¹´ååæ°åçµåéåè½ã
u ä¸ä½å人æºäº¤äºçé¢æ§å¶é¢æ¿ï¼ç¡¬ä»¶ç³»è£ ç®±ï¼æé«æºæ¢°å¼ºåº¦ï¼å®å ¨æ§è½åç¾è§åº¦ã
第å ç« ï¼éå½
éå½ä¸ ç³»ç»ç¨åºæºä»£ç
/