版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
上
《单片机C语言程序设计实训100例一基于8051+Proteus仿真》案例海
师
范
第01篇基础程序设计大
学
信
01闪烁的LED
息
U1与
19
/*名称:闪烁的LEDMALIP0.0/AD0机
P0.1/AD1
说明:LED按设定的时间间隔闪烁P0.2/AD2电
XTAL2ru.JJAUJ
*/P0.4/AD4工
P0.5/AD5
#include<reg5l.h>P0.6/AD6程
△面noIP0.7/AD7学
#defineucharunsignedcharC-13C3
斤P2.0/A8院
#defineuintunsignedint1P2.1/A9
P2.2/A10
sbitLED=P1AO;IOUFPSENP2.3/A11
ALEP2.4/A12倪
〃延时CArz.O/Al3
P2.6/A14继
voidDelayMS(uintx)P2.7/A15锋
P1.0rJ.UJHAD
(P1.1rJ.l/IAU
P12
uchari;r1.-i
r1.4
while(x—)P1.5P3.5fT1
P1.6P3.6)WR
(P1.7P3.7/RD
for(i=0;i<120;i++);AT89C51
)
)
〃主程序
voidmain()
(
while(l)
{
LED二〜LED;
DelayMS(150);
02从左到右的流水灯
/*名称:从左到右的流水灯
说明:接在P0口的8个LED
从左到右循环依次点亮,产生走
马灯效果
*/
#include<reg5l.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
1
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
〃延时于
voidDelayMS(uintx)
(
uchari;
while(x-)
(
for(i=0;i<120;i++);
)
)
〃主程序上
voidmain()海
师
(范
P0=0xfe;大
while(l)学
信
(
息
P0=_crol_(P0,l);//P0的值向左循环移动
与
DelayMS(150);机
电
r.
程
学
038只LED左右来回点亮院
/*名称:8只LED左右来回点亮倪
继
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果
*/锋
#include<reg51.h>
#include<intrins.h>4r
#defineucharunsignedchar
#defineuintunsignedint22pf
-----------E=3
//延时10k
C3-
voidDelayMS(uintx)Tl—
,10IF
uchari;
while(x—)
for(i=0;i<120;i++);AT89C51
)
〃主程序
voidmain()
uchari;
P2=0x01;
whilefl)
2
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
for(i=0;i<7;i++)
(
P2=_crol_(P2,l);//P2的值向左循环移动
DelayMS(150);
}
for(i=0;i<7;i++)
(
P2=_cror_(P2,l);//P2的值向右循环移动
DelayMS(150);
上
海
04花样流水灯师
范
/*名称:花样流水灯F).大
学
说明:只分两组:4:
16LED信
按预设的多种花样变换显示息
*/.a_与
2a_机
#include<reg51.h>
f±c电
±
#defineucharunsignedchar工
#defineuintunsignedint±t=程
ucharcodePattern_PO[]=学
院
一
0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,倪
继
0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x8l,0xc3,0xe7,0xff,
锋
0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xfl,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,
0x7f,0x3f,Oxlf,0x8f,0xc7,0xe3,0xfl,0xf8,0xff,0x00,0x00,Oxff,Oxff,OxOf,OxfO,Oxff,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xl'b,0xfd,0xfe,
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,
0x00,Oxff,0x00,Oxff,0x00,Oxff,0x00,Oxff
);
ucharcodePattern_P2[]=
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,
0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,
0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xfl,0xe3,0xc7,0x8f,0xlf,0x3f,0x7f,
0x7f,0x3f,Oxlf,0x8f,0xc7,0xe3,0xfl,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,
0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
3
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
0x00,Oxff,0x00,Oxff,0x00,Oxff,0x00,Oxff
};
//延时
voidDelayMS(uintx)
(
uchari;
while(x-)
(
for(i=0;i<120;i++);
}
)
〃主程序
voidmain()
{
uchari;
while(l)
{〃从数组中读取数据送至P0和P2口显示
for(i=0;i<l36;i++)
P0=Pattem_P0[i];
P2=Pattem_P2[i];
DelayMS(lOO);
)
)
C1
TF
22PF
POJO/ADO
C2P0.1/AD1
P02/AD2
XTAL2P03/AD3
05LED模拟交通灯P04/A04
P05/AD5
POSfADB
P07MD7
/*名称:模拟交通灯P2VA9
LEDP22XA10
P23XM1
P24XM2
说明:东西向绿灯亮若干秒,黄P25XM3
P26XA14
P27XM5
灯闪烁5次后红灯亮,红灯亮后,P3ORXO
北向由红灯变为绿灯,若干秒后南北
p34no
P3包L
向黄灯闪烁此后变红灯,东西向变;A
5P37JTO-
绿灯,如此重复。
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitRED_A=P0A0;〃东西向灯
sbitYELLOW_A=POA1;
sbitGREEN_A=P0A2;
sbitRED_B=P0A3;〃南北向灯
sbitYELLOW_B=POA4;
sbitGREEN_B=P0A5;
ucharFlash_Count=OQperation_Type=l;〃闪烁次数,操作类型变量
上海师范大学信息与机电工程学院一倪继锋
4
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
〃延时于
voidDelayMS(uintx)
(
uchari;
while(x-)for(i=0;i<120;i++);
)
〃交通灯切换产
voidTraffic_Light(),
{范
switch(Operation_Type)大
{学
case1:〃东西向绿灯与南北向红灯亮g
RED_A=1;YELLOW_A=1;GREEN_A=0;1
RED_B=0;YELLOW_B=1;GREEN_B=1;机
DelayMS(2000);电
Operation_Type=2;
break;学
case2:〃东西向黄灯闪烁,绿灯关闭:
DeIayMS(300);一
YELLOW_A=-YELLOW_A;GREEN_A=1;倪
if(++Flash_Count!=10)return;〃闪烁5次J
锋
Flash_Count=0;
Operation_Type=3;
break;
case3:〃东西向红灯,南北向绿灯亮
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=l;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case4:〃南北向黄灯闪烁5次
DelayMS(300);
YELLOW_B=〜YELLOW_B;GREEN_B=1;
if(++Flash_Count!=10)return;
Flash_Count=0;
Operation_Type=l;
}
)
〃主程序
voidmain()
(
while(1)Traffic_Light();
06单只数码管循环显示0~9
5
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
/*名称:单只数码管循环显示0~9
说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示
*/
#include<reg5l.h>
#include<intrins.h>
#defineucharunsignedchar海
#defineuintunsignedint师
范
ucharcodeDSY_CODELJ={OxcO,Oxf9,Oxa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,OxffJ^
g大
〃延时
学
voidDelayMS(umtx)............C1信
息
(匚|
X1►XTAL1PO,
岫与
uchart;12MPO.1
PO.舞机
XTAL2PO.|
while(x—)for(t=0;t<120;t++);PO,3
PO.|电
PO,|
}RSTPO.7工
松
〃主程序P2.0/A8程
P2.1/A9壁
P2.27A10学
voidmain()P2.3/A11
P2.4/A12院
P2.5/A13
bl浸
(P2.6/A14
P2.7/A15
uchari=0;嚏
P3.0JRXD倪
±dP3.1/TXD嗑
P0=0x00;P3.21MTQ继
±dP3.3JWT1蜜
P3.4/T0锋
while(l)±dP3S/T1
嚏
P3.6A^
(±iP3.7而
PO=-DSY_CODE[i];
SEVEN-SEG
i=(i+l)%10;
DelayMS(300);
}
078只数码管滚动显示单个数字
/*名称:8只数码管滚动显示单个数字’
说明:数码管从左到右依次滚动显示
0~7,程序通过每次仅循环选通一只数码
管
*/
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90);
〃延时
voidDelayMS(uintx)
(
uchart;
while(x—)for(t=0;t<120;t++);
6
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
)于
〃主程序
voidmain()
(
uchari,wei=0x80;
while(l)
(
for(i=0;i<8;i++)
(
P2=0xff;〃关闭显示
wei=_crol_(wei,l);
P()=DSY_CODE[i];发送数字段码
P2=wei;〃发送位码
DelayMS(300);
)
}
)
088只数码管动态显示多个不同字符
电路如上图
/*名称:8只数码管动态显示多个不同字
符
说明:数码管动态扫描显示0~7o
*/
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]={OxcO,Oxf9,Oxa4,OxbO,Ox99,0x92,0x82,0xf8,0x80,0x90};
〃延时上
voidDelayMS(uintx)海
(师
uchart;心
while(x—)for(t=0;t<120;t++);学
12
〃主程序息
voidmain()与
机
1电
uchari,wei=0x80;工
while(l)程
{号
for(i=0;i<8;i++)匕
{倪
PO=Oxff;继
P0=DSY_CODE[i];发送段码锋
wei=_crol_(wei,1);
7
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
P2=wei;〃发送位码
IDelayMS(2);
098只数码管闪烁显示数字串
电路如上图
/*名称:8只数码管闪烁显示数字串
说明:数码管闪烁显示由0〜7构成的一串数字
本例用动态刷新法显示一串数字,在停止刷新时所有数字显示消失。
*/
#include<reg5l.h>
海
#defineucharunsignedchar
师
#defineuintunsignedint范
〃段码表大
ucharcodeDSY_CODE[]={OxcO,Oxf9,Oxa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90};学
〃位码表信
息
ucharcodeDSY_IDX[]={0x01,0x02,0x04,0x08,Ox10,0x20,0x40,0x80};与
〃延时机
voidDelayMS(uintx)电
(工
程
uchart;
学
while(x-)for(t=0;t<120;t++);院
)
〃主程序倪
继
voidmain()
锋
(
uchari,j;
while(l)
(
for(i=0;i<30;i++)
(
for(j=0;j<8;j++)
(
PO=()xff;
P0=DSY_CODE[j];〃发送段码
P2=DSYJDX[j];〃发送位码
DelayMS(2);
)
)
P2=0x00;〃关闭所有数码管并延时
DelayMS(lOOO);
8
《单片机C语言程序设计实训100例一基8051和PROTEUS仿真》案例
于
108只数码管滚动显示数字串
电路如上图
/*名称:8只数码管滚动显示数字串
说明:数码管向左滚动显示3个字符构成的数字串
*/
#include<reg5l.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
〃段码表
ucharcodeDSY_CODE[]={OxcO,Oxf19,Oxa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,Oxff);
〃下面数组看作环形队列,显示从某个数开始的8个数(10表示黑屏)上
ucharNum[]=(10,10,10,10,10,10,10,10,2,9,8};海
〃延时W
voidDelayMS(uintx)f
大
{学
uchart;信
while(x-)for(t=0;t<l20;t++);息
}与
//主程序s
voidmain()工
{程
uchari,j,k=0,m=0x80;学
…二院
while(l)
{〃刷新若干次,保持一段时间的稳定显示京
for(i=0;i<15;i++)继
{锋
for(j=0;j<8;j++)
{〃发送段码,采用环形取法,从第k个开始取第j个
P0=0xff;
P0=DSY_CODELNum[(k+j)%l1]];
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 就业协议书(2篇)
- 幼儿园英语角活动方案
- 水利工程监理防洪应急预案
- 贵阳2024年07版小学4年级下册英语第4单元暑期作业
- 庆八一退伍军人技能培训讲座发言稿
- 旅游行业国庆疫情防控措施方案
- 车间暖气系统优化施工方案
- 2024-2025学年河北省衡水二中高三上学期素养检测(一)化学试题及答案
- 个人与公司之间的借款合同模板
- 汽车制造网络安全自查工作总结
- Module 10 Unit 1教学设计 2024-2025学年英语外研版八年级上册
- 2024内蒙古水务投资集团招聘53人(高频重点提升专题训练)共500题附带答案详解
- 第四届全国供销合作总社职业技能竞赛(调饮师)备赛试题库(含答案)
- 2024年中国远洋海运集团限公司招聘(高频重点提升专题训练)共500题附带答案详解
- DL∕T 1215.4-2013 链式静止同步补偿器 第4部分现场试验
- 2024(新高考2卷)英语试题详解解析 课件
- 续家谱跋的范文
- 2024彩票店转让合同范本
- 光缆迁改合同范本
- 维护维修方案标书(2篇)
- 预防及控制养老机构院内感染-院内感染基本知识
评论
0/150
提交评论