c51程序设计代码实例

c51程序设计代码实例

ID:33903824

大小:76.50 KB

页数:16页

时间:2019-03-01

c51程序设计代码实例_第1页
c51程序设计代码实例_第2页
c51程序设计代码实例_第3页
c51程序设计代码实例_第4页
c51程序设计代码实例_第5页
资源描述:

《c51程序设计代码实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C51程序设计的菜单的代码实例/*    Module    :Kbdmenu.c    Date:------Usage:P10~P12usetoDownKey,UpKey,CRKey*/#include    #include    #define    SIZE_OF_KEYBD_MENU    20//菜单长度uchar    KeyFuncIndex=0;//uchar    KeyFuncIndexNew=0;void    (*KeyFuncPtr)();    //按键功能指针typedefstruct{  

2、  uchar    KeyStateIndex;    //当前状态索引号    uchar    KeyDnState;    //按下"向下"键时转向的状态索引号    uchar    KeyUpState;    //按下"向上"键时转向的状态索引号    uchar    KeyCrState;    //按下"回车"键时转向的状态索引号    void    (*CurrentOperate)();    //当前状态应该执行的功能操作}    KbdTabStruct;KbdTabStruct    code

3、    KeyTab[SIZE_OF_KEYBD_MENU]={    {0,0,0,1,(*DummyJob)},//顶层        {1,2,0,3,(*DspUserInfo)},//第二层    {2,1,1,9,(*DspServiceInfo)},//第二层        {3,0,0,1,(*DspVoltInfo)},//第三层>>DspUserInfo的展开    {4,0,0,1,(*DspCurrInfo)},//第三层>>DspUserInfo的展开    {5,0,0,1,(*DspFreqIn

4、fo)},//第三层>>DspUserInfo的展开    {6,0,0,1,(*DspCableInfo)},//第三层>>DspUserInfo的展开...........{9,0,0,1,(*DspSetVoltLevel)}//第三层>>DspServiceInfo的展开..........};void    GetKeyInput(void){    uchar    KeyValue;    KeyValue=P1&0x07;//去掉高5bit    delay(50000);    switch(KeyValu

5、e)    {        case    1:    //回车键,找出新的菜单状态编号        {            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyCrState;            break;        }        case    2:    //向上键,找出新的菜单状态编号        {            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;            break;     

6、   }        case    4:    //向下键,找出新的菜单状态编号        {            KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;            break;        }        default:    //按键错误的处理......        break;    }    KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;    (*KeyFuncPtr)();//执行当

7、前按键的操作}//其中KeyTab的设计颇费尽心机51单片机浮点数据存储代码实例Float   浮点形。  它是符合IEEE-754标准的单精度浮点形数据,在十进制中具有7位有效数字。FLOAT型据占用四个字节(32位二进制数),在内存中的存放格式如下:字节地址(由低到高)0                  1               2                3浮点数内容         MMMMMMMM         MMMMMMMM        EMMMMMMM       SEEEEEEE其中,S为

8、符号位,存放在最高字节的最高位。“1”表示负,“0”表示正。E为阶码,占用8位二进制数,存放在高两个字节中。注意,阶码E值是以2为底的指数再加上偏移量127,这样处理的目的是为了避免出现负的阶码值,而指数是可正可负的。阶码E的正常取值范围是1~254,从而实际指数的取值范围为-126-12

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。