完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
说明:不使用PWM口,而是使用数字口和时延函数模拟,从而实现普通IO口对LED灯的亮度控制。
LED灯 这个案例用于解释常见的一种设计思想:软解码和硬解码。 软解码:需要使用CPU实现; 硬解码:需要定时器等硬件支持。 程序: 循环演示 #include <8052.h> #define LSA P1_5 #define LSB P1_6 #define LSC P1_7 #define Led P0 int main(void) { unsigned int a; LSA = 0; LSB = 0; LSC = 0; while(1) { Led = 0x00; //a = 50000; //a = 9; //a = 1; //1000 a=100; while(a--); Led = 0xff; //a = 50000; //a = 1; //a = 9; a=900; while(a--); } } 外部控制 #include<8052.h> #define LSA P1_5 #define LSB P1_6 #define LSC P1_7 #define Led P0 char brightness=0,a=0; void EXint_Init(void); void Delayms(unsigned int); void EXINT0() __interrupt 0; void main() { EXint_Init(); LSA=0; LSB=0; LSC=0; while(1) { Led = 0x00; a=brightness; while(a--); Led = 0xff; a=255; while(a--); } } void EXint_Init() { IT0=1; IT1=0; // IPH=0x40; PX1=1; EA=1; EX0=1; EX1=1; } void Delayms(unsigned int xms) { unsigned int i,j; for(i = xms;i > 0;i--) { for (j = 110;j > 0;j--); } } void EXINT0() __interrupt 0 { brightness++; } |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:09 , Processed in 1.144098 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号