C51 keil v4 流水灯简单代码的编写
2020-05-16 来源:eefocus
#include #include'intrins.h' typedef unsigned char u8;/*char 为1字节,8位 */ typedef unsigned int u16; /*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535; 用u16,u8使代码的可移植性高 */ #define led P0 //sbit led=P0^0; //两种表示方式 void delay(u16 i) { while(i--); }//运用延时函数达到使led灯闪烁的目的 void main() { /* while(1) { led=1; delay(50000);//i=1时,约等于是10us,所以50000是500ms led=0; delay(50000); } //这段代码实现一个led灯的闪烁。即亮了0.5秒后,暗0.5秒。但是由于delay函数是不精确的,所以时间不是准确的0.5s */ /*u8 i; led=0x01;//表示16进制,第一个led灯 0000 0001 delay(50000); while(1) { for(i=0;i<8;i++) { led=(0x01< delay(50000); } } //这段代码实现了八个led灯的依次点亮,实现了流水灯的功能 */ u8 i; led=0x01; delay(50000); while(1) { for(i=0;i<7;i++) { led=_crol_(led,1); delay(50000); } for(i=0;i<7;i++) { led=_cror_(led,1); delay(50000); } } /*这段代码实现了走马灯的功能1~8依次亮,接着8~1亮 因为运用了_cror_(a,b)函数,所以需要引用头文件instrins.h 至于为什么上一段代码是i<8,这一段是i<7; 其实是根据具体操作来的,亲故可以自行体验下他的用法 第二段代码是led=(0x01< 最后一段代码是led=_crol_(led,1);是运用了左移函数,且赋值给了led,所以led每次循环的起始源是不同的。 值在i=0循环的时候就变成了0010起始,而上一段还是0001起始。 */ }
- keil中GD32 MCU IAP中APP的存储地址如何设置?
- 如何查看GD32 Keil和IAR工程的map文件
- GD32开发实战指南(基础篇) 第4章 GD32启动流程详解(Keil版)
- 如何使用Keil打开GD32 FPU及使用ARM DSP库 ?
- 【GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(1)使用Keil开发GD32
- STM32 FreeRTOS Keil环境搭建
- 用Keil编译STM32工程出现下面错误
- 基于STM32的Keil和偏移地址程序存储
- STM32通过命令行编译和下载keil和IAR工程的方法
- ch32可以用keil吗?ch32和stm32编程有区别吗?