
using namespace std
int main(){
char c
int s=0,z=0,k=0,q=0
while((c=getchar())!='\n'){
int x=int(c)
if(x>=48&&x<=57)s++
else if((x>=65&&x<=90)||(x>=97&&x<=122))z++
else if(x=32)k++
else q++
}
cout<<"you have input "<<s<<" numbers"<<endl
cout<<"you have input "<<z<<" letters"<<endl
cout<<"you have input "<<k<<" spaces"<<endl
cout<<"you have input "<<q<<" some else chars"<<endl
return 0
}
DATAS SEGMENTNUM DB 10
DATA DB 10 ,0,12,-1,2,20,32,0,-14,25
X DB 0
Y DB 0
Z DB 0
DATAS ENDS
STACKS SEGMENT
此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV SI,OFFSET DATA
MOV CL,NUM
LOOP1:
MOV BL ,[SI]
CMP BL ,0H
JS SMALL
JE O
INC X
JMP GOON
O:INC Z
JMP GOON
SMALL:INC Y
GOON: INC SI
LOOP LOOP1
MOV AH,4CH
INT 21H
CODES ENDS
END START
具体程序如下:
#include <reg51.h>
#define uchar unsigned char
sbit P20=P2^0
void delay_ms(unsigned int ms) //1ms延时
{
uchar a
while(ms--)
for(a=123a>0a--)
}
uchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F}
void main()
{
while(1)
{ uchar b
P20=0
P0=tab[b]
delay_ms(1000)//1s延时
b++
if(b==10)
b=0
}
}
扩展资料:数码管原理
数码管常用段数一般为7段有的另加一个小数点,还有一种数码管是类似于3位“+1”型。数码管位数有半位,1,2,3,4,5,6,8,10位等。数码管根据LED的接法不同分为共阴和共阳两类,了解数码管的这些特性,数码管对编程是很重要的。
因为不同类型的数码管,除了数码管的硬件电路有差异外,数码管编程方法也是不同的。数码管的发光原理是一样的,只是数码管的电源极性不同而已。
数码管颜色有红,绿,蓝,黄等几种。数码管广泛用于仪表,时钟,车站,家电等场合。选用数码管时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用数码管内部引脚图片。
数码管引脚定义每一笔划都是对应数码管一个字母表示数码管DP是小数点。数码管透过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是数码管动态驱动。每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应。
尽管实际上各位数码管并非同时点亮LED数码管,但只要数码管扫描的速度足够快,数码管给人的印象就是一组稳定的显示资料,数码管不会有闪烁感,数码管动态显示的效果和静态显示是一样的,数码管能够节省大量的I/O口,而且数码管功耗更低。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)