单片机编程实例大全(2)

2018-11-21 23:38

n=71;

s=m n; //s=64 71=4544,需要16位二进制数表示,高8位送P1口,低8位送P0口

//由于4544=17 256+192=H3 16 16 16+H2 16 16+H1 16+H0 //两边同除以256,可得17+192/256=H3 16+H2+(H1 16+H0)/256 //因此,高8位16进制数H3 16+H2必然等于17,即4544除以256的商 //低8位16进制数H1 16+H0必然等于192,即4544除以256的余数

P1=s/256; //高8位送P1口 ,P1=17=11H=0001 0001B, P1.0和P1.4口灭,其余亮

P0=s%6; //低8位送P0口 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7口灭,其余亮 }

//实例11:用P1、P0口显示除法运算结果

#include //包含单片机寄存器的头文件 void main(void) {

P1=36/5; //求整数 P0=((36%5) 10)/5; //求小数 while(1)

; //无限循环防止程序“跑飞” }

//实例12:用自增运算控制P0口8位LED流水花样

#include //包含单片机寄存器的头文件

/ 函数功能:延时一段时间

/ void delay(void) {

unsigned int i; for(i=0;i<20000;i++)

; }

/ 函数功能?:主函数

/ void main(void) {

unsigned char i;

for(i=0;i<255;i++) //注意i的值不能超过255 { P0=i; //将i的值送P0口 delay(); //调用延时函数 } }

//实例13:用P0口显示逻辑\与\运算结果

#include //包含单片机寄存器的头文件 void main(void) {

P0=(4>0)&&(9>0xab);//将逻辑运算结果送P0口 while(1)

; //设置无限循环,防止程序“跑飞” }

//实例14:用P0口显示条件运算结果

#include //包含单片机寄存器的头文件 void main(void) {

P0=(8>4)?8:4;//将条件运算结果送P0口,P0=8=0000 1000B while(1)

; //设置无限循环,防止程序“跑飞” }

//实例15:用P0口显示按位\异或\运算结果

#include //包含单片机寄存器的头文件 void main(void) {

P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=0000 1000B while(1)

; //设置无限循环,防止程序“跑飞” }

//实例16:用P0显示左移运算结果

#include //包含单片机寄存器的头文件 void main(void) {

P0=0x3b<<2;//将左移运算结果送P0口,P0=1110 1100B=0xec while(1)

; //无限循环,防止程序“跑飞” }

//实例17:\万能逻辑电路\实验

#include //包含单片机寄存器的头文件 sbit F=P1^4; //将F位定义为 P1.4 sbit X=P1^5; //将X位定义为 P1.5 sbit Y=P1^6; //将Y位定义为 P1.6 sbit Z=P1^7; //将Z位定义为 P1.7 void main(void) {

while(1) {

F=((~X)&Y)|Z; //将逻辑运算结果赋给F ; } }

//实例18:用右移运算流水点亮P1口8位LED

#include //包含单片机寄存器的头文件 /

函数功能:延时一段时间

/ void delay(void) {

unsigned int n;

for(n=0;n<30000;n++) ; }

/ 函数功能:主函数

/ void main(void) {

unsigned char i; while(1) { P1=0xff; delay(); for(i=0;i<8;i++)//设置循环次数为8 { P1=P1>>1; //每次循环P1的各二进位右移1位,高位补0 delay(); //调用延时函数 } } }

//实例19:用if语句控制P0口8位LED的流水方向

#include //包含单片机寄存器的头文件 sbit S1=P1^4; //将S1位定义为P1.4 sbit S2=P1^5; //将S2位定义为P1.5 / 函数功能:主函数

/ void main(void) {

while(1) { if(S1==0) //如果按键S1按下 P0=0x0f; //P0口高四位LED点亮 if(S2==0) //如果按键S2按下

}

P0=0xf0; //P0口低四位LED点亮 }

//实例20:用swtich语句的控制P0口8位LED的点亮状态

#include //包含单片机寄存器的头文件 sbit S1=P1^4; //将S1位定义为P1.4 / 函数功能:延时一段时间

/ void delay(void) {

unsigned int n;

for(n=0;n<10000;n++) ; }

/ 函数功能:主函数

/ void main(void) {

unsigned char i; i=0; //将i初始化为0 while(1) { if(S1==0) //如果S1键按下 { delay(); //延时一段时间 if(S1==0) //如果再次检测到S1键按下 i++; //i自增1 if(i==9) //如果i=9,重新将其置为1 i=1; } switch(i) //使用多分支选择语句 { case 1: P0=0xfe; //第一个LED亮 break; case 2: P0=0xfd; //第二个LED亮 break;


单片机编程实例大全(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计表教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: