我想用C51编一个智能电压表,用数码管显示,不知道按键和数码管显示菜单怎么编(主要用于校准,CT设置)?
也许您对程序说的话无关紧要,您仍然不直观地理解它们,所以我会给您一个真正的程序。
这是数字管的驾驶电路,采样压力为0-5 V。
包括 #include #defineucharunSignedChar#defineUintunSignent#defineUintunSignent#definen4 sfrp0 = 0x8 0; SFRP1 = 0x9 0; sfrp2 = 0xa0; sfrp3 = 0xb0; //可以在没有sbitst = p2 ^7 的情况下完成此定义; sbite = p2 ^5 ; sbiteoc = p2 ^6 ; sbitp0_7 = p0^7 ; sbitp3 _0 = p3 ^0; sbitp3 _1 = p3 ^1 ; sbitp3 _2 = p3 ^2 ; peek = p2 ^0; sbeshi = p2 ^1 ; sbitbai = p2 ^2 ; //定义uinta_data1 ,a_data2 ,a_data3 ,temp; ucharsum1 ; uchacodetab [] = {0xc0.0xf9 ,0xa4 ,0xb0,0x9 9 .0x9 2 ,0x8 2 ,0x8 2 ,0xf8 ,0x8 0.0x9 0}; // UCHARTETTA细分[] = {0.0.0.0}; voiddelaynms(uintx); //延迟程序nms voidzh_display(); //修改voidAdcst_08 09 ()显示程序后首先转弯; // ADC启动程序voidmain(){while(1 ){adcst_08 09 (); //单击ADC开始ZH_DISPLAY程序(); //单击“显示程序”} // ADC启动VoidCst_08 09 (){uchari; charcount; intsum = 0; for(i = 0; i <4 ; i ++){p3 _0 = 0; p3 _1 = 0; p3 _2 = 0; //选择第一个通道OE = 0; st = 0; st = 1 ; _nop _(); st = 0; 延迟(1 ); 而(!eoc); OE = 1 ; getData [i] = p1 ; oe = 0;} per(count = 0; count 0){for(i = 0; i
单片机c51考试基础部分:要求用两个数码管动态显示两位十进制数00~59,数据 约1S加一; 求程序
#include #defineporp0sbiteg1 = p2 ^ 0; sbitseg2 = p2 ^ 1 ; UnignedCharCodetable [] = {0x3 f,0x06 .0x5 b,0x4 f,0x6 6 ,
0x6 d,0x7 d,0x07 .0x7 f,0x6 f}; / /关节阴极的数字管一个点燃的cper1 ,time2 ,时间; unsigningChatCount; bitflag; voidTimer0_init(){tmod = 0x01 ; th0 =(2 5 6 * 2 5 6 -5 000) / 2 5 6 ; TL0 =(2 5 6 * 2 5 6 -5 000)%2 5 6 ; ET0 = 1 ; tr0 = 1 ; ea = 1 ;} voidm ain(){timer0_init(); seg1 = 1 ; seg2 = 1 ; 而(1 ){time1 = time / 1 0; time2 = time%1 0;}} vidtimer0(void)interrupt1 {th0 =(2 5 6 * 2 5 6 -5 000) / 2 5 6 ; TL0 =(2 5 6 * 2 5 6 -5 000)%2 5 6 ; flag =〜标志; 计数++; if(count == 2 00){count = 0; 时间++; 如果(时间== 6 0)时间= 0;} if(flag == 1 ){port = table [time2 ]; seg1 = 0; seg2 = 1 ;} else {port = table [time1 ]; seg1 = 1 ; seg2 = 0;}}
如何用c51动态数码管显示12344321
使用延迟功能,动态数字管的出现是因为我们的眼睛具有视觉保留。
c51单片机 怎样实现静态数码管动态显示的数字等于点亮LED灯的个数?
微控制器C5 1 ,静态数字管指示LED灯的数量,易于触及。
连接8 LED灯与P3 端口,负电极连接到P3 端口。
同时将许多光添加到一个光中,只需使用变量来计数并发送数字管以显示它。
模拟图如下。