开源项目:ERP生产线计数器.关键词:条码输入,ps2,串口,ds1302
说明:
此项目已经完成90%的功能,但由于后面时间关系,没有进一步的完善,已经将代码交给了客户。(2010年的project)
ERP系统说明:
与电脑通信的生产线计时间,计数量的系统,然后数据上传到电脑主机。录入使用ps2接口的条码枪,或者ps2键盘,显示使用若干数码管。
首先,输入密码,然后校验员工号,班次,工单号,装配,工序,机器,生产类型等7项,正确的则对应的绿 {MOD}LED亮。
按按键开始工作,检测流水线的计数传感器,计算时间,接受电脑主机发过来的查询命令,或者工作结束上传数据到主机.
关键词:
PS2,UART,EEPROM,DS1302,外部中断,定时器,串口等。
更关键的:
项目的结构,个人认为新手可以学习下。
每个c文件基本有个对应的header文件
这样的结构,应该能很好地满足一般的项目要求了,至少我大部分项目是这样搞的
大神勿喷!呵呵!
主程序:
main()
{
Initialize();
while(1)
{
Menu_Process();
Key_Process(); //按键扫描
}
}
每个菜单下的响应函数:
void Menu_Process(void)
{
switch(IndexMenu)
{
case MENUENTERPASSWORD:
MenuEnterPassword();
break;
case MENUCONFIRMSTAFF1:
MenuConfirmStaff1();
break;
..........
某个菜单的具体按键响应:
void MenuEnterPassword(void)
{
INT8U i=0;
NumProduct1=IndexMenu; // test
switch(KeyValue)
{
case KEYVIRTUALINIT:
// 刚跳到这个菜单的初始化
break;
case KEYSTART:
// 按键按下处理的事
break;
case KEYSTOP:
// 按键按下处理的事
break;
default:
........
从某个菜单跳到某个菜单:
void Jump2Menu(INT8U menu,INT8U action)
{
if(action==MENU_NOACTION)
KeyValue=KEYNULL;
else if(action==MENU_AUTOINIT)
KeyValue=KEYVIRTUALINIT;
if(menu==MENUNEXT)
{
if(++IndexMenu>MENUBOTTOM)
IndexMenu=MENUENTERPASSWORD;
}
else
IndexMenu=menu;
}
备注:
硬件是我同学画的,本身他是位layout高手,读大学时我带出来的。他没有读大学,他高中后在广州工作,我在广州读书。
经常过来玩,一起打球,就叫他一起学了些电子方面的,现在混得比我好多了!
我负责提供大概的使用芯片和框架。软件我负责。
AA.JPG (135.77 KB, 下载次数: 0)
下载附件
2014-11-17 10:38 上传
项目文件,包括源程序等:
ERPver100.rar
(9.53 MB, 下载次数: 54)
2014-11-17 10:41 上传
点击文件名下载附件
就这么多了,具体什么功能我大约都忘了,知道的都在源文件了,仅供参考!
一周热门 更多>