哈!高三一个月放假回来了..终于有时间造电磁q.于是写了个程序
eleunx2012/09/15电磁炮 IP:广东
这个是未测试的程序.我在上课时偷偷写的.难免有错误..
路过的人可以指出错误...
三级电磁
/*有AD转化函数-检测电容的电压- 电炮触发中断 con为zvs+ne555的控制端,高电平停止充电
g1 g2 g3 为3级电炮的控制口 和con都是强挽腿i/o 加上我是用stc12c2052a ,所以顺便测试串口通信
并且用315M发送到89c52上去..在通过1602显示出来真实电压值


未测试!!!!!
求人观摩!
*/
#include<stc12c2052ad.h>
#define uchar unsigned char
#define uint unsigned int
float AD1,tempdat;
sbit G1=P1^0;
sbit G2=P1^1;
sbit G3=P1^2;
sbit CON=P1^3;
void delayms (unit x)
{
    uint i,j;
    for(i=x;i>0;i--)
        for(j=110;i>0;i--);
}
void AD_init()
{
    P1M0=0x10;
    P1M1=0x10;
    ADC_CONTR=0xe0;
    delayms(100);
}
void GET_AD (uchar channel)
{
    uchar AD_finished=0;
    int result;
    ADC_CONTR|=channel;
    ADC_CONTR|=0x08;
    while(AD_finished==0)
    {
        AD_finished=(ADC_CONTR&0x10);
    }                                
    result=AD_DATA;
    ADC_CONTR&=0xf7;
    return(result);
}
float AD_AV (uchar channel)
{
    float Val_AV=0;
    uchar num;
    for(num=100;num>0;num--)
    {
        Val_AV+=GET_AD(channel);
    }
    Val_AV/=100.0;
    Val_AV=VAl_AV*5.0/256;
    return (Val_AV);
}
void CG_init()
{
    G1=0;
    G2=0;
    G3=0;
    CON=1;
    EA=1;
    EX0=1;
    IT0=1;    
}
void delayus(uint y)
{
    while(y--);
}
void con_fire() interrupt 0
{
    bit flag=0;
    if(flag==0)
    {
        CON=0;
        flag=1;
    }
    else
    {
        CON=1;
        daleyms(10);
        G1=1;
        delayus(500);
        G1=0;
        G2=1;
        delayus(350);
        G2=0;
        G3=1;
        delayus(250);
        G3=0;
        flag=~flag;
    }    
}
void AD_SEG_limite()
{
    AD1=AD_AV(4);
    tempdat=AD1/0.009049;
    if(tempdat>=430)
    {
        CON=1;
    }
}
void NET_SENT_init()
{
    TMOD=0x20;
    TH1=0xf4;
    TL1=0xf4;
    SM0=1;
    SM1=1;
    TB8=0;
    EA=1;
    ES=1;
    TR1=1;
    TI=0;
}
void NET_SENT()
{
    float tempsent;
    tempsent=tempdat;
    ACC=tempdat;
    TB8=P;
    SBUF=tempsent;
    while(!TI);
    TI=0;
}
void main()
{
    AD_init();
    CG_init();
    NET_SENT_init();
    while(1)
    {
        NET_SENT();
    }
}
来自:物理高能技术 / 电磁炮
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
陈迪林
11年9个月前 IP:未同步
451986
做成功没啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
eleunx作者
11年9个月前 IP:未同步
451987
没有..电路还没搭建..
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
KC-34849
11年9个月前 IP:未同步
452044
我用arduino 超TM简单的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
eleunx作者
11年9个月前 IP:未同步
452048
感觉51可玩性好点…ard没有接触过…不知道怎么玩…
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

eleunx
笔友
文章
28
回复
263
学术分
0
2012/05/12注册,6年4个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}