完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我才用的是用T0端的计数模式,计数方式为2自动再装计数,从255开始计数,来一个脉冲对变量进行加一,然后输出变量的值,我这个脉冲计数是没有时间的限制的计数。但是每次输入是个脉冲,变量才会加一,希望大神求解
#include unsigned int cnt_t0,cnt_t1,qian,bai,shi,ge,bb,wan,shiwan; unsigned long num; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管断码表 void delay1ms(unsigned int z) //延时1ms程序 { unsigned char i,j; for(i=0;i } void init() //T0初始化 { num=0; TMOD=0x06; TH0=255; TL0=255; ET0=1; EA=1; TR0=1; } void display(unsigned long num_num) //驱动数码管显示 { shiwan=num_num%1000000/100000; wan=num_num%100000/10000; qian=num_num%10000/1000; bai=num_num%1000/100; ge=num_num%100/10; P0=0xdf; //P0是位选 P2=table[shiwan]; delay1ms(1); P0=0xef; P2=table[wan]; delay1ms(1); P0=0xf7; P2=table[qian]; delay1ms(1); P0=0xfb; P2=table[bai]; delay1ms(1); P0=0xfd; P2=table[shi]; delay1ms(1); P0=0xfe; P2=table[ge]; delay1ms(1); } void main() //主函数 { P0=0xff; init(); while(1) { display(num); } } void timert0() interrupt 1 { num++; } |
|
相关推荐
3个回答
|
|
是输入十个脉冲,变量才会加一
|
|
|
|
|
|
|
|
自己找百度原理图 用仿真文件画吧
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4849 浏览 3 评论
6138 浏览 1 评论
6406 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
8154 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1236 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 18:45 , Processed in 0.503494 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号