完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
是根据https://bbs.elecfans.com/jishu_184829_1_1.html这里面大神的程序弄的,我是新手,请大神看看。 #include #define LED P0 #define LED_ON() LED = 0x00 //所有LED亮 #define LED_OFF() LED = 0xff //所有LED熄灭 unsigned int g_u16LedtimeCount = 0 ; //LED计数器 unsigned char g_u8LedState = 0 ; //LED状态标志, 0表示亮,1表示熄灭 unsigned char g_bSystemTime1Ms = 0 ; void LedProcess(void) { if(0 == g_u8LedState) //如果LED的状态为亮,则点亮LED { LED_ON() ; } else //否则熄灭LED { LED_OFF() ; } } void LedStateChange(void) { if(g_bSystemTime1Ms) //系统1MS时标到 { g_bSystemTime1Ms = 0 ; g_u16LedTimeCount++ ; //LED计数器加一 if(g_u16LedTimeCount >= 500) //计数达到500,即500MS到了,改变LED的状态。 { g_u16LedTimeCount = 0 ; g_u8LedState = ! g_u8LedState ; } } } void main(void) { while(1) { LedProcess() ; LedStateChange() ; } } |
|
相关推荐
12个回答
|
|
大神们,帮忙啊
|
|
|
|
正确的程序在这儿
#include ***it LED_SEG = P1^4; //数码管段选 ***it LED_DIG = P1^5; //数码管位选 ***it LED_CS11 = P1^6; //led控制位 ***it ir=P1^7; #define LED P0 //定义LED接口 bit g_bSystemTime1Ms = 0 ; // 1MS系统时标 unsigned int g_u16LedTimeCount = 0 ; //LED计数器 unsigned char g_u8LedState = 0 ; //LED状态标志, 0表示亮,1表示熄灭 #define LED_ON() LED = 0x00 ; //所有LED亮 #define LED_OFF() LED = 0xff ; //所有LED熄灭 void Timer0Init(void) { TMOD &= 0xf0 ; TMOD |= 0x01 ; //定时器0工作方式1 TH0 = 0xfc ; //定时器初始值 TL0 = 0x66 ; TR0 = 1 ; ET0 = 1 ; } void LedProcess(void) { if(0 == g_u8LedState) //如果LED的状态为亮,则点亮LED { LED_ON() ; } else //否则熄灭LED { LED_OFF() ; } } void LedStateChange(void) { if(g_bSystemTime1Ms) //系统1MS时标到 { g_bSystemTime1Ms = 0 ; g_u16LedTimeCount++ ; //LED计数器加一 if(g_u16LedTimeCount >= 500) //计数达到500,即500MS到了,改变LED的状态。 { g_u16LedTimeCount = 0 ; g_u8LedState = ! g_u8LedState ; } } } void main(void) { Timer0Init() ; EA = 1 ; LED_CS11 = 1 ; //74HC595输出允许 LED_SEG = 0 ; //数码管段选和位选禁止(因为它们和LED共用P0口) LED_DIG = 0 ; while(1) { LedProcess() ; LedStateChange() ; } } void Time0Isr(void) interrupt 1 { TH0 = 0xfc ; //定时器重新赋初值 TL0 = 0x66 ; g_bSystemTime1Ms = 1 ; //1MS时标标志位置位 } |
|
|
|
这个,好像我还没学到…………。
|
|
|
|
|
|
|
|
恩,准备用之前那个大神的程序来用,结果在定义函数哪儿应该是出问题了。 你也明白,作为了个菜鸟,不懂只能一句一句的理解,然后就出错了。 |
|
|
|
|
|
|
|
|
|
|
|
。。。。。程序不是你写的吧。。
|
|
|
|
缺少中断函数产生1ms时间
|
|
|
|
没有能使if(g_bSystemTime1Ms)为真的条件,
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
1144 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
890 浏览 0 评论
1066 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
1117 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
872 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10528 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-7 07:26 , Processed in 0.747540 second(s), Total 97, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191