单片机大作业
物流卓
1.LED闪烁实例
LED闪烁实例中使用51单片机控制8个LED间隔亮灭,形成闪烁效果,在实例中51单片机通过一个延时程序控制P1端口轮流输出高电平和低电平,驱动发光二极管的发光和熄灭。
程序代码使用两个嵌套的for循环语句来控制延时,当到达延时之后使P1输出电平翻转。
下图为电路设计图
以下为控制代码
2.流水数字
流水数字是一个51单片机使用I/O引脚驱动8段数码管,数码管轮流显示“0”~”F”数字或者字符。
单位8段共阳数码管的公共端连接到VCC上,数码管的8位数据引脚则连接到P1的八个引脚上,使用1K欧姆的电阻限流,51单片机通过P1引脚将对应字符的字形编码送出供数码管显示。
下图为电路设计图
以下为程序代码
3.多位数字显示
本实例使用51单片机驱动6位数码管显示”123456”6位数字,51单片机用P1给6个8段数码管提供字形编码,而用P2.0~P2.5共6个引脚通过PNP三极管来选通对应的数码管显示。
在控制程序中,为了精确的控制延时时间的时间以便造成“扫描”效果,使用Delayms 和Delayus两个函数来控制精确延时。
下图为电路设计图
以下为程序代码
4.轮流加热显示系统
轮流加热显示系统是一个用51单片机控制3个继电器轮流接通,给3个设备加热5s并且使用一位数码管来显示当前加热设备的编号。
51单片机用P2端口通过ULU2803驱动3个工作电压为5V的继电器,用P1口驱动一个数码管用于显示当前接通的继电器的编号。
下图为电路设计图
以下为程序代码
5.定时报警实例
本实例是让51单片机没隔10min控制蜂鸣器报警,51单片机使用P2.7引脚通过一个NPN三极管驱动蜂鸣器,当P2. 7输出高电平时三极管导通,蜂鸣器发声。
51单片机使用P2. 7通过三极管控制蜂鸣器,当输出高电平时三极管导通蜂鸣器发声,使用Delayms函数来进行毫秒级延时,使用Delayus函数来进行微秒级延时,当10min延时到达,蜂鸣器打开100ms
下图为电路设计图
以下为程序代码
6.计算机键盘实例
本实例用51单片机的I/O引脚扩展一个4 x4的行列扫描键盘,16个键使用0~F编码用一个数码管将按下键的对应编码显示出来,并且有声音提示。
如下电路图所示,P1口使用灌电流方式驱动一个8段数码管,P2口则以行列扫描的方法连接16个按键,为了使在有按键按下时有声音提示,使用P0.0引脚通过NPN三极管驱动一个蜂鸣器。
程序中使用Keys_Scan 函数扫描按键的状态,并且返回按下按键的编码,主程序根据返回的编码在DSY_CODE数组中查找出对应的字形编码并将其送到P1口输出,同时在有按键按下时调用Beep函数驱动蜂鸣器发声。
下图为电路设计图
以下为程序代码。