1. 第一个发光管以间隔200ms闪烁

//第一个发光管以间隔200ms闪烁
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0;
void delay(uint);
void main()
{while(1){D1=0;delay(165);   //每隔200ms闪烁一次D1=1;delay(165);}
}
void delay(uint z){uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);}

2.8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去

//8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去
//用库函数_crol_(uchar,uint)进行循环左移时,需要用到头文件<intrins.h>
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
uchar toff;
sbit beep=P2^5;
void delay(uint);
void main()
{temp=0xfe;toff=0xff;while(1){P1=temp;temp=_crol_(temp,1);beep=0;delay(420);P1=toff;beep=1;delay(420);}
}
void delay(uint z)
{uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);
}

3.8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声

//8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^5;
void delay(uint);
void main()
{uint temp=0xfe;uint i; while(1){beep=1;for(i=7;i>0;i--) {P1=temp;temp=_crol_(temp,1);  //循环左移delay(82);}     //当temp=0x7f时,i=0,跳出该循环for(i=7;i>0;i--){P1=temp; //此时将上一个for循环的temp值赋予P1temp=_cror_(temp,1);    //循环右移delay(82);}}
}
void delay(uint z)
{uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);
}

4.用8个发光管演示出8位二进制数累加过程

//用8个发光管演示出8位二进制数累加过程
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
void main()
{uint sum=0xff;//表示为11111111while(1){P1=sum;--sum;    //表示sum=sum-1delay(500);}
}
void delay(uint z)
{uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);
}

5.8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪5次。重复此过程

//8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪5次。重复此过程
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
void main()
{uint i,j,k;uint temp=0xfe;while(1){for(k=0;k<2;k++){for(i=7;i>0;i--){P1=temp;temp=_crol_(temp,1);delay(200);}for(j=7;j>0;j--){P1=temp;temp=_cror_(temp,1);delay(200);}}P1=0xff;for(i=0;i<10;i++){P1=~P1;  //表示对P1值取反delay(300);}}
}
void delay(uint z)
{uint x,y;for(x=84;x>0;x--)for(y=z;y>0;y--);
}//可以参照例题2的方法,更易于理解

6.间隔300ms第一次一个管流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程

//间隔300ms第一次一个管流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsined char
void delay(uint);
void main()
{uint i,j;while(1){uint temp=0xfe; //不能放在while循环外面,否则无法重复for(i=0;i<8;i++){for(j=0;j<8-i;j++){P1=temp;temp=_crol_(temp,1);delay(300);} temp=_crol_(temp,i);temp=temp<<1;   //表示将temp左移一位并赋值给temp,与crol含义不一样}        }
}
void delay(uint z)
{uint x,y;for(x=85;x>0;x--)for(y=z;y>0;y--);
}

刚开始接触C51单片机,所以上面的程序应该还有更简单的代码,希望老铁们可以给出建议,
多谢!

郭天祥单片机视频教程习题答案(一)相关推荐

  1. 习题答案之郭天祥单片机视频教程(1)

    插入c语言的是选插入c++那一栏吗? 1.闪烁_for循环实现 #include<reg51.h>sbit d1=P1^0;void delay();void main() { while ...

  2. 郭天祥单片机视频教学习题答案(一)

    第1讲-学单片机预备知识.如何点亮一个发光管视频习题答案 对照TX-1C单片机学习板原理图写程序 用位操作和总线操作两种方法完成以下题目 1. 熟练建立 KEIL工程 链接: https://wenk ...

  3. 郭天祥单片机编程100例程序及随笔2——数码管编程

    1.两个问题,一个待解决: 1.1数码管的dula,wela,的原理和led1一样吗?单片机为什么凭这个名字就能找到数码管? 初步猜测:是郭天祥在他的51单片机里面焊接定义好的,就是不知道放在别的地方 ...

  4. 单片机胡汉才第四版答案_单片机课后习题答案 胡汉才编

    单片机课后标准答案详解 3.20.1.使20H单元中数的高两位变为0,其余位不变 2.使20H单元中数的高两位变为1,其余位不变 3.使20H单元中数的高两位变反,其余位不变 4.使20H单元中数的所 ...

  5. 单片机胡汉才第四版答案_单片机课后习题答案__胡汉才编

    1H MOVX @DPTR,A SJMP LOOP3 END 7.29.设单片机时钟为12MHZ,请利用定时器T0编出令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2(高电平时间短) 解:参 ...

  6. 《IT项目管理》(郭宁编著) 课后习题答案

    第一章  it项目管理概述 第二章  组织环境与项目管理过程 第三章   it项目整体管理 第四章  it项目范围管理 第五章   it项目时间管理 第六章   it项目成本管理 第七章   it项目 ...

  7. FPGA/CPLD学习心得体会-送给入门学习的你(后附郭天祥FPGA视频教程)

    FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影.从简单的逻辑组合,到高端的图像.通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它 ...

  8. 郭天祥单片机编程100例程序及随笔3——定时器编程

    1.五个知识点: 1.1设置中断的流程: 1.1.1主函数设置初始化 1.1.2中断服务程序(由用户自己编写),设置要做的事情,但不可以放太多. 1.2主函数的设置(定时器初始化) 举例: void ...

  9. 郭天祥嵌入式开发教程

    1 课程简介                  主要是郭天祥的ARM9嵌入式教程. 2 课程地址 郭天祥ARM9视频教程

最新文章

  1. puppet (三)
  2. MySQL 配置数据库编码
  3. 全球与中国太赫兹安检仪市场竞争状况及未来发展趋向分析报告2022-2028年版
  4. 小波图像增强matlab,用Matlab实现基于小波变换的图像增强技术
  5. 硬件产品研发,除了电子元器件成本,还有什么成本?
  6. 安卓自定义View进阶-分类与流程
  7. python删除数组元素_python:从数组列表中删除一系列数字
  8. windows挂载linux共享,永久挂载 Windows 共享
  9. 机器学习中为什么需要梯度下降_机器学习 —— 多元梯度下降
  10. 【NOIP 模拟赛】Evensgn 剪树枝 树形dp
  11. nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
  12. OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )
  13. 高等数学—两个重要的极限定理
  14. 等效距离计算公式_等效焦距换算(等效焦距的计算公式)
  15. visdom image显示图像(四)
  16. P2757 [国家集训队]等差子序列
  17. 正则系列2: re.search用法
  18. Kubernetes亲和性学习笔记
  19. Ubuntu系统镜像盘ISO:各版本大全、国内网速下载地址(阿里云)
  20. 【vue教程】来自JSpang 技术胖的视频

热门文章

  1. 工作单元php,[php]标记投射和工作单元
  2. 虚拟机mac 与主机的网络共享
  3. html5获取图形坐标,WKWebView获取H5页面里图片地址以及图片相对视图窗口的坐标的方法...
  4. 地图网站,二三维地图
  5. 小企鹅fcitx输入法导入搜狗scel词库方法
  6. php获取另一个网页内容,php获取网页内容的三种方法
  7. 网络编程培训之三 实现TCP/UDP的简单Echo服务器
  8. 我们究竟为什么上大学
  9. 如何优雅使用Sublime Text3(Sublime设置豆沙绿背景色和自定义主题)
  10. html5 tdk,TDK等标签