| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:求大神帮我翻译成中文可好啊啊啊啊
只看楼主 加入收藏
zk616564146
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
求大神帮我翻译成中文可好啊啊啊啊
#include <reg51.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uint dat;
uint x;
sbit a=P1^0 ;
sbit b=P1^1 ;
sbit aa=P1^2;
unsigned char PWM=0x7f;
void delay_ms(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<100;j++);
}
}
TIME() interrupt 1
{
uint n,m;
TH0=(65535-15000)/256;
TL0=(65535-15000)%256;
n++;
if(n==40)
{   
if(x==1)         
b=!b;
if(x==2)
a=!a;
n=0;
}
}
void main(void)
{
EA=1;
ET0=1;
TMOD=0X01;
TR0=0;
TH0=(65535-15000)/256;
TL0=(65535-15000)%256;
a=0;
b=0;
P1=0x00;
P2=0xf0;
while(1)
{
dat=(P2&0xf0);
switch(dat)
{
case 0x40:
a=0;
b=1;
TR0=1;x=1;
delay_ms(10);
break;
case 0x10:
a=1;
b=0;x=2;
delay_ms(10);
break;
case 0x80:
a=0;
b=0 ;
x=0;
delay_ms(10);
break;
}
}
}
搜索更多相关主题的帖子: include 中文 
2015-05-04 14:29
zk616564146
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-4
收藏
得分:0 
木有人嘛
2015-05-04 15:25
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:5 
问这种问题你至少该告诉大家你的外围接口吧,比如P1、P2哪些引脚是输入,哪些是输出,各有什么意图?

虽然不知道你的程序想干什么,但很明显你的时间中断就是错的,得不到你想要的效果。

重剑无锋,大巧不工
2015-05-04 18:44
zk616564146
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-4
收藏
得分:0 
回复 3楼 beyondyf
大哥能否加个QQ详聊下。。
2015-05-04 19:43
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
不是不帮你,实在没时间。已经多年不用QQ。

重剑无锋,大巧不工
2015-05-04 20:12
AleTiff
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:64
专家分:157
注 册:2015-3-30
收藏
得分:5 
以下代码仅供参考,纯属纸上谈兵,未做任何测试:

程序代码:
#include <reg51.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int

const uchar code H0 = (65535-15000)/256;
const uchar code L0 = (65535-15000)%256;
uchar dat;
uchar x;
uchar n;

sbit a = P1^0 ;
sbit b = P1^1 ;

// 目前未使用:
// sbit aa= P1^2;
// unsigned char PWM=0x7f;

void delay_ms(uint ms)
{
    uint i,j;
    for(i=0;i<ms;i++)
    {
        for(j=0;j<100;j++);
    }
}

void time() interrupt 1
{
    
    TH0 = H0;
    TL0 = L0;
    n++;
    if(n == 40)
    {    
        if(x==1) b = !b;
        if(x==2) a = !a;
        n = 0;
    }
}

void main(void)
{
    EA   = 1;
    ET0  = 1;
    TMOD = 0x01;
    TR0  = 0;
    TH0  = H0;
    TL0  = L0;
    P1   = 0x00;
    // 之前的代码, 需要先让 P2 接收到 0x40 后
    // 电路才会正常工作,为测试目的, P2 设成 0x40
    // 原值 -> P2   = 0xf0;
    P2   = 0x40;

    while(1)
    {
        dat = (P2 & 0xf0);
        switch(dat)
        {
        case 0x40:
            // 先让 P1^0 低电位, P1^1 高电位
            // P1^1 由中断产生 PWM (高低电位无限循环)
            a = 0;
            b = 1;
            x = 1;
            // 计数启动
            TR0 = 1;            
            delay_ms(10);
            break;
        case 0x10:
            // 先让 P1^0 高电位, P1^1 低电位
            // P1^0 由中断产生 PWM (高低电位无限循环)
            a = 1;
            b = 0;
            x = 2;
            delay_ms(10);
            break;
        case 0x80:
            // 无所事事, P1^0 和 P1^1 均常开
            a = 0;
            b = 0 ;
            x = 0;
            delay_ms(10);
            break;
        }
        // 拉高 P2
        P2 = 0xF0;
        // TODO: 这里放入 P2 口数据接收处理的代码
        // .....
    }
}
2015-05-05 10:39
zk616564146
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-4
收藏
得分:0 
回复 6楼 AleTiff
兄弟,能否加个QQ聊下、、、616564146
2015-05-05 14:25
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:5 
莫非是作业题?
2015-05-05 15:35
陆思雨
Rank: 2
等 级:论坛游民
威 望:1
帖 子:36
专家分:42
注 册:2014-9-17
收藏
得分:5 
是51单片机的实验吧?
才做了,很简单的
2015-05-05 18:22
快速回复:求大神帮我翻译成中文可好啊啊啊啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021258 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved