- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机设计
一、使用KEIL的步骤 3
二、单片机最小系统的设计 6
2.1 程序代码 6
2.2 Keil仿真 7
2.3 Protues仿真 7
三、流水灯循环点亮 7
3.1 原理介绍 8
3.2 程序代码 9
3.3 Keil结果展示 10
3.4 protues仿真 11
四、心形灯闪烁 13
4.1 程序代码 13
4.2 Protues仿真 38
五、 最简单电子秒表01 40
5.1 程序代码 40
5.2 Keil仿真 43
5.3 Protues仿真 44
六、电子秒表02 45
6.1 程序代码 45
6.2 Keil仿真 47
6.3 Protues仿真 48
七、 电子秒表03 48
晶振在protues中的符号:CRYSTAL
一、使用KEIL的步骤
01
02
03
04
05
06
二、单片机最小系统的设计
2.1 程序代码
#includereg52.h
#define uint unsigned int
#define uchar unsigned char // 定义头文件
sbit P2_1=P2^1; // 定义P2_1为P2口的第1位,以便进行位操作。
void delay(uint z) // 定义延时函数
{
uchar x,y;
for(x=0;xz;x++)
for(y=0;y121;y++); //使用两个嵌套的for语句来实现延时,先赋值x=0,判断一下xz,若为真则执行下一个for语句,赋值y=0,判断一下y121,若为真则执行下一条,若无下一条则执行y++,直到y121为假,则在执行x++,在判断一下xz,若为真则再执行一次y的for语句,为假则跳出循环,结束。
}
void main() // 定义主函数
{
P2_1=0; // 将P2-1口赋值为0,即给予P2_1一个低电平,在电路中led灯另一端接VCC高电平,给一低电平即将LED灯导通,使其亮。
}
2.2 Keil仿真
2.3 Protues仿真
三、流水灯循环点亮
3.1 原理介绍
3.2 程序代码
#includereg51.h?
#includeintrins.h?
#define uchar unsigned char?
#define uint unsigned int //加黑的都是定义头文件
void DelayMS(uint x)?//延时?
{?
uchar i;?
while(x--)?
{?
for(i=0;i120;i++);?
}?
}?
void main()? //主程序?
{?
uchar i;?
P2=0x01;?
while(1)?
{?
for(i=0;i7;i++)?// i=0,判断i7,再执行P2=_crol_(P2,1),之后再执行i++
{?
P2=_crol_(P2,1); //以位的形式将P2左循环移动?
DelayMS(150);?
}?
for(i=0;i7;i++)?/ / i=0,判断i7,再执行P2=_crol_(P2,1),之后再执行i++
{?
P2=_cror_(P2,1); //以位的形式将P2右循环移动?
DelayMS(150);?
}?
}?
} //利用循环移位函数_crol_(左循环)和_cror_(右循环)形成来回滚动的效果?
a?=?0xA5;?
b?=?_crol_(a,1); /*?b?now?is?0xD2?*/?
unsigned?char?_crol_?(unsigned?char?c,?unsigned?char?b);//?使无符号字符循环向左移位
unsigned?char?_cror_?(unsigned?char?c,?unsigned?char?b);//?使无符号字符循环向右移动b位
3.3 Keil结果展示
3.4 protues仿真
01
02
03
四、心形灯闪烁
4.1 程序代码
#include REGX52.H
#define uint unsigned int
#define uchar unsigned char
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} // LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; // LED从高位往低位移
ucha
文档评论(0)