12单片机例程分享
参考1- 点亮LED灯
参考10- 串口查询方式发送
参考11- 串口查询方式收发
参考12-串口中断方式
参考13- 外部中断0 低电平触发
参考14- 外部中断0 下降沿触发
参考15- 外部中断1 低电平触发
参考16- 外部中断1 下降沿触发
参考17- 步进电机转动1
参考18- 步进电机转动2
参考19- LCD1602液晶屏显示
参考2- LED灯闪烁
参考20- 0.96寸OLED液晶屏显示
参考3- PWM呼吸灯
参考4- P4端口8个IO口输出高低电平
参考5- KEY按键控制LED亮灭
参考6- 定时器0
参考7- 定时器1
参考8- 1路1ms方波
参考9- 串口Printf显示
单片机源程序如下:
- /*******************************************************************
- * 实验平台: STC12C5A60S2/STC89C52RC最小系统板
- * 技术人员: 小蜂人工作室
- * 年月时间: 2015.11
- * 简单说明: 占空比方式改变LED灯显示
- *******************************************************************/
- #include<reg52.h> /*头文件包含特殊功能寄存器的定义*/
- //IO引脚定义;
- sbit LED=P1^0; // 用sbit关键字定义LED到P1.0端口
- void Delay(unsigned int t); //延时函数声明
- /*********************************************************/
- /* 主函数 */
- /*********************************************************/
- void main (void)
- {
- // unsigned int Time=1000, PWM=0; //定义周期并赋值 (STC12C5A60S2芯片)
- unsigned int Time=500, PWM=0; //定义周期并赋值 (STC89C52RC芯片)
-
- while (1) //主循环
- {
- LED=1; //P1.0管脚赋值1高电平,熄灭LED灯
- Delay(50000); //延时
- /* 阶段1:这个循环中低电平时长从1累加到Time(周期)的值,我们可以看到灯逐渐变亮 */
- for(PWM=1; PWM<Time; PWM++)
- {
- LED=0; //点亮LED
- Delay(PWM);
- LED=1; //熄灭LED
- Delay(Time-PWM);
- }
-
- /*阶段2:开始全亮*/
- LED=0;
- Delay(50000); //延时
-
- /* 阶段3:这个循环中低电平时长从Time(周期)的值逐减到0,我们可以看到灯逐渐变暗 */
- for(PWM=Time-1; PWM>0; PWM--) //与逐渐变亮相反的过程
- {
- LED=0; //点亮LED
- Delay(PWM);
- LED=1; //熄灭LED
- Delay(Time - PWM);
- }
- }
- }
- /*------------------------------------------------
- 延时函数,含有输入参数 unsigned int t,无返回值
- 范围是0~65535
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
2.参考例程.rar
(656.81 KB, 下载次数: 496)
|