第3章附加 C51语言程序设计.pptVIP

  • 13
  • 0
  • 约9.69千字
  • 约 42页
  • 2016-11-02 发布于湖北
  • 举报
本程序设计需要注意的问题: 并口的“P”必须要大写。 由于单片机Reset后四个并口的初值均为FFH,所以在本程序中不需要初始化。 使用宏定义声明报警的上、限值的目的是为了程序便于修改,因为本程序小,可以不这样做。 * 程序清单如下: #includereg51.h #define low_limit 32 //定义低限报警值 #define high_limit 192 //定义高限报警值 unsigned char x ; //定义x为无符号字符型变量 sbit P10=P1^0 ; //定义特殊功能位P10 sbit P11=P1^1 ; //定义特殊功能位P11 main( ) { P10=1 ; //P1.0初始化 P11=1 ; // P1.0初始化 while(1) //无限循环 { x=P3 ; // 输入P3值 if( xlow_limit ) P10=0 ; //判断P3值是否小于低限报警值,小于则 P10=0 else P10=1 ; // P3值不小于低限报警值,则P10=1 if( xhigh_limit ) P11=0 ; //判断P3值是否大于高限报警值,大于则P11=0 else P11=1 ; // P3值不大于高限报警值,则P11=1 } } * 例5.6 设计一个MCS-51系列单片机最小系统。有一个按钮开关链接到并口的一个引脚,要求单片机接收开关动作信号并进行计数。按钮开关每按一次,单片机进行一次计数值加1,计数的结果通过并口输出来控制4个小灯的亮灭,用4个小灯的亮灭以二进制数表示计数的结果,当计数值达到15时将计数器清0,以后再重新计数过程。 解题思路: 已知条件:某个并口引脚上接一个按键,每按一次按键,单片机设定的计数器加1。 求解:设计一个最小系统,并在某并口将计数器值以二进制输出至四个指示灯,“1”亮“0”灭,计数器大于15时清零。 * 电路原理图:根据已知条件和求解要求,可以画出简单的电路原理图(注意:复位电路、时钟电路和工作电源用方框图标注即可)。原理图可以是图5.10,也可以把图5.10中的反相器74LS240去掉,限流电阻的另一端接地,得到新电路原理图。 图5.10 记录并显示按键次数应用系统电路图 * 图5.11 记录并显示按键次数应用系统程序流程图 * 程序清单如下: #includereg51.h sbit P36=P3^6; void delay( ); //延迟函数声明 main( ) { char n=0; //定义计数器变量 while(1) //无限循环 { if(P36==0) //如果有键按下 { void delay( ); //调用延迟函数,目的是解决外界干扰产生的误操作 if(P36==0) //确实有键按下 { n + +; if(n15) { n=0; //如果计数器值大于15,则清零 } * P1=~n; // 计数器值输出 while(P36==0);//等待按键抬起 } } } } viod delay( ) { unsigned char i , j ; for( j=20;j=1;j- - ) for( j=20;j=1;j- - ) } * 例5.7 设计一个单片机应用系统。要求P3口的8个引脚分两组与两个拔码开关连接,每个拔码开关具有4个开关,通过开关的不同状态可以模拟0~15之间的数据输入,这样就有两个0~15之间的数据输入到单片机。要求单片机应用系统对这两个输入的数据求和,并用两个数码管按十进制显示出两个输入数据的和。 解题思路: 已知条件:提供了2个4位拨码开关(可以看成单刀开关),2个4位拨码开关与某个并口的8个引

文档评论(0)

1亿VIP精品文档

相关文档