⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 进行单片机与LCD的接口通讯与显示。使用清华的液晶。
💻 C
📖 第 1 页 / 共 5 页
字号:
//#pragma  cp
#include <reg51.h>
#include <math.h>
#include <absacc.h>
#include <string.h>

#define uchar unsigned char
#define uint unsigned int

extern uchar code menu_str[97][30];
extern idata buf[30];
extern Keybefore;
extern keybutton;

extern uchar dispint(uchar,uchar,int);
extern void delay();
extern void INT_1();
extern void CLEAR();
extern O_X,O_Y,code_1,com;
extern void PR1();
extern void PR4();
extern void PR7();
extern void msec(uint);
extern uchar dispint(uchar,uchar,int);
extern uchar dispint_f(uchar position1,uchar position2,int value);
extern void CCW_PR();
extern void CW_PR();
extern void dispf(uchar position1,uchar position2,float value,uchar preci);
extern void dispf_f(uchar position1,uchar position2,float value,uchar preci);
extern void dispes(uchar position1,uchar position2,uchar chanum,uchar* p);
extern void dispes_f(uchar position1,uchar position2,uchar chanum,uchar* p);
extern void dispcs(uchar position1,uchar position2,uchar chanum,uchar* p);
extern scankey();
extern void  blank_point(uchar position1,uchar position2,uchar chanum);
extern void blank_line(uchar position);
/*UART function*/
extern void Uart_init(void);
extern void send(uchar idata d);
extern void receive();

extern float int_float2(int,int);
extern float int_float3(int,int,int);
extern int int_2(int,int);

extern void modify_float3(float x,void (*p)(),int a,int b,int c);
extern void modify_float2(float x,void (*p)(),int a,int b);
extern void modify_int2(int x,void (*p)(),int a,int b);
extern void modify_int1(int x,void (*p)(),int a);
extern void on_off(int a,int lin);
extern void on_off_f(int a,int lin);
extern void on_off_state(int a,int lin);
extern void on_off_state_general(int a,int lin);
extern void modify_group(int x,void (*p)());


/*  function prototype defination*/
void disp11();
void disp12();
void disp13();
void disp211();
void disp212();
void disp213();
void disp214();
void disp215();
void disp301();
void disp302();
void disp303();
void disp311();
void disp312();
void disp313();
void disp314();
void disp315();
void disp316();
void disp317();
void disp318();
void disp319();
void disp3110();
void disp3111();
void disp3112();
void disp3113();
void disp3114();
void disp3115();
void disp3116();
void disp3117();
void disp3118();
void disp3119();
void disp3120();
void disp320();
void disp330();
void disp340();
void disp350();
void disp360();
void disp370();
void disp380();
void disp390();
void disp401();
void disp402();
void disp403();
void disp410();
void disp411();
void disp412();
void disp413();
void disp414();
void disp415();
void disp416();
void disp417();
void disp418();
void disp419();
void disp4110();
void disp420();
void disp421();
void disp422();
void disp423();
void disp424();
void disp425();
void disp426();
void disp427();
void disp428();
void disp429();
void disp4210();
void disp430();
void disp431();
void disp432();
void disp433();
void disp434();
void disp435();
void disp436();
void disp437();
void disp438();
void disp439();
void disp4310();
void disp4311();
void disp4312();
void disp440();
void disp441();
void disp442();
void disp443();
void disp444();
void disp450();
void disp451();
void disp452();
void disp453();
void disp454();
void disp455();
void disp456();
void disp460();
void disp461();
void disp462();
void disp463();
void disp464();
void disp465();
void disp466();
void disp467();
void disp468();
void disp470();
void disp471();
void disp472();
void disp473();
void disp474();
void disp475();
void disp476();
void disp477();
void disp478();
void disp479();
void disp4710();
void disp4711();
void disp4712();
void disp480();
void disp481();
void disp482();
void disp483();
void disp484();
void disp485();
void disp486();
void disp487();
void disp488();
void disp489();
void disp4810();
void disp4811();
void disp4812();
void disp4813();
void disp4814();
void disp4815();
void disp4816();
void disp501();
void disp502();
void disp503();
void disp511();
void disp512();
void disp521();
void disp522();
void disp531();
void disp532();
void disp533();
void disp534();
void disp535();
void disp536();
void disp537();
void disp538();
void disp539();
void disp5310();
void disp611();
void disp612();
void disp621();
void disp622();
void disp623();
void disp631();
void disp632();
void disp633();
void disp634();

