完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uint unsigned int #define uchar unsigned char ***it led_1=P1^0; ***it led_2=P1^1; ***it led_3=P1^2; ***it led_4=P1^3; ***it led_8=P1^7; ***it led_5=P1^4; char flag,a,b,c,max,min; int time_Count=0; //定时计数 uint Timer0_IRQ_Event=0; // T/C0定时中断事件 void uart_init(void);//串行口初始化 void Timer0_Start(void); void uart_init(void) { TMOD=0x21;//即0010 0000,定时器/计数器1,工作方式2 TH1=0xfd;//设置波特率为9600 TL1=0xfd; TR1=1;//启动定时器/计数器1 SCON=0x50; //0101 0000.串口工作方式1,允许串行控制 PCON=0x00;//设置SMOD=0 IE=0x90; //CPU允许中断,串行允许中断 TI=1;//直接使用printf必须加入此句才能实现发送 } void Timer0_Start(void) { //TMOD=0x01; // T/C0工作方式1 TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; TR0=1; ET0=1; } void Timer0_IRQ() interrupt 1 { led_3=0; TH0=(65536-45872)/256; TL0=(65536-45872)%256; if(flag==0) {Time_Count++;} if(flag==1) {Time_Count--;} a=Time_Count; Timer0_IRQ_Event=1; } void main() { uart_init(); Timer0_Start(); //EA=1; //允许所有中断 while(1) { b=a; c=a; a=Time_Count; if(bc) { max=a; printf("%d n",max); } if(b>a&&a printf("%d n",min); } led_8=~led_8; if(Timer0_IRQ_Event) // T/C0中断事件 { Timer0_IRQ_Event=0; if(led_4==1) { flag=1; } if(led_4==0) { flag=0; } } } } |
|
相关推荐
1个回答
|
|
帮顶。。。。
|
|
|
|
只有小组成员才能发言,加入小组>>
3282 浏览 9 评论
2959 浏览 16 评论
3464 浏览 1 评论
9007 浏览 16 评论
4054 浏览 18 评论
1122浏览 3评论
577浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
572浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2305浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1862浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 16:22 , Processed in 1.160454 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号