百度知道 - 信息提示

日期:2025-01-12 21:55:21 人气:1

百度知道 - 信息提示

    A+
热门评论

设计用8031单片机P1口为输出口控制8只发光二极管循环点亮。1、 画出接口图。 2、 写出控制程序。

/*----------------------------------------------- 名称:流水灯 编写:杨光楼 日期:2009.5 修改:无 内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 延时子程序 ------------------------------------------------*/ void delay(unsigned int cnt) { while(--cnt); } /*------------------------------------------------ 主函数 ------------------------------------------------*/ main() { P1=0xfe; //给初始化值 换算成二进制是1111 1110 while(1) { delay(30000);//延时程序 P1<<=1; //左移一位 该语句等效于 P1=P1<<1 P1|=0x01; //最后一位补1,该语句等效于 P1=P1|0x01 符号"|"表示"或" if(P1==0x7f) //检测是否移到最左端?"=="表示检测符号2端的值是否相等 { delay(30000); P1=0xfe; //重新赋值 } } }

阅读全文

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮,并循环。

一、#include void delay(unsigned char Xms)//延时Xms { int i,j; for(X = i; X>0; X--) for(j=110;j>0;j--); } void main() { P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1) { delay(1000); P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1; delay(1000);//延时1秒 P0 = 0x30;//点亮第三个和第四个LED delay(1000); P0 = 0x0c; delay(1000); P0 = 0x03; } } 二、 #include #include #define uchar unsigned char #define uint unsigned int uchar temp, t0, t1; bit t2; sbit P10 = P1^0; void main() { P10 = 1; temp = 0xfe; P0 = temp; P2 = 0xff; TMOD = 0x01; TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; ET0 = 1; EA = 1; TR0 = 1; while(1); } void timer0() interrupt 1 { TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; t0++; if(t0 == 10) { t0 = 0; t1++; if(t1 == 8) {t1 = 0; t2 = ~t2; P10 = t2;} temp = _crol_(temp, 1); if(t2) {P0 = temp; P2 = 255;} else {P2 = temp; P0 = 255;} } } 扩展资料: 例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。 参考资料来源:百度百科-c语言

阅读全文