void disp100();
void disp101();
void disp102();
void disp103();
void disp104();
void disp105();
void disp106();
void disp107();
void disp108();
void disp109();
void disp110();
void disp111();

/*communication function defination*/
void commu1();
void commu2();
void commu3();
void commu4();
void commu5();
void commu6();
void commu7();
void commu8();
void commu9();
void commu10();
void commu11();
void commu12();
void commu13();
void commu14();
void commu15();
void commu16();
void commu17();
void commu18();
void commu19();
void commu20();
void commu21();
void commu22();
void commu23();
void commu24();
void commu25();
void commu26();
void commu27();
void commu28();
void commu29();
void commu30();
void commu31();
void commu32();
void commu33();
void commu34();
void commu35();
void commu36();
void commu100();
void commu110();
void commu111();
void CLEAR1();

uchar password[4]={0,0,0,0};

uchar idata key,key2=20;
int verify,length,language=0;
char  scale=1;
int KeyFuncIndex=4;
int Keyfirst=1;
uchar state_num,u=0;
int KeyState=0;
int head=255;
float idata float1,float2,float3,float4,float5,float6,float7,float8;
int idata int1,int2,int3,int4,int5,int6;
         sbit P1_0=P1^0;
         sbit P1_1=P1^1;
         sbit P1_2=P1^2;
         sbit P1_3=P1^3;
         sbit P1_4=P1^4;
         sbit P1_5=P1^5;
         sbit P1_6=P1^6;
         sbit P1_7=P1^7;
         sbit P3_3=P3^3;
         sbit P3_4=P3^4;
         sbit P3_5=P3^5;
