第一个C51程序

来源:互联网 发布:安东尼霍普金斯 知乎 编辑:程序博客网 时间:2024/04/30 13:41
 总算写出了第一个C51程序,虽然简单,还是值得庆祝!

源码:
#include <reg51.h>

#define  EPIN  P3_5
#define  RWPIN P3_6
#define  RSPIN P3_7
#define  uint  unsigned int
#define  uchar unsigned char
uchar  *p = "The first C51!By";
uchar  *q = "lanzix 08-04-16";

sbit   P3_5 = P3^5;
sbit   P3_6 = P3^6;
sbit   P3_7 = P3^7;
void  lcdwc(uchar lcdcode);
void  lcdwcn(uchar lcdcode);
void  lcdwd(uchar lcddata);
void  delay(uint n);
void  waitidle();
void  lcdreset();
void main()
{
   EPIN  =0;
   lcdreset();
   while ((*p )!= '/0')
   {
   lcdwd(*p);
   p++;
   }
   lcdwc(0xc0);
   while ((*q )!= '/0')
   {
   lcdwd(*q);
   q++;
   }
   while(1);

}


//дָÁ¼ì²âæÐźÅ
void lcdwc(uchar lcdcode)
{
//   waitidle();
   RSPIN = 0;
   RWPIN = 0;
   P0 = lcdcode;
   EPIN = 0;
   delay(5);
   EPIN = 1;
}
//дָÁ²»¼ì²âæÐźÅ
void lcdwcn(uchar lcdcode)
{
   RSPIN = 0;
   RWPIN = 0;
   P0 = lcdcode;
   EPIN = 0;
  
   delay(5);
   EPIN = 1;
}
//дÊý¾Ý
void lcdwd(uchar lcddata)
{
   RSPIN = 1;
   RWPIN = 0;
   P0 = lcddata;
   EPIN = 0;
   delay(5);
   EPIN = 1;
}
//µÈ´ýÒº¾§¿ÕÏÐ
void waitidle()
{
  P0 = 0XFF;
  delay(5);
  RSPIN = 0;
  RWPIN = 1;
  EPIN = 1;
  ACC = P0;
  while(P0^7);
  EPIN = 0;

}
//Òº¾§³õʼ»¯
void lcdreset()
{
  delay(15);
  lcdwcn(0x38);
  delay(5);
  lcdwcn(0x38);
  delay(5);
  lcdwcn(0x38);
  delay(5);
  lcdwc(0x38);
  lcdwc(0x08);
  lcdwc(0x01);
  lcdwc(0x06);
  lcdwc(0x0c);
}
void delay(uint n)
{
   uint i;
   while(n--)
   {
      for(i=0;i<125;i++)
      {}
   }
}
原创粉丝点击