郭天祥单片机视频教程习题答案(一)
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)
插入c语言的是选插入c++那一栏吗? 1.闪烁_for循环实现 #include<reg51.h>sbit d1=P1^0;void delay();void main() { while ...
- 郭天祥单片机视频教学习题答案(一)
第1讲-学单片机预备知识.如何点亮一个发光管视频习题答案 对照TX-1C单片机学习板原理图写程序 用位操作和总线操作两种方法完成以下题目 1. 熟练建立 KEIL工程 链接: https://wenk ...
- 郭天祥单片机编程100例程序及随笔2——数码管编程
1.两个问题,一个待解决: 1.1数码管的dula,wela,的原理和led1一样吗?单片机为什么凭这个名字就能找到数码管? 初步猜测:是郭天祥在他的51单片机里面焊接定义好的,就是不知道放在别的地方 ...
- 单片机胡汉才第四版答案_单片机课后习题答案 胡汉才编
单片机课后标准答案详解 3.20.1.使20H单元中数的高两位变为0,其余位不变 2.使20H单元中数的高两位变为1,其余位不变 3.使20H单元中数的高两位变反,其余位不变 4.使20H单元中数的所 ...
- 单片机胡汉才第四版答案_单片机课后习题答案__胡汉才编
1H MOVX @DPTR,A SJMP LOOP3 END 7.29.设单片机时钟为12MHZ,请利用定时器T0编出令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2(高电平时间短) 解:参 ...
- 《IT项目管理》(郭宁编著) 课后习题答案
第一章 it项目管理概述 第二章 组织环境与项目管理过程 第三章 it项目整体管理 第四章 it项目范围管理 第五章 it项目时间管理 第六章 it项目成本管理 第七章 it项目 ...
- FPGA/CPLD学习心得体会-送给入门学习的你(后附郭天祥FPGA视频教程)
FPGA在目前应用领域非常,在目前的单板设计里面,几乎都可以看到它的身影.从简单的逻辑组合,到高端的图像.通信协议处理,从单片逻辑到复杂的ASIC原型验证,从小家电到航天器,都可以看到FPGA应用,它 ...
- 郭天祥单片机编程100例程序及随笔3——定时器编程
1.五个知识点: 1.1设置中断的流程: 1.1.1主函数设置初始化 1.1.2中断服务程序(由用户自己编写),设置要做的事情,但不可以放太多. 1.2主函数的设置(定时器初始化) 举例: void ...
- 郭天祥嵌入式开发教程
1 课程简介 主要是郭天祥的ARM9嵌入式教程. 2 课程地址 郭天祥ARM9视频教程
最新文章
- puppet (三)
- MySQL 配置数据库编码
- 全球与中国太赫兹安检仪市场竞争状况及未来发展趋向分析报告2022-2028年版
- 小波图像增强matlab,用Matlab实现基于小波变换的图像增强技术
- 硬件产品研发,除了电子元器件成本,还有什么成本?
- 安卓自定义View进阶-分类与流程
- python删除数组元素_python:从数组列表中删除一系列数字
- windows挂载linux共享,永久挂载 Windows 共享
- 机器学习中为什么需要梯度下降_机器学习 —— 多元梯度下降
- 【NOIP 模拟赛】Evensgn 剪树枝 树形dp
- nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
- OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )
- 高等数学—两个重要的极限定理
- 等效距离计算公式_等效焦距换算(等效焦距的计算公式)
- visdom image显示图像(四)
- P2757 [国家集训队]等差子序列
- 正则系列2: re.search用法
- Kubernetes亲和性学习笔记
- Ubuntu系统镜像盘ISO:各版本大全、国内网速下载地址(阿里云)
- 【vue教程】来自JSpang 技术胖的视频
热门文章
- 工作单元php,[php]标记投射和工作单元
- 虚拟机mac 与主机的网络共享
- html5获取图形坐标,WKWebView获取H5页面里图片地址以及图片相对视图窗口的坐标的方法...
- 地图网站,二三维地图
- 小企鹅fcitx输入法导入搜狗scel词库方法
- php获取另一个网页内容,php获取网页内容的三种方法
- 网络编程培训之三 实现TCP/UDP的简单Echo服务器
- 我们究竟为什么上大学
- 如何优雅使用Sublime Text3(Sublime设置豆沙绿背景色和自定义主题)
- html5 tdk,TDK等标签