【实例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 abba←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,#datadata
movc a, @a+dptr ; pc←(pc)+1 ,a←((a)+(pc))
实例6】if语句实例:
void main()
int a,b,c,min;
printf(" please input three number:")
scanf("%d%d%d ",a,&b,&c);
if(aelse if(b else if(c else printf("there at least two numbers are equal");
实例7】switch-case语句实例:
void main()
int num; printf("input one number:")
scanf("%d",&num);
switch(num)
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;)
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]=,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++)
p10=0;
for (j=0; j<10; j++)
/正慢转。for (i=0; i<100; i++)
p10=1;
for (j=0; j<10; j++)
p10=0;
for (j=0; j<50; j++)
p11=0;
for (j=0; j<10; j++)
/ 负慢转。
for (i=0; i<100; i++)
p11=1;
for (j=0;j<10;j++)
p11=0for (j=0; j<50; j++)
实例20】用74ls165实现串口扩展并行输入口。
1)函数声明管脚定义。
库函数声明,管脚定义。
#include<>
sbit load=p1^7;
/用p1^7控制sh/ 管脚。
2)串口初始化函数uart_init()
/ 函数名称:uart_init()
/ 功能说明:串口初始化,设定串口工作在方式0
void uart_init(void)
scon=0x10;
//设串行口方式0,允许接收,启动接收过程。
es=0;//禁止串口中断。
3)数据接收函数pa()
/ 函数名称:pa()
/ 输入参数:无。
/ 输出参数:返回由并口输入的数据。
/ 功能说明:接收八位串行数据。
unsigned char pa(void)
unsigned char pa_data;
load=0;
//当p1.7输出低电平,74ls165将并行数据装入寄存器//当中。
load=1;
//当p1.7输出高电平,74ls165在时钟信号下进行移位。
uart_init();
//74ls165工作在时钟控制下的串行移位状态。
while(ri==0);
//循环等待。
ri=0;pa_data=sbuf;
return pa_data;
//返回并行输入的数据。
1)函数声明管脚定义。
库函数声明,管脚定义。
#include<>
sbit a7=acc^7;
sbit simuseri_clk=p1^6;
/用p1^6模拟串口时钟。
sbit simuseri_data=p1^5;
/用p1^5模拟串口数据。
sbit drive74165_ld=p1^7;
/用p1^7控制sh/ 管脚。
2)数据输入函数in_simuseri()
51单片机基本结构详解
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的 处理器cpu 随机存储器ram 只读存储器rom 多种i o口和中断系统 定时器 计数器等功能 可能还包括显示驱动电路 脉宽调试电路电路 模拟多路转换器 a d转换器等电路 集成到一块硅片上构成的一个小而完善的微型计算机系统。...