您的位置:控制工程论坛网论坛 » 软件与程序 » 单片机C程序-入门

hewww88

hewww88   |   当前状态:离线

总积分:84  2025年可用积分:0

注册时间: 2008-07-14

最后登录时间: 2009-08-26

空间 发短消息加为好友

单片机C程序-入门

hewww88  发表于 2008/9/21 22:11:02      1551 查看 3 回复  [上一主题]  [下一主题]

手机阅读

单片机初始入门,我学的时后,走过很多弯路,其实,单片机用于

工业控制入门并不是我们想象的那样难.就是因为看书没人指

点,连如后这样简单的流程控制C程序都无处找,这里仅提供给

初学者,共同进步,象这样的简单入门,10天就够了,千万别放弃

哦,因为当初我也打算放弃,认为非常难.10天的路我确走了大

半年,希望走在更前面的朋有也多提供一些工控程序,互相学

习进步.   hewww88@163.com

/**************************************************************
;江华单片机
;作者:江华  
;outdisp1.c
;硬件:HE-DKB-1工控板(250元,17路输入,8路输出。10天教会使用于流程等控制,
;用途:代替PLC对手动改自动机台,流水线自动控制等,投资少作用大。
;芯片:宏晶STC89C52RC tel:15959652901
;功能:C语言写的流程状态转移
;s1即P0^0闭合;程序运行后,继电器依次吸合,同时,LED数码管依次显示7~0
;当然用在流程中加上延时调整,中间栽俳獿EDXX改为到位感测点一样哦,呵呵
;***************************************************************/
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char  //0-255 没有用到可省掉

sbit  Dat  =P3^1;  //可不要
sbit  Clk =P3^0;  //可不要
sbit  Cntr =P3^2;
sbit  s1 = P0^0;  // P大写s小写
sbit  s2 = P0^1; 
sbit  s3 = P0^2;
sbit  s4 = P0^3;
sbit  s5 = P0^4;
sbit  s6 = P0^5;
sbit  s7 = P0^6;
sbit  s8 = P0^7;

sbit  s9 = P0^0;  // P大写s小写
sbit  s10 = P2^1; 
sbit  s11 = P2^2;
sbit  s12 = P2^3;
sbit  s13 = P2^4;
sbit  s14 = P2^5;
sbit  s15 = P2^6;
sbit  s16 = P2^7;//(S17  计数T0怎么加入呢?)

sbit  LED1 = P1^7;
sbit  LED2 = P1^6;
sbit  LED3 = P1^5; 
sbit  LED4 = P1^4;
sbit  LED5 = P1^3;
sbit  LED6 = P1^2;
sbit  LED7 = P1^1;
sbit  LED8 = P1^0;

void mDelay(unsigned int Delay)  //延时子程序0-65535
{ unsigned char i;
 for(;Delay>0;Delay--)
 { for(i=0;i<159;i++)
  {;}     
 }
} //经精确调整后延时503us

void main ()
{
  P1 = 0x00;

  while (1)
  {
//---------------------------
  Cntr = 0;   
    _nop_ ();
    _nop_ ();
    _nop_ ();
    _nop_ ();
 if (s1= =0) {LED1 = 1;LED8 = 0;}  //此工控板1为输出。
  Cntr = 1;
    _nop_ ();
    _nop_ (); 
    _nop_ ();
    _nop_ ();
  mDelay(20000);
//---------------------------
  Cntr = 0;
  if (LED1 = = 1) {LED2 = 1;LED1=0;}  //如果LED1=1这是错的哦,LED1 = = 1才可
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
//---------------------------
  Cntr = 0;
  if (LED2 = = 1) {LED3 = 1;LED2=0;}  //如果LED1=1这是错的哦,LED1= =1才可
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
//---------------------------
  Cntr = 0;
  if (LED3 = = 1) {LED4 = 1;LED3=0;}  //91
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
  //---------------------------
  Cntr = 0;
  if (LED4 = = 1) {LED5 = 1;LED4=0;} 
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
  //---------------------------
  Cntr = 0;
  if (LED5 = = 1) {LED6 = 1;LED5=0;}  //如果LED1=1这是错的哦,LED1 == 1才可
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
 //---------------------------
  Cntr = 0;
  if (LED6 = = 1) {LED7 = 1;LED6=0;}  //如果LED1=1这是错的哦,LED1= =1才可
  Cntr = 1;
    _nop_ ();
    _nop_ ();
    _nop_ (); 
    _nop_ ();
  mDelay(20000);
 //---------------------------
   Cntr = 0; 
  if (LED7= =1) {LED8=1;LED7=0;}  //LED2= =1与LED2 = = 1是一样哦,换s2==0一样。呵呵!
  //else P1 = 0xff; //128  此处不用
  if (s1= =1) {P1 = 0x00;}
  Cntr = 1;   
    _nop_ (); 
    _nop_ ();
    _nop_ ();
    _nop_ (); 
  mDelay(20000);
  }
 }

1楼 0 0 回复
  • szunivo90

    szunivo90   |   当前状态:离线

    总积分:75  2025年可用积分:0

    注册时间: 2008-07-17

    最后登录时间: 2009-08-03

    空间 发短消息加为好友

    szunivo90   发表于 2008/7/17 14:26:18

    我公司现主要营销PQI,INNODISK品牌的电子盘(DOM)32M-6G(容量);以及2.5寸或者1.8寸的工业SSD硬盘64M-128G(容量);PQI,Innodisk,Sandisk工业CF卡32M-8G(容量);还有M-SYSTEMS电子盘DOM,DOC 8M-128M(容量)等常温和宽温的存储产品公司长期备有现货PQI工业电子盘DOM和CF卡质保5年.,价格优惠,如果有需要的朋友可随时联系我!0755-61637296(梁小姐) QQ:530461699 MSN:anna@univo.com.cn
    2楼 回复本楼

    引用 szunivo90 2008/7/17 14:26:18 发表于2楼的内容

  • zh_zh224524

    zh_zh224524   |   当前状态:离线

    总积分:61  2025年可用积分:0

    注册时间: 2008-09-20

    最后登录时间: 2008-09-20

    空间 发短消息加为好友

    zh_zh224524   发表于 2008/9/20 13:32:14

    3楼 回复本楼

    引用 zh_zh224524 2008/9/20 13:32:14 发表于3楼的内容

总共 , 当前 /