完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
用天翔老师的板子写了一个定时计数程序,使用导线接触T0引脚计数,每隔一秒钟刷新一次从0开始,程序如下:
#include #define uchar unsigned char #define uint unsigned int ***it dula=P2^6; ***it wela=P2^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar num1,flag1s; uint val; void delay(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void init() { TMOD=0x15; TH0=0; TL0=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR0=1; EA=1; ET1=1; TR1=1; } void display(uchar bai,uchar shi,uchar ge) { dula=1; P0=table[bai]; dula=0; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table[shi]; dula=0; wela=1; P0=0xfd; wela=0; delay(5); dula=1; P0=table[ge]; dula=0; wela=1; P0=0xfb; wela=0; delay(5); } uint read() { uchar t1,th1,th2; uint val; while(1) { th1=TH0; t1=TL0; th2=TH0; if(th1==th2) break; } val=th1*256+t1; return val; } void main() { uchar a,b,c; uint num; init(); while(1) { num=read(); if(flag1s==1) { TH0=0; TL0=0; flag1s=0; num=0; } a=num/100; b=num%100/10; c=num%10; display(a,b,c); } } void time() interrupt 1 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; num1++; if(num1==20) { num1=0; flag1s=1; } } 其中主函数中的大循环: while(1) { num=read(); if(flag1s==1) { TH0=0; TL0=0; flag1s=0; num=0; } a=num/100; b=num%100/10; c=num%10; display(a,b,c); } 请问为什么当我在此大循环中加入 num2=num; 这句时,每秒刷新一次从零开始就失效了呢?(num2已声明) |
|
相关推荐
3个回答
|
|
问问题说的不明不白。。。
|
|
|
|
num2是不是在哪个地方?你的问题确实是不清楚
|
|
|
|
不明觉厉,路过,看你们表演
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
634 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
614 浏览 0 评论
660 浏览 1 评论
511 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
857 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11647 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 12:58 , Processed in 0.545456 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号