ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:34.85KB ,
资源ID:6246273      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6246273.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(16进制转换算成10进制程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

16进制转换算成10进制程序.docx

1、16进制转换算成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;i+) di=tmj; j-; /

4、把显示位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=P37;sbit rst=P33;

5、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_();_nop_();_nop_(); _n

6、op_();_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=p36=p37=0;nop();v

7、pp=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) return; RI=0; d=SBUF;

8、 /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+; break; case 3: ca

9、se 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(); ale=0; / for

10、(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;iflash) disp=0;led=!led; /HT1380实时时钟驱动程序sbit clock_dat=P01;sbit clock_clk=P02;sbit clock_rst=P03;sbit a0=ACC0;sbit a1=ACC1;sbit a2=ACC2;sbit a3=ACC3;sbit a4=ACC4;sbit a5

11、=ACC5;sbit a6=ACC6;sbit a7=ACC7;void clock_out(unsigned char dd) ACC=dd; clock_dat=a0;clock_clk=1;clock_clk=0; clock_dat=a1;clock_clk=1;clock_clk=0; clock_dat=a2;clock_clk=1;clock_clk=0; clock_dat=a3;clock_clk=1;clock_clk=0; clock_dat=a4;clock_clk=1;clock_clk=0; clock_dat=a5;clock_clk=1;clock_clk=0;

12、 clock_dat=a6;clock_clk=1;clock_clk=0; clock_dat=a7;clock_clk=1;clock_clk=0;unsigned char clock_in(void) clock_dat=1; a0=clock_dat; clock_clk=1;clock_clk=0;a1=clock_dat; clock_clk=1;clock_clk=0;a2=clock_dat; clock_clk=1;clock_clk=0;a3=clock_dat; clock_clk=1;clock_clk=0;a4=clock_dat; clock_clk=1;cloc

13、k_clk=0;a5=clock_dat; clock_clk=1;clock_clk=0;a6=clock_dat; clock_clk=1;clock_clk=0;a7=clock_dat; return(ACC);unsigned char read_clock(unsigned char ord) unsigned char dd=0; clock_clk=0; clock_rst=0; clock_rst=1; clock_out(ord); dd=clock_in(); clock_rst=0; clock_clk=1; return(dd);void write_clock(un

14、signed char ord,unsigned char dd) clock_clk=0; clock_rst=0; clock_rst=1; clock_out(ord); clock_out(dd); clock_rst=0; clock_clk=1;/*单个汉字库字摸提取程序,tc2.0编译*/i nclude stdio.hi nclude dos.hi nclude process.hi nclude string.hvoid main(void) long int num_bytes,qm,wm; unsigned char d,i,j,k,a132,b132; unsigned

15、 char * data; unsigned char * hz; static unsigned char dd103; FILE *fp; if (fp=fopen(hzk16f,rb)=NULL) printf(cant open hzk16n); exit(1); clrscr(); while (1) data=(unsigned char *) malloc(33); printf(please input:n); scanf(%s,dd); /*输入一个汉字*/ qm=* dd; /*通过区位码计算其在hzk16f文件中的偏移地址*/ qm=qm-161; if (qm87) e

16、xit(0); wm=* (dd+1); wm=wm-161; if (wm94) exit(0); num_bytes=(long)qm*94+wm)*32; fseek(fp,num_bytes,SEEK_SET); fgets(data,33,fp); for (i=0;i32;i+) bi=* data+; for (i=0;i32;i+=2) ai/2=bi; for (i=0;i32;i+=2) ai/2+16=bi+1; for (i=8;i16;i+) bi=ai; for (i=8;i16;i+) ai=ai+8; for (i=8;i16;i+) ai+8=bi; /*转换

17、,hzf16f在电脑的储存格式是以行为字节计算的,一般的lcd都采用以列为字节计算*/ for (k=0;k32;k+=8) for (j=0;j8;j+) d=0; for (i=0;i=0x80) switch (i) case 0:d+=1;break; case 1:d+=2;break; case 2:d+=4;break; case 3:d+=8;break; case 4:d+=0x10;break; case 5:d+=0x20;break; case 6:d+=0x40;break; case 7:d+=0x80;break; for (i=0;i8;i+) ai+k=1;

18、bj+k=d; clrscr(); printf(/*%s:*/n,dd); /*输出0x00格式的16进制数*/ for (k=0;k32;k+=8) for (j=0;j30)&(key_l30) /释放按键,如果之前按键时间少于1秒,读入键值 key=kpush; if (+key_h)200) key_h=200; key_l=0; if (key=0x80) key=0; /如果之前的按键为长按1秒,清除键值 else kpush=P1&0x7; key_l+; if (key_l800)&(key_h30) /如果按键超过1秒,键值加0x80标志长按键 key=kpush|0x80; key_h=0; key_l=0; void main(void) TMOD=0x1;TR0=1;ET0=1;EA=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1