久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15555|回復(fù): 50
打印 上一主題 下一主題
收起左側(cè)

牛人制作的單片機(jī)科學(xué)型計(jì)算器,功能太強(qiáng)大 大家一起欣賞

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
以下是計(jì)算器功能演示視頻地址:
https://www.bilibili.com/video/B ... 3625234719827099345

制作出來的實(shí)物圖如下:


以下是部分單片機(jī)程序代碼:
完整代碼在附件中

#include "STC12C5A60S2.h"
#include "alg_caculate.h"
#include "UART.h"
#include "alg_linearlist.h"
#include "keyboard_input.h"
#include "lcd_12864.h"
#include "mode.h"
#include "solve_equation.h"
#include "function_pic.h"
#include "eeprom_rw.h"
#include "pwm.h"
#include "time.h"

#include <stdio.h>
#include <stdlib.h>

#define uchar unsigned char
#define uint unsigned int

uchar num0;                 //輸入的鍵值
int         count1;       //翻頁計(jì)數(shù)


void main()
{
        PWM_init();
        t0_init();
        t1_init();
        lcd_init();
        lcd_clear_pic();
        while(1)
        {
        
        
        mode_select();
        
        }


}

全部資料51hei下載地址:
計(jì)算器正式版Ver1.0.0.7z (545.05 KB, 下載次數(shù): 345)

評分

參與人數(shù) 2黑幣 +80 收起 理由
大膽1 + 30 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏54 分享淘帖 頂7 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:163090 發(fā)表于 2020-4-3 17:48 | 只看該作者
計(jì)算器主控芯片為STC12C5A60S2,顯示器為12864液晶。額外的外設(shè)有EEPROM、DS1302、矩陣鍵盤,為科學(xué)計(jì)算器提供存儲、時(shí)鐘、輸入功能。 在等號被按下前,允許輸入完整的表達(dá)式。因此在軟件上需要做到語法識別、優(yōu)先級順序、括號嵌套等功能。 計(jì)算器擁有普通計(jì)算(表達(dá)式與函數(shù)識別、計(jì)算)、計(jì)算結(jié)果存儲/回看、復(fù)數(shù)計(jì)算、矩陣運(yùn)算、函數(shù)圖形、解方程、統(tǒng)計(jì)、最小二乘法求回歸直線、一階常微分方程、單位,進(jìn)制轉(zhuǎn)換、定積分、求導(dǎo)等功能。 有節(jié)電模式,5分鐘不輸入自動關(guān)機(jī),液晶屏亮度5級可調(diào)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:163090 發(fā)表于 2020-4-3 17:48 | 只看該作者
計(jì)算器主控芯片為STC12C5A60S2,顯示器為12864液晶。額外的外設(shè)有EEPROM、DS1302、矩陣鍵盤,為科學(xué)計(jì)算器提供存儲、時(shí)鐘、輸入功能。
在等號被按下前,允許輸入完整的表達(dá)式。因此在軟件上需要做到語法識別、優(yōu)先級順序、括號嵌套等功能。
計(jì)算器擁有普通計(jì)算(表達(dá)式與函數(shù)識別、計(jì)算)、計(jì)算結(jié)果存儲/回看、復(fù)數(shù)計(jì)算、矩陣運(yùn)算、函數(shù)圖形、解方程、統(tǒng)計(jì)、最小二乘法求回歸直線、一階常微分方程、單位,進(jìn)制轉(zhuǎn)換、定積分、求導(dǎo)等功能。
有節(jié)電模式,5分鐘不輸入自動關(guān)機(jī),液晶屏亮度5級可調(diào)。
回復(fù)

使用道具 舉報(bào)

地板
ID:163090 發(fā)表于 2020-4-3 18:03 | 只看該作者
沒有電路圖,系統(tǒng)按鍵部分電路需要自己根據(jù)按鍵模塊程序來進(jìn)行分析反推 硬件電路應(yīng)該如何連接。矩陣按鍵有8行5列,一共是40個(gè)按鍵,按照程序的意思好像是電路圖如下圖所示:






以下是按鍵輸入部分電路程序:

#include "STC12C5A60S2.h"
#include <intrins.h>
#include "keyboard_device.h"
#include "lcd_12864.h"
#include "eeprom_rw.h"
#include "mode.h"
#include "pwm.h"
#define uchar unsigned char
#define uint unsigned int
       

uchar shift=0;//shift鍵
void keyboard_cursor_flash(void);

