完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include #include #define SYSCLK 11.059200 // 时钟脉冲,单位MHz #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define R 5 //半径0.5m #define PI 314 //pi=3.14 //段选定义 ***it P0_0 = P0^0; ***it P0_1 = P0^1; ***it P0_2 = P0^2; ***it P0_3 = P0^3; ***it P0_4 = P0^4; ***it P0_5 = P0^5; ***it P0_6 = P0^6; ***it P0_7 = P0^7; //位选定义 ***it P2_0 = P2^0; ***it P2_1 = P2^1; ***it P2_2 = P2^2; ***it P2_3 = P2^3; uchar codeSEG_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //采用共阳 0-9数字 dp不点亮 uchar codeSEG_TAB1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //0.-9.数字 dp点亮 void Delay(void); ulong js; uchar k=0; void main() { TMOD=0x51; //初始化,每50ms=50000us中断一次 (65536-x)*12/11.0592=50000 TL1=0x00; TH1=0x00; TL0=0x00; TH0=0x4c; //定时初值(65536-50000*11.0592/12)/256=76转换为16进制,得高位为4C (65536-50000*11.0592/12)%256=0得低位 IE=0x82; TR0=1; //定时开始 while(1) { P0 =SEG_TAB[js*2*PI*R/100000 ]; //显示百位 单位:米每秒 P2_0 =0; //共阳 // PI*R/100是因为PI=314所以要除以100 Delay(); P0 =SEG_TAB[(js*2*PI*R%100000)/100 ]; //显示十位 P2_1 =0; Delay(); P0 = SEG_TAB1[(js*2*PI*R%100000)%100/10 ]; //显示个位加小数点 P2_2 =0; Delay(); P0 =SEG_TAB[ (js*2*PI*R%100000)%100%10 ]; //显示小数位 P2_3 = 0; Delay(); } } ******************中断子程序*********************************** void timer0(void) interrupt 1 { TR1=0;TR0=0; TF0=0; //中断标志位 TL0=0x00; TH0=0x4c; k++; if(k>=20) //每1s钟计算一次 { js=TH1*256+TL1;TH1=0;TL1=0;k=0; } js=0;TR0=1; } *******************延时函数*************************************** void Delay(void) { uchar i; for(i=0;i<60;i++); }
哪里错了?p0口输出,T1口输入霍尔矩形脉冲,四位共阳极数码管显示,p2.0—p2.3位选 |
|
相关推荐 |
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 09:51 , Processed in 0.531677 second(s), Total 40, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号