- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机C语言简单编程
1、点亮2、3、5、8四个发光二极管。(课后作业)
#includereg52.h
sbit LED2=P1^0;
sbit LED3=P1^3;
sbit LED5=P1^5;
sbit LED8=P1^6;
main()
{
LED2=0; //第二盏灯亮
LED3=0; //第三盏灯亮
LED5=0; //第五盏灯亮
LED8=0; //第八盏灯亮
while(1);
}
2、设计走马灯和数码管逐一显示数字。(课后作业)
#includereg52.h
void Delay()
{
unsigned int j;
j=30000;
while(j--);
} //时间延时函数
void main()
{
int a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示段码
int b[10]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xaa,0x55}; //点亮灯的段码
unsigned char i;
while(1)
{
for(i=0;i10;i++)
{
P1=b[i];
P2=a[i];
Delay();
}
}
}
3、开关K1控制加,开关K2控制减,开关K3控制复位。当减到小于0的时候再从99开始减,当加到99的时候又从0开始加。(课后作业)
#includereg52.h
sbit BIT1=P3^0;
sbit BIT2=P3^1;
sbit Button1=P3^7;
sbit Button2=P3^6;
sbit Button3=P3^5;
unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示段码
void Delay(unsigned int t)
{
unsigned int i,j;
for(i=0;it;i++)
for(j=0;j252;j++)
{;}
} //时间延迟函数的定义
void main()
{
char dat = 0; // 有符号数
int b[10]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xaa,0x55}; //跑马灯显示的段码
unsigned char z;
while(1)
{
for(z=0;z10;z++)
{
BIT1=0;
BIT2=1;
P2=a[dat/10];
Delay(20);
P2 = 0xff ; // 消隐,防止个位的数在十位显示,导致显示乱码
BIT1=1;
BIT2=0;
P2=a[dat%10];
Delay(20);
P2 = 0xff ; // 消隐
P1=b[z];
Delay(20); //跑马灯显示
if(Button1==0)
{
dat++;
if(dat = 99)
dat=0;
while(Button1==0);
} //按键1是控制加的,当加到大于等于99时又从0开始加
if(Button2==0)
{
dat--;
if(dat = 0)
dat=99;
while(Button2==0);
} //按键2是控制减的,当减到小于等于0时再从99开始减
if(Button3==0)
{
dat=0;
while(Button3==0);
}
} //按键3是控制复位的,任何时候按下就归0
}
}
4、开始1、2、3、4闪烁,按一下K1,5、6、7、8闪烁,再按一下K1全部闪烁。(课堂作业)
#includereg52.h
sbit K1=P3^0;
unsigned char state=0;
void Delay(unsigned int t
文档评论(0)