extern bit gb_flag;
extern uchar flash_count;
extern uchar count;
extern uchar hang;

extern uint time_out;

uchar code welcome_pic[]={
        /*--  調(diào)入了一幅圖像:boeing.bmp  --*/
        /*--  寬度x高度=128x64  --*/
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x07,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x7E,0x1F,0xC7,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0xFC,0x0F,0xE1,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x01,0xFC,0x07,0xE0,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x0F,0xE0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF9,0x9F,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF9,0xFF,0xFF,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF9,0xFF,0xFF,0xBF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF9,0x1F,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x0F,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF8,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF8,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF8,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF8,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF8,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xF8,0x07,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xFC,0x07,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xFE,0x0F,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x03,0xFF,0xFF,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

/* ========= 延時(shí)20ms11.0592MHz ========= */
void delay_20m(void)                //消抖用延時(shí)
{
        unsigned char i, j, k;

        i = 1;
        j = 216;
        k = 35;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

/* ========= 延時(shí)2s11.0592MHz ========= */
void delay_2s(void)                        //退出刷屏用延時(shí)
{
        unsigned char i, j, k;

        i = 64;
        j = 9;
        k = 179;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

/* ========= 鍵盤掃描 ========= */
uchar keyboard(void)
{       
        uchar code keyboard_Scan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};        //鍵盤掃描庫
                                                                                                //11111110,11111101,11111011,11110111,11101111,11011111,10111111,01111111
        uchar i, j, pc, flag = 0;
        uchar XScan=0;
        uchar in = 0;
        uchar test;
        while(in == 0)
        {
#ifdef KEY_X_IS_HIGH
                KEY_X &= 0x07;                        //清空高5位         0000 0111
                XScan = 0x80;                        //                         1000 0000
        //        XScan = 0x08;
#endif
//        #ifdef KEY_X_IS_LOW
//                        KEY_X &= 0xe0;                        //清空低5位         1110 0000
//                        XScan = 0x01;                        //                         0000 0001
//        #endif
                for(i=0;i<5;i++)
                {
                        KEY_X &=0x07;

                        test = XScan;
                        test = ~test;

                        KEY_X = test & 0xf8 ;
                        KEY_X = KEY_X | test;           //KEY_X接高八位

                        KEY_Y = 0xff;                                //置高
                        if(0xff != (pc = KEY_Y))        //假如說有按鍵按下
                        {
                                if(0xff != (pc = KEY_Y))        //假如說有按鍵按下
                                {
                                        delay_20m();
                                        for(j=0;j<8;j++)
                                        {                                                        //將掃描值與掃描按鍵值比較
                                                if( pc == keyboard_Scan[j] )
                                                {
                                                        in = j * 5 + i +1;
                                                        flag = 1;
                                                }
       
                                                if(flag == 1)
                                                {
                                                        while( KEY_Y == keyboard_Scan[j] );                //松手檢測
                                                        delay_20m();
                                                        break;
                                                }
                                               
                                        }
                                }
                                if(flag == 1)
                                        break;
                        }
                        XScan >>= 1;                                //左移一位
                }
               
                keyboard_cursor_flash();
               
        }
        time_out = 0;                                //清空計(jì)時(shí)
        return in;
}

uchar keyboard_wake(void)
{       
        uchar i, pc, flag = 0;
        uchar XScan=0;
        uchar in = 0;
        uchar test;
       
#ifdef KEY_X_IS_HIGH
                KEY_X &= 0x07;                        //清空高5位         0000 0111
                XScan = 0x80;                        //                         1000 0000
        //        XScan = 0x08;
#endif
//        #ifdef KEY_X_IS_LOW
//                        KEY_X &= 0xe0;                        //清空低5位         1110 0000
//                        XScan = 0x01;                        //                         0000 0001
//        #endif
                for(i=0;i<5;i++)
                {
                        KEY_X &=0x07;

                        test = XScan;
                        test = ~test;

                        KEY_X = test & 0xf8 ;
                        KEY_X = KEY_X | test;           //KEY_X接高八位

                        KEY_Y = 0xff;                                //置高
                        if(0xff != (pc = KEY_Y))        //假如說有按鍵按下
                        {
                                return 1;
                        }
                        XScan >>= 1;                                //左移一位
                }
                return 0;               
}

/* ========= 光標(biāo)閃爍 ========= */
void keyboard_cursor_flash(void)
{

        if(flash_count>=10)
                {
                        if(gb_flag==0)
                        {
                                lcd_yline(8*(count-1),16*hang+0,16*hang+15,1);
                                gb_flag=1;
                                }
                        else
                        {       
                                lcd_yline(8*(count-1),16*hang+0,16*hang+15,0);
                                gb_flag=0;
                                }
                        flash_count=0;
                }
        //鍵盤空閑監(jiān)控
        if(byte_read(ADD_TIMEOUT, 0)<time_out/5600)
        {
                time_out = 0;
                mode_sleep();
        }
}

uchar keyboard_output()
{
        uchar result = keyboard();
        uchar num0=0xff;               
        switch( result )
        {
                case 1:
                        shift=~shift;

                        num0 = 0 ;
                        break;
                case 4:
                        //上翻
                        num0 = 3 ;       
                        break;
                case 6:
                        num0 = '(';
                        break;
                case 7:
                        num0 = ')';
                        break;
                case 8:
                        //地址左移一位
                        num0 = 5 ;
                        break;
                case 9:
                        //下翻
                        num0 = 6 ;
                        break;
                case 10:
                        //地址右移一位
                        num0 = 7 ;
                        break;
                case 17:
                //hyp?
                        num0 = 14 ;
                        break;
                //數(shù)字鍵
                case 36:
                        num0='0';
                        break;

                case 31:
                        //lcd_write_str("1");
                        num0 = '1';
                        break;
                case 32:
                        //lcd_write_str("2");
                        num0 = '2';
                        break;
                case 33:
                        //lcd_write_str("3");
                        num0 = '3';
                        break;
                       
                case 26:
                        num0='4';
                        break;
                case 27:
                        num0='5';
                        break;
                case 28:
                        num0='6';
                        break;
                case 21:
                        num0='7';
                        break;
                case 22:
                        num0='8';
                        break;
                case 23:
                        num0='9';
                        break;
                case 37:
                        num0='.';
                        break;
                //+-x/=
                case 29:
                        num0='*';
                        break;
                case 30:
                        num0='/';
                        break;
                case 34:
                        num0='+';
                        break;
                case 35:
                        num0='-';
                        break;
                case 40:
                        num0='=';
                //等于?
                        break;
               
                case 24:
                //刪掉上一位,指針指向上一位?
                        num0 = 18 ;
                        break;
                case 25:
                //刪掉整個(gè)字符串,指針指向該行起點(diǎn)?
                        num0 = 19 ;
                        break;       
                case 38:
                //ans?
                        num0 = 20 ;       
                        break;
                case 39:
                //copy?
                        num0 = 21 ;
                        break;
        }

        if(shift==0)
        {               
                switch(result)
                {
                        case 2:
                                //返回菜單?
                                num0 = 1;
                                break;
                        case 3:
                                num0 = 2;
                                break;
                        case 5:
                                //清屏,打開背光
                                num0 = 4;
                                break;
                        case 11:
                                //lcd_write_str("abs(");
                                num0 = 8;  //絕對值
                                break;
                        case 12:
                                //lcd_write_str("^2");
                                num0 = 9;  //平方
                                break;
                        case 13:
                                //lcd_write_str("^(");
                                num0 = '^';  //方
                                break;       
                        case 14:
                                //lcd_write_str("^(-1)");
                                num0 = 11;  //倒數(shù)
                                break;
                        case 15:
                                //lcd_write_str("exp(");
                                num0 = 12;
                                break;
                        case 16:
                                //lcd_write_str("10^(");
                                num0 = 13;
                                break;
                        case 18:                               
                                //lcd_write_str("sin(");
                                num0 = 15;
                                break;
                        case 19:
                                //lcd_write_str("cos(");
                                num0 = 16;
                                break;
                        case 20:
                                //lcd_write_str("tan(");
                                num0 = 17;
                                break;
       
                       
//                case 31:
//                        num0='1';
//                        break;
//                case 32:
//                        num0='2';
//                        break;
//                case 33:
//                        num0='3';
//                        break;                       
                       
                       
                }
               
        }
        else
        {
                switch(result)
                {
                        case 2:
                                //返回設(shè)置?
                                num0 = 23;
                                break;
                        case 3:
                                num0 = 'e';
                                break;
                        case 5:
                                //清屏,關(guān)閉背光
                                //lcd_clear();
                                //關(guān)閉背光?
                                num0 = 24;
                                break;
                        case 11:
                                num0 = 'i';
                                break;
                        case 12:
                                //lcd_write_str("^(1/2)");
                                num0 = 25;
                                break;
                        case 13:
                                //lcd_write_str("^(1/");
                                num0 = 26;
                                break;       
                        case 14:
                                //lcd_write_str("!");
                                num0 = '!';
                                break;
                        case 15:
                                //lcd_write_str("ln(");
                                num0 = 27;
                                break;
                        case 16:
                                //lcd_write_str("log(");
                                num0 = 28;
                                break;
                        case 18:
                                //lcd_write_str("asin(");
                                num0 = 29;
                                break;
                        case 19:
                                //lcd_write_str("acos(");
                                num0 = 30;
                                break;
                        case 20:
                                //lcd_write_str("atan(");
                                num0 = 31;
                                break;
                        case 31:
                                //lcd_write_str("x");
                                num0 = 'x';
                                break;
                        case 32:
                                //lcd_write_str("y");
                                num0 = 'y';
                                break;
                        case 33:
                                //lcd_write_str("z");
                                num0 = 'z';
                                break;
                        case 37:
                                num0 = 32;
                                break;
                }
        }
        if(result != 1)
                shift=0;
               
        if(shift == 0)
                bl_bright_change(byte_read(ADD_BRIGHT, 0));        //還原亮度設(shè)定
        else
                bl_bright_change(byte_read(ADD_SHIFTSIGN, 0));        //shift亮度設(shè)定       

        /////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////////
        if(num0==24)                              //on和off
        {
                TR0=0;
                lcd_clear();
                lcd_write_pic(0, 0, welcome_pic, 128, 64);                /*波音會徽*/

                lcd_set_pos(1, 4);
                lcd_write_str("計(jì)算器");                /*計(jì)算器*/
       
                lcd_set_pos(2, 4);
                lcd_write_str("開心波音");                /*開心波音*/
       
                delay_2s();
                lcd_clear();
                lcd_clear_pic();                /*清屏*/
                bl_bright_change(0);        //關(guān)燈
                while(num0!=4)
                        num0 = keyboard_output();            
                        bl_bright_change(byte_read(ADD_BRIGHT, 0));        //還原亮度設(shè)定
               
                reset();                        //復(fù)位
        }
        /////////////////////////////////////////////////////////////////////////
        else if(num0==23)                              //set
        {
                byte_write(ADD_PROG_STATUS, SET ,0);                //寫入設(shè)置
                reset();                        //復(fù)位
        }
                               
        ////////////////////////////////////////////////////////////////////////
        else if(num0==1)                              //mode
        {
                byte_write(ADD_PROG_STATUS, MODE ,0);                //寫入菜單
                reset();                        //復(fù)位
        }
        /////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////
        return num0;
}

void about()
{
                TR0=0;
                lcd_clear();
                lcd_write_pic(0, 0, welcome_pic, 128, 64);                /*波音會徽*/

                lcd_set_pos(1, 4);
                lcd_write_str("計(jì)算器");                /*計(jì)算器*/
       
                lcd_set_pos(2, 4);
                lcd_write_str("開心波音");                /*開心波音*/
                while(keyboard_wake());
}


bandicam 2020-04-03 18-02-18-834.jpg (214.95 KB, 下載次數(shù): 195)

bandicam 2020-04-03 18-02-18-834.jpg

評分

參與人數(shù) 1黑幣 +5 收起 理由
rsx9583 + 5 很給力!

查看全部評分

回復(fù)

使用道具 舉報(bào)

5#
ID:352458 發(fā)表于 2020-4-3 20:29 | 只看該作者
厲害了,這些不僅僅是一個(gè)傳統(tǒng)意義上的科學(xué)計(jì)算器了。他是專業(yè)級別的計(jì)算器了。同學(xué)有一塊專業(yè)級別可以解自控方程的要120大洋的。
回復(fù)

使用道具 舉報(bào)

6#
ID:163090 發(fā)表于 2020-4-5 17:06 來自手機(jī) | 只看該作者
liu5678 發(fā)表于 2020-4-3 20:29
厲害了,這些不僅僅是一個(gè)傳統(tǒng)意義上的科學(xué)計(jì)算器了。他是專業(yè)級別的計(jì)算器了。同學(xué)有一塊專業(yè)級別可以解自 ...

哥們有沒興趣做一個(gè)給大家分享一下呢
回復(fù)

使用道具 舉報(bào)

7#
ID:91165 發(fā)表于 2020-4-7 08:06 | 只看該作者
51也做得這么強(qiáng)大。樓主厲害
回復(fù)

使用道具 舉報(bào)

8#
ID:281879 發(fā)表于 2020-4-7 13:04 | 只看該作者
太牛了 學(xué)習(xí)到了
回復(fù)

使用道具 舉報(bào)

9#
ID:458705 發(fā)表于 2020-4-8 15:35 | 只看該作者
一個(gè)字,牛!
兩個(gè)字,特牛!
三個(gè)字,犇!
回復(fù)

使用道具 舉報(bào)

10#
ID:87631 發(fā)表于 2020-4-12 14:16 | 只看該作者
這人真的是太牛了
回復(fù)

使用道具 舉報(bào)

11#
ID:704585 發(fā)表于 2020-4-14 14:29 | 只看該作者
感謝樓主分享,學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

12#
ID:413383 發(fā)表于 2020-4-14 22:57 | 只看該作者
這人真的是太牛了,感覺太難了
回復(fù)

使用道具 舉報(bào)

13#
ID:17204 發(fā)表于 2020-4-15 15:47 | 只看該作者
好難,只有吃透51才能做出來 ,向大佬看齊,努力學(xué)習(xí)中。。。
回復(fù)

使用道具 舉報(bào)

14#
ID:701252 發(fā)表于 2020-10-17 09:35 | 只看該作者
啥也不說了!謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

15#
ID:88256 發(fā)表于 2020-10-17 10:10 | 只看該作者
那個(gè)按鍵帽有地方買的嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:557411 發(fā)表于 2021-3-20 16:58 | 只看該作者
這個(gè)做得太強(qiáng)大了,樓主厲害
回復(fù)

使用道具 舉報(bào)

17#
ID:894410 發(fā)表于 2021-3-20 19:05 | 只看該作者
注意到了鍵帽。。哈哈
回復(fù)

使用道具 舉報(bào)

18#
ID:59830 發(fā)表于 2021-3-20 19:09 | 只看該作者
非常不錯(cuò), 多級LCD顯示菜單.
程序結(jié)構(gòu)清晰. 值得大家學(xué)習(xí). 謝謝!
回復(fù)

使用道具 舉報(bào)

19#
ID:358564 發(fā)表于 2021-3-20 19:29 | 只看該作者
感謝樓主分享,學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

20#
ID:891775 發(fā)表于 2021-5-3 11:34 來自手機(jī) | 只看該作者
想問一下,判斷運(yùn)算符優(yōu)先級的代碼應(yīng)該怎么寫呀
回復(fù)

使用道具 舉報(bào)

21#
ID:838718 發(fā)表于 2021-7-21 20:11 | 只看該作者
膜拜一下,有機(jī)會挑戰(zhàn)一下自己也搞一個(gè)。
回復(fù)

使用道具 舉報(bào)

22#
ID:507641 發(fā)表于 2021-7-31 18:04 | 只看該作者
很好的學(xué)習(xí)分享實(shí)例51.對于按鍵的處理如果優(yōu)化才是好產(chǎn)品
回復(fù)

使用道具 舉報(bào)

23#
ID:507641 發(fā)表于 2021-7-31 18:17 | 只看該作者
功能強(qiáng)大。只是DS1302走時(shí)誤差大了些。
回復(fù)

使用道具 舉報(bào)

24#
ID:137590 發(fā)表于 2021-8-10 17:33 | 只看該作者
。因此在軟件上需要做到語法識別、優(yōu)先級順序、括號嵌套等功能。 計(jì)算器擁有普通計(jì)算(表達(dá)式與函數(shù)識別、計(jì)算)、計(jì)算結(jié)果存儲/回看、復(fù)數(shù)計(jì)算、矩陣運(yùn)算、函數(shù)圖形、解方程、統(tǒng)計(jì)、最小二乘法求回歸直線、一階常微分方程、單位,進(jìn)制轉(zhuǎn)換、定積分、求導(dǎo)等功能。 有節(jié)電模式,5分鐘不輸入自動關(guān)機(jī),液晶屏亮度5級可調(diào)。
回復(fù)

使用道具 舉報(bào)

25#
ID:137590 發(fā)表于 2021-8-10 17:34 | 只看該作者
一個(gè)字,牛!
兩個(gè)字,特牛!
三個(gè)字,犇!
回復(fù)

使用道具 舉報(bào)

26#
ID:137590 發(fā)表于 2021-10-9 21:12 | 只看該作者
好難,只有吃透51才能做出來 ,向大佬看齊,努力學(xué)習(xí)中。。。
回復(fù)

使用道具 舉報(bào)

27#
ID:970860 發(fā)表于 2021-10-10 06:56 來自手機(jī) | 只看該作者
都是大神
回復(fù)

使用道具 舉報(bào)

28#
ID:648615 發(fā)表于 2021-10-10 23:13 | 只看該作者
真提我女朋友歷害,很有用,謝謝樓主
回復(fù)

使用道具 舉報(bào)

29#
ID:62246 發(fā)表于 2021-10-11 07:48 | 只看該作者
厲害,厲害,大佬級人物。
回復(fù)

使用道具 舉報(bào)

30#
ID:86450 發(fā)表于 2021-10-11 08:13 | 只看該作者
按鍵帽,在哪里買的?
回復(fù)

使用道具 舉報(bào)

31#
ID:304725 發(fā)表于 2021-10-24 23:16 | 只看該作者
有原理圖嗎
回復(fù)

使用道具 舉報(bào)

32#
ID:974131 發(fā)表于 2021-11-6 17:55 | 只看該作者
論壇有你更精彩,謝謝!
回復(fù)

使用道具 舉報(bào)

33#
ID:1003827 發(fā)表于 2022-1-29 20:33 | 只看該作者
大佬就是大牛啊
回復(fù)

使用道具 舉報(bào)

34#
ID:430492 發(fā)表于 2022-1-30 10:17 | 只看該作者
這個(gè)設(shè)計(jì)真是太牛掰了!動手能力也很牛掰!
回復(fù)

使用道具 舉報(bào)

35#
ID:507641 發(fā)表于 2022-3-18 10:40 | 只看該作者
單片機(jī)菜鳥丿 發(fā)表于 2020-4-5 17:06
哥們有沒興趣做一個(gè)給大家分享一下呢

大伽分享吧
回復(fù)

使用道具 舉報(bào)

36#
ID:22218 發(fā)表于 2022-3-19 04:27 | 只看該作者
2732803160 發(fā)表于 2021-5-3 11:34
想問一下,判斷運(yùn)算符優(yōu)先級的代碼應(yīng)該怎么寫呀

這個(gè)我想可以按C語言內(nèi)置的功能
回復(fù)

使用道具 舉報(bào)

37#
ID:195496 發(fā)表于 2022-5-8 07:34 | 只看該作者
真是大神級的人物
回復(fù)

使用道具 舉報(bào)

38#
ID:1042173 發(fā)表于 2022-9-2 00:36 | 只看該作者
樓主是乍作出實(shí)物來的???有電路圖嗎??光有程序也不行呀——起好多彎路的——
回復(fù)

使用道具 舉報(bào)

39#
ID:74784 發(fā)表于 2022-9-3 13:34 | 只看該作者
曾經(jīng)見到過高人用51單片機(jī)
做的彩色屏俄羅斯方塊游戲。
回復(fù)

使用道具 舉報(bào)

40#
ID:961114 發(fā)表于 2022-9-15 10:26 | 只看該作者
大神辛苦了,幫用  屠龍刀三-STC32G12K128核心功能實(shí)驗(yàn)板去改 或 開天斧三-STC8H8K64U核心功能實(shí)驗(yàn)板去改 !  STC將提供贊助
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区在线播放 | 国产精品美女在线观看 | 91精品国产麻豆 | 成人高清视频在线观看 | 亚洲精品一区二区三区 | 日本精品一区二区三区视频 | 免费在线国产视频 | 日韩美女在线看免费观看 | 美日韩精品 | 国产美女视频黄a视频免费 国产精品福利视频 | 国产一区二区不卡 | 亚洲一区二区三区高清 | 久在线| 日韩欧美中文字幕在线观看 | 国产精品久久一区二区三区 | 先锋资源吧 | 国产一区二区三区免费 | 91成人在线视频 | 性精品| 欧美日韩国产在线观看 | av天天爽| 午夜激情在线视频 | 成人三级网址 | 欧美性大战久久久久久久蜜臀 | 国产 亚洲 网红 主播 | 福利精品在线观看 | 精品国产乱码久久久久久牛牛 | 亚洲在线一区二区 | 日韩伦理一区二区 | 免费看国产一级特黄aaaa大片 | 成人福利在线视频 | 午夜丁香视频在线观看 | 亚洲精品视频免费观看 | 伊人久操 | xxxcom在线观看| 国产日韩欧美精品一区二区三区 | 国产精品久久久久久久久久久久久 | 精品久久久久久久久久久久久 | 一区二区三区高清在线观看 | 久草免费在线视频 | 国产精品美女久久久 |