搜索
bottom↓
回复: 16

C8051f点灯程序,一个端口赋值是怎么实现的?

[复制链接]

出0入0汤圆

发表于 2012-6-18 19:22:48 | 显示全部楼层 |阅读模式
C8051f点灯程序,一个端口赋值是怎么实现的?复位端口怎么初始化,时钟怎么初始化设置呀?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-6-19 09:31:40 | 显示全部楼层
什么叫怎么实现的?就是向对应的P口里面写入数据就可以了。

出0入0汤圆

发表于 2012-6-19 09:52:23 | 显示全部楼层

/*****************************************************************************
闪烁灯实验  本实验采用P3.4口输出  短接J11  实验时将跳线帽接至+3V

*****************************************************************************/
#include <c8051f020.h>     
              
#define uchar unsigned char
#define uint unsigned int

sbit LED1        =        P0^6;
//sbit LED2        =        P5^5;          //P5不能位定义???
sbit LED2        =        P3^5;

void PORT_Init (void)
{
   XBR2    = 0x40;                                /*使能交叉开关*/
   //P3MDOUT  =0xff;
}
/*******************************/
void delay(uint z)
{
        uint x,y;

        for(x=0;x<z;x++)
                for(y=0;y<121;y++);       
}
/*******************************/
void main (void)
{
   WDTCN = 0xde;
   WDTCN = 0xad;   //禁止看门狗定时器

   PORT_Init ();
   while (1)
   {
           LED1=0;
           LED2=1;
           delay(200);
           LED1=1;
           LED2=0;
           delay(200);               
   }
}

出0入0汤圆

发表于 2012-6-19 09:52:27 | 显示全部楼层
端口赋值怎么实现?直接写就成了,你搞的那么复杂的干什么?

出0入0汤圆

发表于 2012-6-19 09:55:51 | 显示全部楼层
本帖最后由 jetli 于 2012-6-19 10:59 编辑

网络卡,一不小心发重复了,修改之。

另外,楼主可以用
c8051
做关键字搜索论坛,有很多成套例子的,下载后试试就明白了。

出0入0汤圆

 楼主| 发表于 2012-6-19 10:15:52 | 显示全部楼层
P0^6这个是什么意思?

出20入70汤圆

发表于 2012-6-19 10:49:23 | 显示全部楼层
dengxm2009 发表于 2012-6-19 10:15
P0^6这个是什么意思?

你咋啥也不晓得呢?

P0^6即P0.6

在C语言中用sbit定义一下而已。

出0入0汤圆

 楼主| 发表于 2012-6-19 11:37:33 | 显示全部楼层
^  这个符号是个啥东西?

出0入0汤圆

发表于 2012-6-19 12:36:15 | 显示全部楼层
看来是新手中的新手中的新手中的新手中的......................................

出0入0汤圆

发表于 2012-6-20 01:27:28 | 显示全部楼层
回去看看C

出0入0汤圆

发表于 2012-6-20 08:38:35 | 显示全部楼层
呵呵。。。。。。

出0入0汤圆

发表于 2012-6-20 09:18:37 | 显示全部楼层

出0入0汤圆

发表于 2012-6-20 14:45:02 | 显示全部楼层
超级新手第一步,随便找个demo看看就明白了

出0入0汤圆

 楼主| 发表于 2012-6-20 18:20:03 | 显示全部楼层
本帖最后由 dengxm2009 于 2012-6-20 18:24 编辑

#include <c8051f020.h>
sbit led=P1^4;
main()
{
    int i;
    while(1) {
        led=0;
        for (i=0; i<=20000; i++)
        {
        }
        led=1;
        for (i=0; i<=20000; i++)
        {
        }

    }

}

出0入0汤圆

 楼主| 发表于 2012-6-20 18:25:14 | 显示全部楼层
Load "C:\\ht_test\\diandeng"
BS \DIANDENG\7
BS \DIANDENG\11
************************************
*** Watchdog Timer Reset Occured ***
************************************
************************************
*** Watchdog Timer Reset Occured ***
************************************

这是怎么回事?

出0入0汤圆

发表于 2012-6-21 09:44:08 | 显示全部楼层
看来你要关闭软件狗!因为时间到了软件狗就需要赋值给它!如果没有就会引起RESET.如果你对它不熟,最好在代码最前面就关闭它,方法如下:

   PCAOMD|=0xBF; //BIT6 是软件狗定时的使能位!WDTE(BIT6)=0就DISABLE它了!!(你可看看MCU的DATASHEET)
希望对你有用!!
  

出0入0汤圆

发表于 2012-6-26 17:50:27 | 显示全部楼层
所有(目前我遇到的C 8051F单片机),为保证程序正常工作,要么 喂狗,要么 关狗
关狗语句:          
       WDTCN = 0xde;                       
           WDTCN = 0xad;       
在主程序一开始就加上 就没有你这个问题了.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 20:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表