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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

基于stc8g1k08a單片機的簡易示波器和超聲波測距二合一小制作 附程序

查看數: 14734 | 評論數: 18 | 收藏 25
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-4-22 15:20

正文摘要:

stc8g1k08a是深圳宏晶科技的一款8腳8位兼容51系列的單片機  價格很便宜 但麻雀雖小五臟俱全 且速度還挺快下面就是用它做的小東東 精度不是很高 本人也是剛入門 水平有限 希望大家多多指教共兩個按鍵 :按 ...

回復

ID:1110792 發表于 2024-9-13 22:12
厲害,有器件,但不知道能不能弄成,學習了。
ID:681572 發表于 2023-4-14 09:17
請問這個是用keil4還是keil5建立的工程??建立工程時選擇哪個器件?為什么我的keil4 C51里面沒有這個stc8g1k08a器件。浚浚
ID:476058 發表于 2022-10-15 22:33
共同學習,共同進步,向大佬學習!
ID:1042937 發表于 2022-8-27 15:48
有時間研究一下
ID:185675 發表于 2022-6-8 22:32
//一個簡單的在stc8g1ko8A上可以運行的小demo,可以用于簡單的AD測量,define修改一下就行了
#define TIME_3S 30000
#define TIME_2S 30000
#define TIME_1MS 100
#define  TIME_2MS 200
#define  TIME_5MS 500
// 狀態機
#define READY_ST 1
#define CAPCHARGE 2
#define MOT_ST 3
#define STOP_ST 4
#define CHARGE_ST 5
#define DELAY_ST 6
// 信號接收
// 狀態機
#define keyRun
#define keyMot
// 數值
#define U500 20
#define U6500 500
#define U8000 700

unsigned int STATUS
unsigned int ADS
// 計數器
unsigned int keyRunCounter
unsigned int keyShutDownCounter
unsigned int shortCurrentCounter
unsigned int delaySTCounter
unsigned int capChargeCounter
unsigned int OVMonitCounter_1
unsigned int OVMonitCounter_2


mian()
{
case Status
    Run:
        Gpio.init;//keyRun 為推挽
    Mot:
        Gpio.init2;//keyRun 為input
    default:
        Gpio.init;//初始化為Run
}
void ISR()
{
    /*濾波器*/

    /*保護*/
    Protect();
    /*按鍵檢測*/
    keyMonitor();

    /*狀態與動作*/
    switch STATUS:
    case READY_ST:
        setGPIO1;
    case CHARGE_ST:
        setGPIO1();
    case DELAY_ST:
        setGPIO1();
    case MOT_ST:
        setGPIO1();
    case STOP_ST:
        setGPIO1();   
    default:   
}


