4、然后如图所示,四个字已经删去,只要改成数字相应的代码即可。5、这里改成的是代表数字0的代码,如图所示。6、最后写好代码后,将生成的hex文件写进单片机,数码管显示的数字就变成0了。
unsigned char data dis_digit; //dis_digit---位选通值, 传送到P2口用于选通当 //前数码管的数值, 如等于0xfe时,选通P2.0口数码管 unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
1、在主程序中一直扫描显示程序 2、通过按键触发中断 在中断里面进行计数 3、每有一次中断触发 计数指针加一 4、加够10次后指针恢复初始状态 即清零
清0也应该加一个按键,共3个按键,程序如下 include<reg51.h> define uchar unsigned char define uint unsigned int sbit k1=P1^0;//清0 sbit k2=P1^4;//减1 sbit k3=P1^7;//加1 uchar seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar counter;void delay...
unsigned char xs_d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned int time=0,s,sz;delay(unsigned int k){ unsigned int i,j;for(i=0;i<k;i++)for(j=0;j<125;j++);}INT_0()interrupt 0 { delay(10);if(INT0==0){sz++;<br> if(sz>2){sz=...
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay(){ unsigned int j;for(j=20000;j>0;j--);//修改j 的初值,可改变计数的速度 } void main(){ char n,x=1;//先加法计数 while(1){ P0=tab[n/10];//显示十位 P2=tab[n%10]...
在编程时,这些编码的表示方法如下:unsigned char codetable[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e}; 这里,codetable是数组名,后面需加上相应的数组元素。数组编码法的引入使得我们能够更高效地控制数码管的...
Write1302(0x8E,0x00);//WP=0,可以写入 } void DS1302_SetTime(unsigned char Address, unsigned char Value) // 设置时间函数 { DS1302_SetProtect(0); Write1302(Address, ((Value/10)<<4 | (Value%10))); //高4位为十位,低4位为个位 } void DS1302_GetTime(SYSTEMTIME *Time) { unsigned...
我的是共阳数码管,是8位的,我选通的是第一位,你可以自己改一个地方\x0d\x0a#include\x0d\x0aunsigned char code s8[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\x0d\x0avoid delay(int i)\x0d\x0a{\x0d\x0a int j;\x0d\x0a for(;i>=0;i...
define FALSE0//定义布尔量'0':假 define uchar unsigned char//定义 无符号字符型数据 简称 define uint unsigned int//定义 无符号整型数据 简称 define th00xfc define tl00x18//1ms at 12MHz(定时器工作模式1 状态)define SEG_Num3//数码管位数 define SEG_DataP0//数码管段驱动接口 defin...