打印

周工电笔0.23,不理想

[复制链接]
514|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2023-7-10 19:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 34af9uc 于 2023-7-10 19:22 编辑

/*****************pms150g电笔**********************/
/*****************qq:774145445*********************/
/*****************ID:共同学习stm8******************/
/*****************ide:0.98A4_20230708**************/
/**************************************************/
//                     pms150g
//                 ______   ______
//             5v-|1-vdd \_/ gnd-8|-gnd      ________
//          led_g-|2-pa7     pa0-7|-jiance--|__10M___|----|    ________
//          led_r-|3-pa6     pa4-6|-bijiao--|__15M___|----|---|__4.7M__|--------220v
//            gnd-|4-pa5_____pa3-5|-feng----|__10R___|--------------------------蜂鸣器
#include        "extern.h"
led_g                bit                pa.7;
led_r                bit                pa.6;
feng                bit                pa.3;
jiance                bit                pa.0;
bijiao                bit                pa.4;
void                chushihua();                //初始化
void                shanshuo1();                //慢闪绿灯+蜂鸣器
void                shanshuo2();                //快闪红灯+蜂鸣器
void                jiance_gao();                //高电位检测3伏
void                jiance_di();                //低电位检测0.5伏
/**************************************************/
void        FPPA0 (void)
{
//.ADJUST_IC        SYSCLK=IHRC/16                //        SYSCLK=1M
//.ADJUST_IC                SYSCLK=ILRC;
.ADJUST_IC        DISABLE;                // No adjust IHRCR, WatchDog Enable

clkmd                =0xf4;                //系统时钟ilrc
clkmd.4                =0;                        //关闭ihrc

chushihua();
/**************************************************/

$                jiance                in,PH;
//        padier                =0b1110_1001;                                //pa4数字停用
//        $                GPCS                VDD*(16)/24;                //0.15
//        $                GPCC                Enable,N_R,P_PA4;



while (1)
{
GPCS                                =0;
$                GPCC                Disable;                        //关闭比较器
//padier                =0b1111_1001;                                //pa4数字启用


$                jiance                in,PH;
//$                jiance                out,high;
$                bijiao                in,X_PH, X_PL;
.delay 10;
stopsys;                //进入掉电模式
if(bijiao ==0)
{
led_g                =1;                //绿灯点亮
.delay 10;
jiance_gao();
.delay 10;
jiance_di();
.delay 10;
led_g                =0;
.delay 10;
}
}
}
/**************************************************/
/*
void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                //...
        }

        popaf;
}
*/
/**************************************************/
void        chushihua()                //初始化
{
$                led_g                out,low;
$                led_r                out,low;
$                feng                out,low;
$                jiance                in,X_PH, X_PL;                //输入,关闭上拉电阻,关闭下拉电阻
$                bijiao                in,X_PH, X_PL;
//padier                =0b1110_1001;                                //pa4数字停用
//$                GPCC                Disable;                        //关闭比较器
//GPCS                                =0;
.delay 20;
}
/**************************************************/
void                shanshuo1()                //慢闪绿灯+蜂鸣器
{
byte shan_a1;

shan_a1                =200;
while(shan_a1 --)
        {
        //if(feng ==1){feng =0;} else{feng =1;}
        pa                ^=1 <<3;                //响蜂鸣器
        }
feng                =0;

shan_a1                =80;
while(shan_a1 --)
        {
        //if(led_g ==1){led_g =0;} else{led_g =1;}
        //pa                ^=1 <<7;                //闪绿灯
        led_g                =1;
        .delay                30;
        led_g                =0;
        .delay                70;
        }
led_g                =0;
}

/**************************************************/
void                shanshuo2()                //快闪红灯+蜂鸣器
{
byte shan_a1;

shan_a1                =100;
while(shan_a1 --)
        {
        //if(feng ==1){feng =0;} else{feng =1;}
        pa                ^=1 <<3;                //响蜂鸣器
        }
feng                =0;

shan_a1                =40;
while(shan_a1 --)
        {
        //if(led_g ==1){led_g =0;} else{led_g =1;}
        //pa                ^=1 <<6;                //闪红灯
        led_r                =1;
        .delay                30;
        led_r                =0;
        .delay                70;
        }
led_g                =0;
}
/**************************************************/
void                jiance_gao()                //高电压检测3伏
{
$                jiance                in,pl;                        //正电压比较一次
$                GPCS                VDD*(16)/24;                //3.3v
$                GPCC                Enable,N_R,P_PA4;
if(gpcc.6)
        {
        shanshuo2();                //快闪红灯+蜂鸣器
        return;
        }
$                jiance                in,ph;                        //反电压比较一次
$                GPCS                VDD*(16)/24;                //3.3v
$                GPCC                Enable, N_PA4,P_R;
if(gpcc.6)
        {
        shanshuo2();                //快闪红灯+蜂鸣器
        return;
        }

}
/**************************************************/
void                jiance_di()                //低电位检测0.5伏
{
$                jiance                in,pl;                        //正电压比较一次
$                GPCS                VDD*(8)/24;                //1.6v
$                GPCC                Enable,N_R,P_PA4;
if(gpcc.6)
        {
        shanshuo1();                //慢闪绿灯+蜂鸣器
        return;
        }
$                jiance                in,ph;                        //反电压比较一次
$                GPCS                VDD*(8)/24;                //1.6v
$                GPCC                Enable, N_PA4,P_R;
if(gpcc.6)
        {
        shanshuo1();                //慢闪绿灯+蜂鸣器
        return;
        }

}
/**************************************************/

01.jpg (288.45 KB )

01.jpg

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

300

主题

457

帖子

60

粉丝