/*************************************/
/*              主程序               */
/*************************************/
void main()
        {
          unsigned char a,b,i,j;
         #define    SIZE_OF_KEYBD_MENU    210//菜单长度

         void    (*KeyFuncPtr)();    //按键功能指针

typedef struct
{
    uchar    KeyStateIndex;    //当前状态索引号
    uchar    KeyDnState;    //按下"向下"键时转向的状态索引号
    uchar    KeyUpState;    //按下"向上"键时转向的状态索引号
    uchar    KeyLeft;       //左键
    uchar    KeyRight;      //右键
    uchar    KeyCrState;    //按下"回车"键时转向的状态索引号
    uchar    KeyEsState;    //按下"退出"键时转向的状态索引号
    uchar    KeyFhState;    //按下"返回"键时转向的状态索引号
    void    (*CurrentOperate)();    //当前状态应该执行的功能操作
}   KbdTabStruct;

/*chain-table definetion*/
KbdTabStruct    code    KeyTab[SIZE_OF_KEYBD_MENU]=
{
    { 0,1,0,0,0,4,0,0,(*disp11)},  //第一层entry :
    { 1,1,0,1,1,2,1,1,(*disp12)},  //normal display

    { 2,2,2,2,2,2,2,2,(*commu1)},   //request normal display
    { 3,3,3,3,3,3,3,3,(*disp13)},   //display normal display

    { 4,5,4,4,4,11,3,4,(*disp211)},    //第二层display:
    { 5,6,4,5,5,201,5,4,(*disp212)},    //programming:
    { 6,6,5,6,6,7,6,4,(*disp213)},    //fault ack.

    { 7,7,7,7,7,7,7,7,(*commu2)},   //request fault message
    { 8,8,8,8,8,9,1,4,(*disp214)},  //display fault message
    { 9,9,9,9,9,9,9,9,(*commu3)},   //send ack. fault message
    { 10,10,10,10,10,10,6,4,(*disp215)},   //display acked.

    { 11,12,11,11,11,57,4,4,(*disp301)},//第三层operating stats/measure:
    { 12,12,11,12,12,13,4,4,(*disp302)}, //history events:
    { 13,13,13,13,13,13,13,13,(*commu4)},   //request history events:
    { 14,14,14,14,14,14,12,4,(*disp303)},  //display history events:

    { 15,29,15,15,15,16,5,4,(*disp311)},    //date/time setting:
    { 16,16,16,16,16,16,16,16,(*commu5)}, //request date/time
    { 17,18,17,22,22,27,15,4,(*disp312)},  //display current time year_f
    { 18,19,17,23,23,27,15,4,(*disp313)},  //month_f
    { 19,20,18,24,24,27,15,4,(*disp314)},  //day_f
    { 20,21,19,25,25,27,15,4,(*disp315)},  //hour_f
    { 21,21,20,26,26,27,15,4,(*disp316)},  //minute_f

    { 22,18,22,22,22,27,15,4,(*disp317)},//modify year
    { 23,19,17,23,23,27,15,4,(*disp318)}, //modify month
    { 24,20,18,24,24,27,15,4,(*disp319)}, //modify day
    { 25,21,19,25,25,27,15,4,(*disp3110)}, //modify hour
    { 26,26,20,26,26,27,15,4,(*disp3111)}, //modify minute
    { 27,27,27,27,27,27,27,27,(*commu6)}, //send modified time
    { 28,28,28,28,28,28,15,4,(*disp3112)},   //display time modified

    { 29,35,15,29,29,31,5,4,(*disp3113)},    //language:
    { 30,30,30,30,30,30,30,30,(*commu7)},    //request language (x)
    { 31,31,31,32,32,34,29,4,(*disp3114)},    //display language
    { 32,32,32,32,32,34,29,4,(*disp3115)},    //modify language:
    { 33,33,33,33,33,33,33,33,(*commu8)},   //send modified language (x)
    { 34,34,34,34,34,34,29,4,(*disp3116)},    //display language modified

    { 35,41,29,35,35,37,5,4,(*disp3117)},    //scale:
    { 36,36,36,36,36,36,36,36,(*commu9)},    //request scale  (x)
    { 37,37,37,38,38,40,35,4,(*disp3118)},    //display scale
    { 38,38,38,38,38,40,35,4,(*disp3119)},    //modify scale
    { 39,39,39,39,39,39,39,39,(*commu10)},    //send modified scale (x)
    { 40,40,40,40,40,40,35,4,(*disp3120)},    //display scale modified

    { 41,43,35,41,41,42,42,42,(*disp320)},    //motor specifications:
    { 42,42,42,42,42,42,42,42,(*commu11)},   //request

    { 43,45,41,43,43,44,5,4,(*disp330)},    //freqency setting:
    { 44,44,44,44,44,44,44,44,(*commu12)},   //request

    { 45,47,15,45,45,46,5,4,(*disp340)},    //groups in operation
    { 46,46,46,46,46,46,46,46,(*commu13)},   //request

    { 47,49,45,47,47,48,5,4,(*disp350)},    //control mode:
    { 48,48,48,48,48,48,48,48,(*commu14)},   //request

    { 49,51,47,49,49,50,5,4,(*disp360)},    //fwd/rev & jog
    { 50,50,50,50,50,50,50,50,(*commu15)},   //request

    { 51,53,49,51,51,52,5,4,(*disp370)},    //DC applying
    { 52,52,52,52,52,52,52,52,(*commu16)},   //request

    { 53,55,51,53,53,54,5,4,(*disp380)},    //limit parameters
    { 54,54,54,54,54,54,54,54,(*commu17)},   //request

    { 55,55,53,55,55,56,5,4,(*disp390)},    //calibration
    { 56,56,56,56,56,56,56,56,(*commu18)},   //request

    { 57,58,57,57,57,157,11,4,(*disp401)},   //第四层power unit:
    { 58,60,57,58,58,59,11,4,(*disp402)},   //general measurement:
    { 59,59,59,59,59,59,59,59,(*commu19)},   //request
    { 60,60,58,60,60,61,11,4,(*disp403)},   //general states:
    { 61,61,61,61,61,61,61,61,(*commu20)},   //request

    { 62,63,62,67,67,72,41,4,(*disp410)},   //motor voltage_f
    { 63,64,62,68,68,72,41,4,(*disp411)},   //motor current_f
    { 64,65,63,69,69,72,41,4,(*disp412)},   //motor power_f
    { 65,66,64,70,70,72,41,4,(*disp413)},   //motor frequency_f
    { 66,66,65,71,71,72,41,4,(*disp414)},   //motor speed_f

    { 67,63,67,67,67,72,41,4,(*disp415)}, //modify voltage
    { 68,64,62,68,68,72,41,4,(*disp416)}, //modify current
    { 69,65,64,69,69,72,41,4,(*disp417)}, //modify power
    { 70,66,65,70,70,72,41,4,(*disp418)}, //modify frequency
    { 71,71,65,71,71,72,41,4,(*disp419)}, //modify speed
    { 72,72,72,72,72,72,72,72,(*commu21)},   //send modified
    { 73,73,73,73,73,73,41,4,(*disp4110)}, //display modified

    { 74,75,74,79,79,84,43,4,(*disp420)},  //freq. reference : 1,user;2,analog
    { 75,76,74,80,80,84,43,4,(*disp421)},  //ref freq.
    { 76,77,75,81,81,84,43,4,(*disp422)},  //minimum freq.
    { 77,78,76,82,82,84,43,4,(*disp423)},  //maximum freq.
    { 78,78,77,83,83,84,43,4,(*disp424)},  //bypass freq.

    { 79,75,79,79,79,84,43,4,(*disp425)}, //modify freq. reference
    { 80,76,74,80,80,84,43,4,(*disp426)}, //modify ref freq
    { 81,77,75,81,81,84,43,4,(*disp427)}, //modify minimum freq.
    { 82,78,76,82,82,84,43,4,(*disp428)}, //modify maximum freq.
    { 83,83,77,83,83,84,43,4,(*disp429)}, //modify bypass freq.
    { 84,84,84,84,84,84,84,84,(*commu22)},   //send modified
    { 85,85,85,85,85,85,43,4,(*disp4210)}, //display modified

    { 86,87,86,92,92,98,45,4,(*disp430)},  //group 1:
    { 87,88,86,93,93,98,45,4,(*disp431)},  //group 2:
    { 88,89,87,94,94,98,45,4,(*disp432)},  //group 3:
    { 89,90,88,95,95,98,45,4,(*disp433)},  //group 4:
    { 90,91,89,96,96,98,45,4,(*disp434)},  //group 5:
    { 91,91,90,97,97,98,45,4,(*disp435)},  //group 6:

    { 92,87,92,92,92,98,45,4,(*disp436)},  //modify group 1
    { 93,88,86,93,93,98,45,4,(*disp437)},  //modify group 2
    { 94,89,87,94,94,98,45,4,(*disp438)},  //modify group 3
    { 95,90,88,95,95,98,45,4,(*disp439)},  //modify group 4
    { 96,91,89,96,96,98,45,4,(*disp4310)},  //modify group 5
    { 97,97,90,97,97,98,45,4,(*disp4311)},  //modify group 6
    { 98,98,98,98,98,98,98,98,(*commu23)},   //send modified
    { 99,99,99,99,99,99,45,4,(*disp4312)}, //display modified

    { 100,101,100,100,100,187,47,4,(*disp440)},  //basic v/f control

    { 101,104,100,101,101,102,47,4,(*disp441)},  // advanced v/f control
    { 102,102,102,102,102,102,102,102,(*commu24)},   //request
    { 103,103,103,103,103,103,47,4,(*disp442)}, //display modified
    { 104,104,101,104,104,105,47,4,(*disp443)},  // vector control
    { 105,105,105,105,105,105,105,105,(*commu25)},   //request
    { 106,106,106,106,106,106,47,4,(*disp444)}, //display modified

    { 107,108,107,110,110,113,49,4,(*disp450)},  //fwd/rev:
    { 108,109,107,111,111,113,49,4,(*disp451)},  //jog freq. in Hz
    { 109,109,108,112,112,113,49,4,(*disp452)},  //jog time in sec.:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -