历史上的今天
今天是:2024年11月13日(星期三)
2019年11月13日 | 51单片机数字频率计仿真(可按键切换量程)
2019-11-13 来源:51hei
之前课程设计做的 误差很小 分享给大家 里面有程序和仿真 也做过实物 可以按键切换量程10倍和1倍


单片机源程序如下:
#include #include #define uint unsigned int #define uchar unsigned char sbit k1=P3^0; sbit k2=P2^0; sbit LED=P2^1; unsigned char code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共阴数码管 unsigned char code dispcode[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//显示0-9 /修改 新增0x00 unsigned char count [8]={0, 0, 0, 0, 0, 0, 0, 0};//定义数组存放显示数据的各位 unsigned int T0count =0; unsigned char time1tick =0; unsigned char i =0,a=0,j=0,y=0; unsigned int x ;//int最大是65536 void pulse_init (void) { TMOD =0x16;//T0工作在方式2,计数器模式,T1工作方式为方式1,定时器模式 TH0=0x00; TL0=0x00; TH1=(65536-50000)/256;//50ms中断一次,中断20次完成1秒定时,计算初值 TL1=(65536-50000)%256; ET0=1; ET1=1; //EX0=1; //EX1=1; EA=1; } void delay (uint ms) { unsigned char i,j; for(i =0; i { _nop_(); _nop_(); _nop_(); } } static void time0_int (void) interrupt 1 using 0 { T0count ++; } void t1(void) interrupt 3 using 0 { time1tick++; TH1=(65536-50000)/256;//50ms中断一次,中断50次完成1秒定时,计算初值 TL1=(65536-50000)%256; if (time1tick==10*a) { time1tick=0; TR0=0; TR1=0; ET0=0; ET1=0; } } void display (void) { x=256*T0count+TL0;//转换成10进制 i=7; //数码管的显示高位为数据的低位 while(x)//赋值 { count[i]=x%10; x=x/10; i--; } while(i--) { count[i]=10;//修改 } for(i=0;i<8;i++) { if(i==7&&j==1) { P1=0x80; delay(1); } P0=dispbit[i]; P1=dispcode[count[i]]; delay(1); } } //void int0_int(void) interrupt 0 //{ // j=1; //} //void int1_int(void) interrupt 3 //{ // j=0; //} void main() { if(!k2) {delay(5); if(!k2) j=0; else ……………………
史海拾趣
|
嵌入式Linux开发公益体验活动介绍(5月16号本周六) (目前已经只剩6个名额,预报从速!!) 体验活动目标: 本活动针对嵌入式Linux开发的初学人员,能快速了解嵌入式Linux ...… 查看全部问答> |
|
求本书 the indispensable pc hardware book 哪有啊 找了半天了谢谢各位大大了 求本书 the indispensable pc hardware book 哪有啊 找了半天了谢谢各位大大了… 查看全部问答> |
|
最近手里有点430的片子,大家一起想想看做个什么开发板,只限F149和F5438,我只有这两种片子,建议用5438搞,原则是功能外设一定要多,价格成本一定要低,大家多提意见,我选择贡献最大的5名坛友到时每人送一块开发板pcb+430CPU一枚,具体大家可以 ...… 查看全部问答> |




