Hpv52hpv16高危阳性严重吗吗

403 Forbidden
403 Forbidden怎样用keil编写4位数码管显示1234的程序
我的图书馆
怎样用keil编写4位数码管显示1234的程序
为了帮助网友解决“怎样用keil编写4位数码管显示1234”相关的问题,中国学网通过互联网对“怎样用keil编写4位数码管显示1234”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:怎样用keil编写4位数码管显示1234的程序,具体解决方案如下:解决方案1: 你具体哪一步不会呢。 追问: 我就是不懂编程,老师让我们做4位LED数码管动态显示设计,用Keil和protues两个软件 回答: keil是汇编软件生成hex文件,然后加载到proteus里面就可以仿真了。你是不懂代码怎么写呢,还是不会用软件呢 追问: 两个软件都差不多会用了,就是不会写那个程序,你能不能帮帮我呢? 回答: /***************************************************************************标题:&数码管的显示效果:&显示1234,从这个例子可以学习多位数码管的动态显示技术******************************************************************************///头文件:#include 'reg51.h'//变量定义:unsigned char table[]=&&&{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};&&&&&//表:共阳数码管 0-9 //引脚定义:&&sbit SMG_q = P1^0;&//定义数码管阳级控制脚(千位)sbit SMG_b = P1^1;&//定义数码管阳级控制脚(百位)sbit SMG_s = P1^2;&//定义数码管阳级控制脚(十位)sbit SMG_g = P1^3;&//定义数码管阳级控制脚(个位)//函数声明:void delay(void); //延时子函时//主函数,C语言的入口函数:&&void main(void)& {&unsigned char i=0;&//作为查表的索引号&while(1)&&&//不停的循环扫描,不扫描则不显示或显示不正确,即为动态显示,&{&//数码管显示 1234,可自行修改&&SMG_q=0;&&//选择千位数码管&&P0=table[1];&//查找'1'定义好的数码管段值与P0口输出,显示相应的1&&delay();&&//加入短暂延时&&P0=0XFF;&&//清除数码管显示,因是共阳型,所以不是0&&SMG_q=1;&&//关闭千位数码管&&SMG_b=0;&&//选择百位数码管&&P0=table[2];&//查找'2'定义好的数码管段值与P0口输出,显示相应的2&&delay();&&//加入短暂延时&&P0=0XFF;&&//清除数码管显示,因是共阳型,所以不是0&&SMG_b=1;&&//关闭百位数码管&&&&SMG_s=0;&&//选择十位数码管&&P0=table[3];&//查找'2'定义好的数码管段值与P0口输出,显示相应的2&&delay();&&//加入短暂延时&&P0=0XFF;&&//清除数码管显示,因是共阳型,所以不是0&&SMG_s=1;&&//关闭十位数码管&&SMG_g=0;&&//选择个位数码管&&P0=table[4];&//查找'2'定义好的数码管段值与P0口输出,显示相应的2&&delay();&&//加入短暂延时&&P0=0XFF;&&//清除数码管显示,因是共阳型,所以不是0&&SMG_g=1;&&//关闭个位数码管&}}//延时子函数,短暂延时void delay(void){&&&unsigned char i=10;&while(i--);} 追问: 额,我在那个Keil软件里就写这个吗?全部都要写吗? 回答: 恩,不清楚再问我。 追问: 后面的中文注释也要输进去啊,那我是不是可以直接复制啊? 回答: 后面的中文是注释,不参加编译,只是为了你看着方便。你全部复制下来,一个字都不用改的。不清楚再问我 追问: 我能不能加一下你的QQ啊,我好像有好多问题的,怕说不清楚,拜托啦 回答: 看来你的C语言也没学好。 追问: 就是没学过啦,老师都让我们自学呢,可是我又比较笨啊,额,帮帮忙啦,加一下QQ啦,我不会骚扰你的啊 回答: 留下你的,我加你吧 追问: 太感谢你啦,我的QQ是 解决方案2: 这是用C编的:共阴数码管#include&reg52.h&#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;uint temp=1234;uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;void play(uint);void delay(uint);void main() {while(1) {play(temp); }}void play(uint temp){dula=1;P0=table[temp/1000];dula=0;P0=0 wela=1;P0=0xf7;wela=0;delay(5);dula=1;P0=table[temp%];dula=0;P0=0 wela=1;P0=0wela=0;delay(5);dula=1;P0=table[temp%];dula=0;P0=0wela=1;P0=0wela=0;delay(5);dula=1;P0=table[temp%10];dula=0;P0=0wela=1;P0=0wela=0;delay(5);}void delay(uint z){uint x,y;for(x=z;x&0;x--)for(y=110;y&0;y--);}解决方案3: 刚刚认识keil软件怎么学才能学的好哦。。 有什么好书货好资料推诚下吗。 谢谢。 通过对数据库的索引,我们还为您准备了:问:尽量给代码 我是初学者 还有不懂的那些硬件的接法 解读器 还有数码管怎...答:#include #include sbit wei=P1^0; sbit duan=P1^1; int w[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; int i, void main() { TMOD=0X01; TH0=()/256; TL0=()%256; EA=1; ET0=1; TR0=1; tt=0; i=0; temp...===========================================问:尽量给代码 我是初学者 还有不懂的那些硬件的接法 解读器 还有数码管怎...答:很难么?有没有解码器哦,没解码器,用程序来解码。共阴还是共阳。基础还是得你自己去学习。===========================================问:尽量给代码 我是初学者 还有不懂的那些硬件的接法 解读器 还有数码管怎...答:MOV 31H,#01H MOV 32H,#02H MOV 33H,#03H MOV 34H,#04H MOV 35H,#05H MOV 36H,#06H ACALL D0 JMP $-2 D0: MOV R0,#31H MOV R2,#B MOV DPTR,#TAB D1: ORL P1,#B MOV A,@R0 MOVC A,@A DPTR MOV R3,#8 D2: RLC A MOV P3.2,C SETB P...===========================================问:我写的程序如下,第一行四个键盘,摁了没用,数码管没反应,其他的12个...答:第一行四个键盘,摁了没用,数码管没反应, ---- 是 1234 这四个按键吗? 程序,太长。 四行按键的程序,好像都是雷同的,应该没有什么问题。 键盘,是自己焊接的吗? 是不是某一个引脚,虚焊?===========================================问:#include&reg51.h& //#include&INTRINS.H& unsigned char a,b,c,d; unsi...答:/***************显示子程序**********************/ void display(unsigned char bai,unsigned char shi,unsigned char ge,unsigned char xs) { P3=dispbitcode[0]; P0=dispcode[bai]; //显示佰位 delay(5); P3=dispbitcode[1]; P0=dispcode[sh...===========================================问:#include&reg51.h&sbit a=P3^0;sbit b=P3^1;sbit c=P3^2;sbit d=P3^3;un...答:#include sbit a = P3^0; sbit b = P3^1; sbit c = P3^2; sbit d = P3^3; unsigned char code dcode[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay1ms(unsigned int x) { while(x--) for (j = 0...===========================================问:三个按键分别为开始、暂停、加\减。当系统复位后,初试时间为00.00.00,...答:我可以写C语言程序,名是联系 方式===========================================问:让89处1单片机驱动四位数码管,显示 1234.求电路图及程序!!!急!!!...答:下列程序经过实验,可以满足题目要求. ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 70H, #04H MOV 71H, #03H MOV 72H, #02H MOV 73H, #01H ;------------------------------- M_LOOP: LCALL DISP AJMP M_LOOP ;------------------------------- DI...===========================================很难么?有没有解码器哦,没解码器,用程序来解码。共阴还是共阳。基础还是得你自己去学习。===========================================里边存放数码管显示0~9的数据,之后定义一个display显示函数,传递参数但不返回参数,然后将传递的参数()分解成4哥单个数,然后依次选择要显示的数码管和数据,紧...===========================================希望对你有帮助!呵呵俺又来了怎么还没有调试好呀俺来帮你调试吧 先看看错误的现象:是不是笔画混乱要显示1却显示的好像是8呀===========================================呵呵 俺又来了 怎么还没有调试好呀 俺来帮你调试吧 先看看错误的现象: 是不是笔画混乱 要显示1 却显示的好像是8呀=========================================== MAIN: MOV DPTR, #TABLE MOV R0, #00H MOV R1, #01H START: MOV A, R0 MOVC A, @A DPTR MOV P2, A MOV P1, R1 MOV A, R1 RL A MOV R1, A C...=========================================== n2=N/100%10; n3=N/10%10; n4=N%10; P1_0=0; //P1_0 P1_1 P1_2 P1_3分别为四位的位选,P0为断选, P0=table[n1]; //table为数码管八...===========================================方法一:两个HD7279,正好可以驱动16个数码管,电路简单,不占单片机资源 方法二:74HC154译码扫描,或者两个P口扫描,需要16个三极管驱动或者两片ULN2003之类的,比较占用...===========================================是显示问题,和DS18B20无关。你先做一个简单的四位数码管显示,如显示1234,可以了再找测温程序 的问题。===========================================这是可以的,分别让两个四位数码管显示四位数,合在一起就是八位数。原理:两个四位数码管的数据针脚分别相连后,与P0口相连;位选针脚分别与P3口相连,这样就实现了用两个...=========================================== dis_buf[5]=350.5/100; //得出百位3 count=350.5%100;//得出余数50.5 dis_buf[6]=50.5/10; //得十位 dis_buf[7]=50.5%10; //得余数0.5 dis_buf[8]=0.5/1; //得个位0 dis_buf[8]=0.5%...===========================================
猜你感兴趣:
淘宝热门折扣推荐:
TA的最新馆藏Keil中 Program Size信息 - PCB设计制作/仿真 - 中国电子DIY之家 -
Powered by Discuz! Archiver
数电menmenchaig
Keil中 Program Size信息
本帖最后由 数电menmenchaig 于
10:53 编辑
在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:
Program Size: Code=6320RO-data=4864RW-data=44ZI-data=1636
代表的意思:
Code :是程序中代码所占字节大小
RO-data :程序中所定义的指令和常量大小 (个人理解 :Read Only)
RW-data :程序中已初始化的变量大小 (个人理解”:Read/Write)
ZI-Data :程序中未初始化的变量大小 (个人理解 :Zero Initialize)
ROM(Flash) size = Code+RO-data+RW-
RAM size = RW-data+ZI-data
可以通过.map查看占用的flash和ram大小
1、在Keil中编译后下方显示 Program Size: data=11.0 xdata=0 code=282 其中这些数字代表什么意思?
“ data=11.0 xdata=0 code=282 ”
代表生成的各个段的大小。具体来说,data=11.0代表你这段程序生成的目标代码所占用单片机的内部RAM空间是11.0个字节;xdata是片外RAM空间,xdata=0表示没有使用片外RAM空间数据;code=282代表生成的代码大小(即ROM空间,这里一般指Flash)是282字节。
2、用keil编译51程序时,下面的Program Size: data=47.0 xdata=0 code=3092,是什么意思?各个值容许最大是多少?
data=47.0 编译器编译后,程序总共需要占用47字节的片内RAM空间。注意这个大小仅仅是累加而已,并未考虑各个块之间的空隙,也就是说实际占用的RAM空间可能多于此数值。
xdata=0 程序未应用片外RAM(映射)空间
code=3092 编译器编译出的各个代码块总共大小为3092字节。与前面的data一样,由于各个块之间可能存在空隙,因此实际生成的代码大小可能多于此数值。
3、*** ERROR L114: SEGMENT DOES NOT FIT
Program Size: data=144.1 xdata=0 code=4600
我用的是C芯片,data sheet 上面4352 Bytes internal data RAM
请问这里面这个datasheet上面的4352是要大于code,还是data?program size 给的三个东东分别是什么?有什么区别?
这个问题超了如何解决?
4352是在片内集成了外部ram,51结构的内部ram最多256。外部ram要用movx访问的,所以声明时要用xdata关键字,如
data=144.1即为内部ram,用的是mov访问。
一般ram小于128无需要注意,128-255则需要用idata声明,255以上要用xdata声明。你这个情况无需用外部ram,用idata即可。
code=4600为程序,需要小于rom或flash大小。
0-128字节直接寻址,属内部RAM;128-256间接寻址,属内部RAM;256-1280间接寻址,属外部RAM;要想用外部RAM必须定义成xdata
我的芯片说明上面标注的的6,按理说144.1的data是不是可以不用改声明?声明是在哪里改?。。。我是改例程编的,是一个单独的声明文件么?
声明变量。
你没仔细看第二段吧。
128以下无需注意,char ***; int ***即可
&128,且&256,【必须】用idata修饰,如char idata ***; int idata ***;
哦,确实刚才没懂,谢谢。再麻烦一下,是说只是该一部分就行,还是主程序里面的所有都要改还是,还是子程序也都要改?
理论上,改部分就行了,保证直接声明的小于128就OK。
不过我的习惯是优先用idata,省得算,特别是子程序在不同文件的,算起来麻烦。
关键的变量用无修饰的,因为idata用间接访问,无修饰直接访问,速度快一些。
4、我用keil编译C程序时, Build窗口(没有错误与警告)显示:Program Size:data 67.1 ,xdata 758,code 4538,有那位同志知道这三个数值的单位分别是什么吗?
补充:主要是涉及个人实际制作,担心片内RAM不够用。
& &我用的keil vu3 汉化版虽然不是正版的keil,但它并没有2K代码限制。
发现问题的经过:
& && & 起初认为data的单位是B。可是data 的数值不能再大了,“源文件浏览器”中发现一些简单的变量在xdata区。即使将这些变量用data来定义,“源文件浏览器”还是告诉我这些变量在xdata区,而且Build窗口(没有错误与警告)仍旧显示:Program Size:data 67.1 ,xdata 758,code 4538。难道真的是“单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.”了吗?真是这样的话,data的单位肯定不是B,因为最小的51单片机RAM也有128B呀。
思来想去,不得其解。望各位师叔师姑师兄师姐伸出援手。
问题补充:
后来都已经用上AT89C51RC2了,而且target选项卡也在“使用片内RAM”前打上勾了,RC2足足有1280B的RAM呀。仍是Program Size:data 67.1 ,xdata 758,code 4538。
我的提问没有个主题,现在补充一下吧。就是:上述data在Build窗口的单位是多少?67.1是data的最大值了吗?还是说可以通过一些设置提高data值的上限?
先说说这几个词是什么意思:
1,DATA,51的内部RAM,只有128B(字节)大小,不管是最新的什么增强型单片机;
2,XDATA,外部RAM,只能使用MOVX寻址
3,CODE,代码区,即是你的代码的大小,AT89C51为4K,C52为8K等,增强型的有更多的选择。
然后说明一下,几种RAM的区别:
1,DATA,也是上面1提到的DATA RAM,占51的128B;
2,IDATA,大小也为128B,与DATA构成256字节的内存(如AT89C52)
3,PDATA,外部RAM的前256B(就是一个页的大小),是XDATA的一部分;
4,XDATA,外部RAM
所以你的那个单片机的1280B,其实组成为:
DATA :128B
IDATA:128B
XDATA:1024B
所以你的问题,“使用片内RAM”打勾只是软件仿真用的;你的XDATA用了758B,说明你特意用XDATA关键字定了这么大的内存,比如大数组或者内存模式时,使用了lager模式,那么编译器会自动把超出的部分放到XDATA里,我猜你应该是这里选择了lager模式,不过你的内容这么大,也只能选择lager模式。
5、怎么看程序写了多少行? 把程序烧到单片机中,怎么看程序占了多大的ROM?
问题补充:
我的Edit 下面没有configuration 怎么办
1.怎么看程序写了多少行:点击Edit-configuration...,选择Editor标签,在该标签的左下角,选中Show Line Number,这样在编辑界面就会有行数了.若果你想看汇编有多少行,只需要反汇编一下.
2.怎么看程序占了多大的内存:程序编译成功后,在编译器界面下方的build窗口中,会给出程序占用的存储大小,比如:Program Size: data=13.0 xdata=0 code=298 ,说明ROM被占用了298字节.也可以查看你工程文件夹下的.map文件,在该文件的最后给出了ROM和RAM的详细使用情况,比如:
=====================================================================
& & Total ROSize (Code + RO Data)& && && && && &6320 (& &6.17kB)
& & Total RWSize (RW Data + ZI Data)& && && && &1328 (& &1.30kB)
& & Total ROM Size (Code + RO Data + RW Data)& && & 6388 (& &6.24kB)
=====================================================================
查看完整版本:君,已阅读到文档的结尾了呢~~
怎么在keil里建立头文件怎样,新建,如何,头文件,在keil,创建头文件,建立头文件,keil,红头文件
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
怎么在keil里建立头文件
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 hpv52高危阳性严重吗 的文章

 

随机推荐