c语言程序设计实例单片机c语言编程100个实例

c语言程序设计实例  时间:2021-08-24  阅读:()

求C语言程序设计实例,要100行以上,求高手解答,不要太难

#include "stdio.h" #include "graphics.h" #include "math.h" void Draw(int color); int t_x=320,t_y=240,t_r=40; /* SUN太阳参数,圆心坐标及半径 */ int d_x,d_y,d_r=20; /* D地球参数 */ int y_x,y_y,y_r=5; /* Y月亮参数 */ int j_x,j_y,j_r=8; /* J星参数 */ int m_x,m_y,m_r=10; /* M星参数 */ int s_x,s_y,s_r=4; /* S星参数 */ float th1=0,th2=0,th3=0,th4=0,th5=0;/* 各星相对太阳的角度 */ main() { int gd=DETECT,gm; int key=0; /* 保存键盘值?*/ int i; float r; initgraph(&gd,&gm,""); Draw(12); /* 先画一个 */ while(key!=0x11b) /* 如果按键==ESC键则退出 */ { Draw(0); /* 用背景色把画好的图洗掉 */ if(bioskey(1)) /* 如果有按键?*/ { key=bioskey(0); /* 取得按键的值 */ if(key==0x4b00) t_x-=10; /* 向上方向键 */ if(key==0x4d00) t_x+=10; /* 向下方向键 */ if(key==0x4800) t_y-=10; /* 向左方向键 */ if(key==0x5000) t_y+=10; /* 向右方向键 */ } th1+=0.001256; /* 各星按角度移动 */ if(th1>=6.28) th1-=6.28; /* 如果转了一圈,按0角度从新计算 */ th2+=0.01256; if(th2>=6.28) th2-=6.28; th3+=0.002512; if(th3>=6.28) th3-=6.28; th4+=0.000314; if(th4>=6.28) th4-=6.28; th5+=0.00628; if(th5>=6.28) th5-=6.28; r+=0.5; /* 让太阳半径动态增加 */ if(r>=40) r=20; /* 增大40后用从20从新开始 */ t_r=(int)r; Draw(12); /* 用颜色12画出图形 */ delay(1000); /* 稍等1秒钟看一下结果 */ } closegraph(); } void Draw(int color) /* 画图形 */ { setcolor(color); circle(t_x,t_y,t_r); /* 画太阳?*/ outtextxy(t_x-10,t_y-4,"SUN"); /* 显示太阳符号SUN */ d_x=t_x+130*cos(th1); /* 根据太阳位置计算地球位置X */ d_y=t_y+130*sin(th1); /* 根据太阳位置计算地球位置Y */ circle(d_x,d_y,d_r); /* 画地球 */ outtextxy(d_x-4,d_y-4,"D"); /* 显示地球符号D */ y_x=d_x+40*cos(th2); /* 根据地球位置计算月亮位置X */ y_y=d_y+40*sin(th2); /* 根据地球位置计算月亮位置Y */ circle(y_x,y_y,y_r); /* 画月亮 */ outtextxy(y_x-3,y_y-4,"Y"); /* 显示月亮符号Y */ j_x=t_x+60*cos(th3); /* 根据太阳位置计算J星位置X */ j_y=t_y+60*sin(th3); /* 根据太阳位置计算J星位置Y */ circle(j_x,j_y,j_r); /* 画J星 */ outtextxy(j_x-4,j_y-4,"J"); /* 显示J星符号J */ m_x=t_x+200*cos(th4); /* 根据太阳位置计算M星位置X */ m_y=t_y+200*sin(th4); /* 根据太阳位置计算M星位置Y */ circle(m_x,m_y,m_r); /* 画M星 */ outtextxy(m_x-4,m_y-4,"M"); /* 显示M星符号M */ s_x=t_x+230*cos(th5); /* 根据太阳位置计算S星位置X */ s_y=t_y+230*sin(th5); /* 根据太阳位置计算S星位置Y */ circle(s_x,s_y,s_r); /* 画S星,S星太小,所以没有显示符号 */ } 这个希望能用的上,我们也做这个,也是一样的要求

C语言程序的例子

#include<stdio.h> int main(void) { int he,cha,ji,yu,num1,num2; double shang; printf("Enter num1&num2:"); scanf("%d%d",&num1,&num2); he=num1+num2; cha=num1-num2; ji=num1*num2; shang=num1/num2; yu=num1%num2; printf("he=%d,cha=%d,ji=%d,shang=%.6f,yu=%d ",he,cha,ji,shang,yu); return 0; }

