开源项目:ERP生产线计数器.关键词:条码输入,ps2,串口,ds1302

2020-01-14 18:56发布

开源项目: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 上传 点击文件名下载附件

就这么多了,具体什么功能我大约都忘了,知道的都在源文件了,仅供参考!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。