/******************************
*執行保護邏輯
****************************/
void Protect()
{
    // Short State monitor
    if (STATUS != READY_ST) && (ADS < U500)//在待機時不檢測,其他時段都不放過
    {
        shortCurrentCounter++;
    }
    else
    {
        shortCurrentCounter = 0;
    }
    if (shortCurrentCounter > TIME_1MS)
    {
        shortCurrentCounter = 0;
        STATUS = STOP_ST;
        return;
    }
    // OverVoltage Monitor 1
    if (STATUS != READY_ST) && (ADS > U500)//
    {
        OVMonitCounter_1++;
    }
    else
    {
        OVMonitCounter_1 = 0;
    }
    if (OVMonitCounter_1 > OVMonitCounter_1Debounce)
    {
        OVMonitCounter_1 = 0;
        STATUS = DELAY_ST;
    }
    // OverVoltage Monitor 2
    if (STATUS != READY_ST) && (ADS > U7500)//
    {
        OVMonitCounter_2++;
    }
    else
    {
        OVMonitCounter_2 = 0;
    }
    if (OVMonitCounter_2 > OVMonitCounter_2Debounce)
    {
        OVMonitCounter_2 = 0;
        STATUS = DELAY_ST;
    }
}
/******************************
*按鍵檢測邏輯
****************************/
void keyMonitor()
{
    //待機狀態,長按*秒開機
    if (STATUS == READY_ST) && (keyRun == 1)//待機狀態,長按3秒開機
    {
        keyRunCounter++;
    }
    else
    {
        keyRunCounter = 0;
    }
    if (keyRunCounter > TIME_3S)
    {
        keyRunCounter = 0;
        STATUS = CHARGE_ST;
    }
    //運行狀態,信號消失1ms關機
    if ((STATUS == CHARGE_ST) || (STATUS == DELAY_ST) || (STATUS == CAPCHARGE)  )&& (keyRun == 0)
    {
        keyShutDownCounter++;
    }
    else
    {
        keyShutDownCounter = 0;
    }
    if (keyShutDownCounter > TIME_3S)
    {
        keyShutDownCounter = 0;
        STATUS = READY_ST;
    }
   
    /*母線大電容充電2秒,開始工作*/
    if (STATUS == CAPCHARGE)  
    {
        if  (capChargeCounter < TIME_2S)
        {
            capChargeCounter++;
        }
        else
        {
            capChargeCounter = 0;
            STATUS = CHARGE_ST;
        }
    }
    //delay狀態,1ms后使能檢測
    if ((STATUS == DELAY_ST) ) //&& (ADS < U500) delay 之后1ms再次檢測,不夠再加,夠了就再次進入delay
    {
        delaySTCounter++;
    }
    else
    {
        delaySTCounter = 0;
    }
    if (delaySTCounter > TIME_2MS)
    {
        delaySTCounter = 0;
        STATUS = CHARGE_ST;
    }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:558833 發表于 2022-2-14 21:29
面包板插線,直接下載成功
ID:953759 發表于 2021-7-17 10:57
老董 發表于 2021-4-22 18:55
謝謝版主幫我整理 忘了告訴大家 單片機下載程序是 時鐘選擇33.1776MZ

您好,這個時鐘是怎么確定的呢?
ID:849913 發表于 2021-7-10 11:42
kmikmi 發表于 2021-7-5 22:09
把文件頭改一下就能編譯
#include "reg51.h"
#include "intrins.h"

謝謝指點 我還不知道有這個方法  所以把reg51.h里面加了很多與8G相關的東西
ID:927469 發表于 2021-7-5 22:09
lin2453676722 發表于 2021-5-2 20:10
keil5好像編譯不成功

把文件頭改一下就能編譯
#include "reg51.h"
#include "intrins.h"
#include"main.h"
#include<math.h>
改成:
#include <STC8G.h>
#ifndef     __STC8G_H__
#define     __STC8G_H__
ID:849913 發表于 2021-6-3 15:26
測距精度可以用軟件調節 前提就是做著玩的 目的是對示波器和測試儀構思的實踐
ID:414556 發表于 2021-5-30 23:19
測距精度高不高,有沒有精度微調
ID:849913 發表于 2021-5-30 21:41
zhike 發表于 2021-5-30 10:00
這個能做成示波器嗎?

簡易的 都是出于自己對示波器工作原理的理解  頻率和精度都不高 主要是出于興趣玩玩
ID:601214 發表于 2021-5-30 10:00
這個能做成示波器嗎?
ID:915390 發表于 2021-5-3 22:00
學到了,有空弄一個
ID:431787 發表于 2021-5-2 20:10
keil5好像編譯不成功
ID:756506 發表于 2021-4-24 11:21
不錯,有時間來做一個
ID:857072 發表于 2021-4-24 11:15
有意思,下來有時間研究一下
ID:849913 發表于 2021-4-22 18:55
謝謝版主幫我整理 忘了告訴大家 單片機下載程序是 時鐘選擇33.1776MZ

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产18 | 久草免费在线 | 天天插日日操 | 中文字幕视频在线 | 久久久综合| 亚洲天堂精品久久 | 亚洲一区中文字幕 | 一区二区三区在线 | 日韩不卡在线 | 成人免费福利 | 色一阁| 国产精品久久久久久久免费观看 | 亚洲精品视频在线看 | 男女一区二区三区 | 久草中文在线观看 | 成人在线播放 | 久久久久久久亚洲精品 | 免费国产黄网站在线观看视频 | 日韩电影免费在线观看中文字幕 | 二区国产 | 91免费小视频 | 亚洲成人一区 | 91综合网 | 在线看av网址| 色综合久久天天综合网 | 久久99蜜桃综合影院免费观看 | 中文字幕一区二区三区精彩视频 | 欧美天堂 | 久久久精| 天天综合永久 | av官网在线 | 国产精品日韩欧美一区二区三区 | 国产成人网 | 91人人爽 | 日日夜夜精品视频 | 国产综合精品 | 草久久 | 天天操天天摸天天爽 | 最新中文字幕在线 | 欧美精品欧美精品系列 | 精品国产青草久久久久福利 |