#include<stdio.h> int main(void) { int i,n; double e; double fact(int n); printf("Enter n:"); scanf("%d",&n); e=0; for(i=0;1<=n;i++){ e=e+fact(i); } printf("%lf",e); return 0; } double fact(int n) { int i; double product; product=1; for(i=1;i<=n;i++){ product=product*i; } return product; } #include<stdio.h> int main(void) { double x,y; printf("Enter x:"); scanf("%lf",&x); if(x<0) y=0; else if(x<=15) y=4*x/3; else y=2.5*x-10.5; printf("%lf",y); return 0; } #include<stdio.h> #include<math.h> int main(void) { int denminator,flag; double item,pi;

flag=1; denminator=1; item = 1.0; pi=0;

while(fabs(item)>=0.0001){ item=flag*1.0/denminator; pi=pi+item; flag=-flag; denminator=denminator+2; } pi=pi*4; printf("pi=%.4f ",pi); return 0; } 还有数组和指针的没有写,以后给补下

c语言编程实例

#include using namespace std; int sum=0; int f(int n)//递归主体 { if(n==0) return 1; sum+=n; f(--n); } int main() { int n; printf("input the n:"); scanf("%d",&n); f(n); printf("the sum :%d ",sum); return 1; }

C语言程序设计实例

C语言是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛。

主要有以下特点:   C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。

具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。

C语言的原型ALGOL60语言。

(也称为A语言) 63年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。

67年,MatinRichards对CPL语言进行了简化,于是产生了BCPL语言。

70年,KenThompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。

意思是将CPL语言煮干,提炼出它的精华。

并且他用B语言写了第一个UNIX操作系统。

73年,B语言也给人“煮”了一下,D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年DennisM.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

即是著名的ANSIC。

78年由贝尔实验室正式发表了C语言。

同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE”一书。

通常简称为《K

单片机c语言编程100个实例

51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。

C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。

2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。

3. ++var表示对变量var先增一;var—表示对变量后减一。

4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。

6. While( 1 ); 表示无限执行该语句,即死循环。

语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码 1. #include //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。

在某引脚输出低电平的编程方法:(比如P2.7引脚) 代码 1. #include //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚) 代码 1. #include //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。

P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。

P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的方法是异或1,而不取反的方法则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。

同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。

第一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。

加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。

注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。

接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。

说明原因。

发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。

只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。

实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。

只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。

开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。

同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。

代码 1. #include 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。

14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。

作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。

对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。

我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。

如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。

否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。

以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

无忧云-河南洛阳BGP,CEPH集群分布式存储,数据安全可靠,活动期间月付大优惠!

 无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点...

美国VPS 美国高防VPS 香港VPS 日本VPS 首月9元 百纵科技

百纵科技湖南百纵科技有限公司是一家具有ISP ICP 电信增值许可证的正规公司,多年不断转型探索现已颇具规模,公司成立于2009年 通过多年经营积累目前已独具一格,公司主要经营香港服务器,香港站群服务器,美国高防服务器,美国站群服务器,云服务器,母机租用托管!美国CN2云服务器,美国VPS,美国高防云主机,美国独立服务器,美国站群服务器,美国母机。美国原生IP支持大批量订货 合作 适用电商 亚马逊...

c语言程序设计实例为你推荐
74ls00如何利用74LS00实现反相器的功能移动开发移动应用开发具体做什么,不要复制粘贴,说简单点,女生适合吗?安卓开发环境搭建如何搭建安卓开发环境显示系统电视显示系统正在启动打不开怎么办监控设备安装如何安装监控系统网通玩电信游戏卡怎么办玩英雄联盟家里是网通的,玩电信区很卡怎么办查看加密空间请问下怎么看加密的qq空间软件更新不可用为什么vivo手机更新不了软件?双11数据2015年天猫双11总成交额是多少亿?access数据库入门怎样学好数据库应用基础access
二级域名 猫咪永久域名收藏地址 万网域名代理 泛域名绑定 hostmonster themeforest 42u机柜尺寸 shopex空间 ixwebhosting 警告本网站 java虚拟主机 dd444 789电视网 免费申请网站 万网主机管理 德讯 云销售系统 websitepanel 优惠服务器 zencart安装 更多