100例程序设计范例汇总
第一章
【实例1】使用累加器进行简单加法运算:
                MOV    A,#02H    ;A←2
                ADD    A,#06H    ;A←A+06H
【实例2】使用B寄存器进行简单乘法运算:
                MOV    A,#02H    ; A←2
                MOV    B,#06H    ; B←6
                MUL    AB        ; BA←A*B=6*2
【实例3】通过设置RS1,RS0选择工作寄存器区1:
CLR      PSW.4    ; PSW.4←0
                SETB    PSW.5    ; PSW.5←1
【实例4】使用数据指针DPTR访问外部数据数据存储器:
MOV    DPTR, #data16    ; DPTR←data16
                MOVX    A, @ DPTR    ; A←((DPTR))
MOVX    @ DPTR, A    ; (DPTR)←A
【实例5】使用程序计数器PC查表:
MOV    A, #data      ;A←data
                MOVC    A, @ A+DPTR    ; PC←(PC)+1 ,A←((A)+(PC))
【实例6】if语句实例:
void main()
{    int a,b,c,min;
    printf("\n please input three number:");
    scanf("%d%d%d ",&a,&b,&c);
    if(a<b&&a<c)    printf("min=%d\n",a );
else if(b<a&&b<c)  printf("min=%d\n",b);
    else if(c<a&&c<c)  printf("min=%d\n",c);
    else    printf("There at least two numbers are equal\n");
}
【实例7】switch-case语句实例:
void main()
{    int num;    printf("input one number:");
    scanf("%d",& num);
    switch(num)
    {    case 1: printf("num =%d\n", num);break;
        case 2: printf("num =%d\n", num);break;
        case 3: printf("num =%d\n", num);break;
        case 4: printf("num =%d\n", num);break;
        default: printf("The number is out of the range\n", num);
}
}
【实例8】for语句实例:
void main()
{    for(int a=10;n>0;a --)
    printf("%d",a);
}
【实例9】while语句实例:
void main()
{    int i=0;
while(i<=10)  i++;
}
【实例10】do…while语句实例:
void main()
{    int i=0;
do{    i++;}
while(i<=10);
}
【实例11】语句形式调用实例:
void main()
{    int i=0; while(i<=10)  i++; … …
    Sum();  /*函数调用*/
}
【实例12】表达式形式调用实例:
void main()
{    int a,b,i=0; while(i<=10)  i++; … …
    i=4*Sum(a,b);  /*函数调用*/
}
【实例13】以函数的参数形式调用实例:
void main()
{    int a,b,c,i=0; while(i<=10)  i++; … …
    i= max(c,Sum(a,b));  /*函数调用*/
}
【实例14】函数的声明实例:
void main()
{    int max(int x,int y);    /*函数的声明*/
int a,b,c,i=0; while(i<=10)  i++; … …
    i= max(c,Sum(a,b));  /*函数调用*/
}
【实例15】函数递归调用的简单实例:
void fun()
{    int a=1, result,i;
for(i=0;i<10;)
    {  i=a+I;
result = fun();  /*函数调用*/
    }
  return  result;
}
【实例16】数组的实例:
void main()
{    char num[3] [3]={{ '','#',''},{'#','','#'},{'','#',''}};    /*定义多维数组*/
int i=0,j=0;
    for(;i<3;i++)
{  for(;j<3;j++)    printf(“%c”,num[i][j]);
printf(“/n”);
}
【实例17】指针的实例:
void main()
{    int a=3,*p;
    p=&a;  /*将变量a的地址赋值给指针变量p*/
printf(“%d,%d”,a,*p);  /*输出二者的数值进行对比*/
}
【实例18】数组与指针实例:
void main()
{    int i=3,num[3]={1,2,3},*p;
    p=num;  /*将数组num[]的地址赋值给指针变量p*/
result =max(p,3);  /*函数调用,计算数组的最大值*/
}
【实例19】P1口控制直流电动机实例
sfr p1=0x90;
sbit p10=p1^0;
sbit p11=p1^1;
void main ()
{
int i, m;
int j=100;
int k=20;
// 正快转
for (i=0; i<100; i++)
{
P10=1;
for (j=0; j<50; j++)
    {
      m=0;
    }
}
P10=0;
for (j=0; j<10; j++)
  {
      m=0
  }
//正慢转
for (i=0; i<100; i++)
{
P10=1;
for (j=0; j<10; j++)
  {
      m=0
  }
}
p10=0;
for (j=0; j<50; j++)
  {
m=0
}
// 负快转
for (i=0; i<100; i++)
{
p11=1;
for (j=0; j<50; j++)
  {
    m=0;
  }
}
p11=0;
for (j=0; j<10; j++)
  {
      m=0;
  }
// 负慢转
for (i=0; i<100; i++)
{
p11=1;
for (j=0;j<10;j++)
{
    m=0;
}
}
p11=0
for (j=0; j<50; j++)
  {
    m=0;
  }
}
第二章
【实例20】用74LS165实现串口扩展并行输入口
(1)函数声明管脚定义
//---------------------------------------库函数声明,管脚定义------------------------------------------
#include<reg52.h>
sbit LOAD=P1^7;
//用P1^7控制SH/ 管脚
(2)串口初始化函数UART_init()
//--------------------------------------------------------------------------------------------------------------
//  函数名称:UART_init()
//  功能说明:串口初始化,设定串口工作在方式0
//--------------------------------------------------------------------------------------------------------------while语句简单例子
void UART_init(void)
{
    SCON=0x10;
    //设串行口方式0,允许接收,启动接收过程
    ES=0;
    //禁止串口中断
}
(3)数据接收函数PA()
//--------------------------------------------------------------------------------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。