完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 yangyc401 于 2013-11-21 18:38 编辑
我C语言很基础····· 这个程序有很多地方都不明白·求大侠给讲解········· 红字部分是我自己理解的·和想不明白的地方············· 可能我表达的会有些不清楚···最好大侠能深刻的讲解下····· C语言我是自学的·上学那会都没怎么学··而且工作几年了都忘了·········其他的不说了·多谢帮助·多多包涵·····谢谢关照····· 源程序····· #include #include #include"display.h" #include"delay.h" #include"keyboard.h" main() { unsigned char num,i,sign; unsigned char temp[8]; unsigned char s; bit firstflag; int a=0,b=0; init_timer0(); while(1) { num=keypro(); if(num!=0xff) { if(i==0) { for(s=0;s<8;s++) tempdata } if(('+'==num)||(i==8)||('-'==num)||('x'==num)||('/'==num)||('='==num))【1】如果按键按下这些符号键或者i==8就执行下面语句· { i=0; if(firstflag==0)【2】这句话不太明白·为什么是等于0呢·等于1不可以吗·还有为什么要使用这么一个条件语句呢· { sscanf(temp,"%d",&a);【3】sscanf不太明白他的作用·百度后理解是从temp中输入一个数字;不知道对不对· firstflag=1;【4】这时候为什么是1了呢···不明白·· } else sscanf(temp,"%d",&b); for(s=0;s<8;s++) temp if(num!='=') sign=num; else { firstflag=0;【5】同样不理解···· switch(sign) { case '+':a=a+b;break; case '-':a=a-b;break; case 'x':a=a*b;break; case '/':a=a/b;break; default:break; } sprintf(temp,"%d",a);【6】sprintf的作用也是不太明白·百度后也是从temp中输出一个数组··就不明白写这两个命令的作用是什么? for(s=0;s<8;s++) { if(temp tempdata else if(temp tempdata else tempdata } sign=0;a=b=0; for(s=0;s<8;s++) temp } } else if(i<16) { temp=num+'0';【8】·那这句话是不是由数字转换成ASCII,我那么麻烦干什么呢·我吧上面的temp tempdata=duanma[num]; i++; } } } } |
|
相关推荐
1个回答
|
|
写的好乱啊,建议你去看看单片机寄存器的定义和使用方法
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
364 浏览 0 评论
356 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
526 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
574 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
542 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10709 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 00:22 , Processed in 0.534015 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191