1、16进制转换算成10进制程序doc16进制转换算成10进制程序STC 单片机中的eeprom写入和读取6位的10进制数需要进行数据类型转换吗?具体是怎样现的呢?2013-06-04 10:24满意回答提问者采纳2013-06-04 10:27 6位10进制数,转换为16进制,再写入EEPROM.long x;分4个字节写入uchar c1;c1= x24; /最高字节c1=x16; /次高字节c1=x8; /次低字节c1=x&0xff; /最低字节分别写入就可以了。追问我用的是stc12C5A60S2单片机,我将转化轩16进制的数保存在一个数组,然后整个数组写进去,当需要的时候再读出来还原成十
2、进制数可否呢?回答当然可以。追问想了一下,不知应该如何用单片机C语言去实现啊,可以指导下不?提问者评价谢谢哈评论|ningling_21知道达人|来自团队单片机学习|十级采纳率26%擅长:其他编程语言汇编语言C/C+16进制转换算成10进制程序来源:本站整理 作者:佚名2009年01月14日 23:330 分享 QQ空间 新浪微博 腾讯微博 人人网 导读 16进制转换算成10进制程序 unsigned char d10; /用于显示的10位显示缓存 /=关键词:进制16进制转换算成10进制程序unsigned char d10; /用于显示的10位显示缓存/= /16进制to10进制输出子程序
3、:显示数据,起始位,结束位,有无小数点/=void output(unsigned long dd,unsigned char s,unsigned char e,unsigned char dip) unsigned long div; unsigned char tm8,i,j; div=10000000; for (i=0;i8;i+) tmi=dd/div; dd%=div; div/=10; for (i=0;i6;i+) if (tmi!=0) break; tmi=nul; tm5|=dip; /小数点控制,请看“串行LED数码管显示驱动程序” j=7; for (i=s;ie;
4、i+) di=tmj; j-; /把显示位5-9位的10进制数转换成为16进制数unsigned int input(void) unsigned int dd,dat; dd=10000;dat=0; for (i=5;i10;i+) dat+=dd*temp; dd/=10; return(dat);/* 89C51系列CPU编程器接收CPU程序*/i nclude i nclude i nclude #define e 8#define p 9#define l 10sbit led=P32;sbit p27=P27;sbit p26=P26;sbit p36=P36;sbit p37=
5、P37;sbit rst=P33;sbit ale=P35;sbit vpp=P34;bit b_break;unsigned int adds;/ 13.8mSvoid int_t0(void) interrupt 1 TH0=-100; b_break=1;void wait(unsigned char w) unsigned int t=w*184; b_break=0; TL0=-t%256-1;TH0=-t/256; while (b_break=0) void nop(void) _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_n
6、op_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();unsigned char command(void) TH0=-100;b_break=0; while (RI=0) if (b_break=1) return(0); RI=0; return(SBUF);void earsure(unsigned char cpu) switch (cpu) case 1: /89C51 case 2:rst=p26=1;p27=
7、p36=p37=0;nop();vpp=1;nop(); ale=0;wait(110);ale=1;nop(); break; case 3: case 4:break; case 5: case 6:break; void program(unsigned char cpu) unsigned int bdata adds=0; unsigned char d; switch (cpu) case 1: /89C51 case 2: p36=p37=1;rst=1; while (1) TH0=-100;b_break=0; while (RI=0) if (b_break=1) retu
8、rn; RI=0; d=SBUF; /address P0=adds%256; P2=adds/256; p27=1; /data P1=d; nop(); /48clcl /vpp vpp=1; nop(); /48clcl /ale ale=0; wait(1);/100uS ale=1; nop(); /10uS vpp=0; nop(); /48clcl p27=0; nop(); /48clcl P1=0xff; TH0=-100;b_break=0; while (d!=P1) if (b_break=1) return; /data polling SBUF=d; adds+;
9、break; case 3: case 4: case 5: case 6:break; void lock(unsigned char cpu) unsigned char i; switch (cpu) case 1: /89c51 case 2: /lock 1 rst=p26=p36=p27=p37=1;nop(); vpp=1; nop(); ale=0; / for (i=0;i6;i+) wait(100); wait(1); ale=1; nop(); vpp=0; nop(); /lock 2 rst=p26=p27=1;p36=p37=0;nop(); vpp=1; nop
10、(); ale=0; / for (i=0;i6;i+) wait(100); wait(1); ale=1; nop(); vpp=0; nop(); /lock 3 rst=p26=p36=1;p27=p37=0;nop(); vpp=1; nop(); ale=0; / for (i=0;i6;i+) wait(100); wait(1); ale=1; nop(); vpp=0; nop(); break; case 3: case 4: case 5: case 6:break; void main(void) unsigned char disp,flash,temp,cpu; EA=1; SCON=0xd8;PCON=0x80; TMOD=0x21; TL1=TH1=0xff;TR1=1; TH0=-100;ET0=TR0=1; flash=0x80; while (1) temp=command();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1