}
}
P1=0xff; //熄灭
int_delay(); //延时一段较长的时间 } {
char_delay(); //延时一段较长的时间 P1=0xff; //熄灭
char_delay(); //延时一段较长的时间 }
for(i=0;i<3;i++)
P1=0xef; //P1.4口的灯点亮
//实例9:用P0口、P1 口分别显示加法和减法运算结果
#include
unsigned char m,n;
m=43; //即十进制数2x16+11=43 n=60; //即十进制数3x16+12=60
P1=m+n; //P1=103=0110 0111B,结果P1.3、P1.4、P1.7 口的灯被点亮 P0=n-m; //P0=17=0001 0001B,结果P0.0、P0.4的灯被熄灭 }
//实例10:用P0、P1口显示乘法运算结果
#include
{
unsigned char m,n; unsigned int s; m=64; 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)//因此,高8位16进制数H3 16+H2必然等于17,即4544//低8位16进制数H1 16+H0必然等于192,即4544除以256
/256
除以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
P1=36/5; //求整数 P0=((36%5) 10)/5; //求小数 while(1)
; //无限循环防止程序“跑飞” }
//实例12:用自增运算控制P0口8位LED流水花样
#include
/ 函数功能:延时一段时间
/ void delay(void) {
unsigned int i; }
/ 函数功能?:主函数
/ void main(void) {
unsigned char i;
for(i=0;i<255;i++) //注意i的值不能超过255 { }
//实例13:用P0口显示逻辑\与\运算结果
#include
P0=(4>0)&&(9>0xab);//将逻辑运算结果送P0口 while(1)
; //设置无限循环,防止程序“跑飞” }
P0=i; //将i的值送P0口 delay(); //调用延时函数 }
for(i=0;i<20000;i++) ;
//实例14:用P0口显示条件运算结果
#include
P0=(8>4)?8:4;//将条件运算结果送P0口,P0=8=0000 1000B while(1)
; //设置无限循环,防止程序“跑飞” }
//实例15:用P0口显示按位\异或\运算结果
#include
P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=0000 1000B while(1)
; //设置无限循环,防止程序“跑飞” }
//实例16:用P0显示左移运算结果
#include
P0=0x3b<<2;//将左移运算结果送P0口,P0=1110 1100B=0xec while(1)
; //无限循环,防止程序“跑飞” }
//实例17:\万能逻辑电路\实验
#include
{
F=((~X)&Y)|Z; //将逻辑运算结果赋给F ; }
//实例18:用右移运算流水点亮P1口8位LED
#include
unsigned int n; for(n=0;n<30000;n++) ; }
/ 函数功能:主函数
/ void main(void) {
unsigned char i; while(1)
}