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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Keil編譯顯示打不開頭文件,出現(xiàn) before 'jump...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:567836 發(fā)表于 2019-6-30 13:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
# include "bsp.h"
# define S        5.0f
uint8_t JumpTime = 0;                /* 外部中斷0邊沿跳變次數(shù)統(tǒng)計(jì) */
uint8_t MeasureOK = 0;        /* 測量完成標(biāo)志 */
uint32_t Time = 0;                        /* 用于計(jì)算兩次邊沿跳變的時(shí)間 */
uint8_t str[20] = {0};        /* LCD顯示緩存區(qū) */


sbit key = P3^2;                                /* 外部中斷引腳 */

int main(void)
{
        bsp_Config();                /* 板級外設(shè)初始化 */
        
        EX0 = 1;                /* 開啟外部中斷0 */
        
        bsp_lcd_ShowString(1, 0, "Speed Measuring");
        while(1)
        {
        }
}

void EX0_IRQ(void) interrupt 0
{
        
        float speed = 0.0f;
        JumpTime++;                /* 統(tǒng)計(jì)中斷次數(shù) */
        
        while(key == 0);                /* 等待按鍵被釋放 */
        
        if(JumpTime >= 2 && MeasureOK == 0)                /* 按鍵已經(jīng)按了兩次,計(jì)算速度 */
        {
                JumpTime = 0;                /* 清除跳變量 */
                MeasureOK = 1;        /* 已經(jīng)完成測量了 */
                speed = (float)((S /Time) * 1000.0);
                Time = 0;
                sprintf(str,"%f m/s", speed);
                bsp_lcd_ShowString(0, 1, str);
        }
}


#include "bsp.h"
void bsp_Config(void)
{
        bsp_lcd_Config();
        bsp_tim_Config();
}

void bsp_DelayMs(uint8_t ui_nMs)
{
        uint8_t a = 0, b = 0;
        
        for(; ui_nMs > 0; ui_nMs --)
        {
                for(a = 199; a > 0; a --)
                {
                        for(b = 1; b > 0; b --);
                }
        }
}
# include "bsp.h"
# include "app.h"
# define TIMS (65536 - FOSC/1000)

void bsp_tim_Config(void)
{
        TMOD = 0x01;
        TL0 = TIMS;
        TH0 = TIMS >> 8;
        TR0 = 1;
        ET0 = 1;
        EA = 1;
}

static count = 0;
extern uint8_t JumpTime;
extern uint32_t Time;
void timer0_IRQ(void)        interrupt 1 using 1
{
        TL0 = TIMS;                                /* 需要重裝初值 */
        TH0 = TIMS >> 8;
        
        if(JumpTime == 1)                /* 只有在第一次按下后才開始計(jì)數(shù),直到第二次按下 */
        {
                Time ++;
        }
}
static void bsp_lcd_WriteCmd(uint8_t cmd)
{
        LCD_EN = 0;                        /*  使能LCD1602  */
        LCD_RD = 0;                        /*  選擇發(fā)送命令  */
        LCD_RW = 0;                        /*  選擇寫入  */
        
        LCD_DATA = cmd;                /* 寫入命令 */
        bsp_DelayMs(5);                /* 等待數(shù)據(jù)穩(wěn)定延時(shí)5ms */
        
        LCD_EN = 1;                                /* 寫入時(shí)序 */
        bsp_DelayMs(10);
        LCD_EN = 0;        
}
static void bsp_lcd_WriteData(uint8_t dat)
{
        LCD_EN = 0;
        LCD_RD = 1;
        LCD_RW = 0;
        
        LCD_DATA = dat;        //將數(shù)據(jù)放到LCD里
        bsp_DelayMs(1);
        
        LCD_EN = 1;
        bsp_DelayMs(5);
        LCD_EN = 0;
}
void bsp_lcd_Config(void)
{
        bsp_lcd_WriteCmd(0x38);                /* 開顯示 */
        bsp_lcd_WriteCmd(0x0c);                /* 不顯示光標(biāo) */
        bsp_lcd_WriteCmd(0x06);                /* 寫一個(gè)指針加1 */
        bsp_lcd_WriteCmd(0x01);                /* 清屏 */
        bsp_lcd_WriteCmd(0x80);                /* 指針復(fù)位 */
}
static void bsp_lcd_SetPos(uint8_t x, uint8_t y)
{
        /* 坐標(biāo)超出范圍了 */
        if(x > 15) return ;
        if(y > 1) return ;
        
        if(y == 0)        bsp_lcd_WriteCmd(x + 0x80);
        else if(y == 1) bsp_lcd_WriteCmd(x + 0xc0);        
}
void bsp_lcd_ShowNum(uint8_t x, uint8_t y, uint32_t num, uint8_t xbit)
{
        uint8_t temp = 0;
        
        while(xbit)
        {
                temp = num % 10;                /*  取得要顯示的個(gè)位  */
               
                /*  從最后一位開始顯示  */
                bsp_lcd_SetPos(x + xbit - 1, y);
               
                bsp_lcd_WriteData(temp + 0x30);
                num/=10;                /* 已經(jīng)顯示完個(gè)位了,把個(gè)位扔掉 */
                xbit --;                /* 由于是從后往前開始顯示,所以x坐標(biāo)軸要減小 */
        }
}
void bsp_lcd_ShowChar(uint8_t x, uint8_t y, uint8_t c)
{
        bsp_lcd_SetPos(x, y);               
        bsp_lcd_WriteData(c);
}
void bsp_lcd_ShowString(uint8_t x, uint8_t y, uint8_t *string)
{
        uint8_t i = 0;
        
        while(*(string + i))                /* 在字符串沒有結(jié)束就一直顯示 */
        {
                bsp_lcd_ShowChar(x + i, y, *(string + i));
                i++;
        }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:577549 發(fā)表于 2019-7-8 15:48 來自觸屏版 | 只看該作者
keil文件使用方法你可以查一下,貌似只能打開單片機(jī)應(yīng)用的文件,希望對你有幫助
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 不卡一区二区三区四区 | 亚洲精品在线观看网站 | 日日夜精品视频 | 欧美在线一区二区三区 | 免费在线毛片 | av中文字幕在线观看 | 欧美日本一区 | 久久久久久久久久久久久九 | 欧美成人精品一区二区男人看 | 天天草天天干天天 | 国产日韩一区二区三免费 | 怡红院怡春院一级毛片 | 九九久久久 | 香蕉久久久久久 | 国产高清一区二区 | 天天操 天天操 | 亚洲国产一区二区三区, | 亚洲欧美日韩在线 | 激情一区二区三区 | 日韩欧美一区二区三区 | 91久久夜色精品国产网站 | 成人在线播放 | 成人国产一区二区三区精品麻豆 | 国产一区二区a | 人人鲁人人莫人人爱精品 | 欧美在线一区二区三区 | 在线欧美 | av黄色免费| 亚洲视频免费在线观看 | 一区欧美 | 在线观看中文字幕亚洲 | 国产精品一区二区三区在线 | 久国产精品| 久久久久久久久久一区 | 亚洲日本乱码在线观看 | 毛片一区二区 | 日日操视频 | 狠狠干天天干 | 一区二区三区欧美 | 一区二区三区久久久 | 午夜影院网站 |