文档详情

《单片机控制技术》课件——任务4.pptx

发布:2025-04-02约2.17万字共141页下载文档
文本预览下载声明

主讲教师;任务导入;一、任务导入;任务要求;51单片机;二、数码管;;三、程序设计;数组定义和使用;系统上电时,数码管显示“?”,表示开始抢答,当记录到最先按下的按键序号后,数码管将显示该参赛者的序号,同时无法再接受其它按键的输入;当系统按下复位按钮S时,系统显示“?”,表示可以接受新一轮的抢答。;voidmain()//主函数

{

unsignedcharbutton;//保存按键信息

unsignedcharcodedisp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xbf};

//定义数组led,依次存储包括0~7和“?”的共阳极数码管显示码表

P0=0xff;//读引脚状态,需先置1

P1=disp[8];//显示“?”

while(1)

{

button=P0;//第一次读按键状态

delay(1200); //延时消抖

button=P0;//第二次读按键状态

switch(button)//根据按键的值进行多分支跳转

{

case0xfe:P1=disp[0];delay(10000);while(1);break;//0按下,显示0,待机

case0xfd:P1=disp[1];delay(10000);while(1);break;//1按下,显示1,待机

case0xfb:P1=disp[2];delay(10000);while(1);break;//2按下,显示2,待机

case0xf7:P1=disp[3];delay(10000);while(1);break;//3按下,显示3,待机

case0xef:P1=disp[4];delay(10000);while(1);break;//4按下,显示4,待机

case0xdf:P1=disp[5];delay(10000);while(1);break;//5按下,显示5,待机

case0xbf:P1=disp[6];delay(10000);while(1);break;//6按下,显示6,待机

case0x7f:P1=disp[7];delay(10000);while(1);break;//7按下,显示7,待机

default:break;

}

}

};四、举一反三;(1)4个按键,分别代表数字0、1、2、3;

(2)密码事先设定为0~3之间的一位数字;

(3)数码管显示“-”,表示等待密码输入;

(4)密码正确显示“P”约3s,并通过P3.0端口将锁打开;

否则显示“E”约3s,继续保持锁定状态。;51单片机;密码设定为“2”;#includereg51.h//包含头文件reg51.h,定义了51单片机的专用寄存器

sbitP3_0=P3^0; //控制开锁,用发光二极管代替;读取P0口即按键信息;主讲教师;任务导入;一、任务导入;任务要求;74LS245和74LS04用来增强单片机的端口驱动能力;二、动态显示方式;1.首先,位选口选中第一个数码管,段选口送这个数码管想要显示的字型码,然后延时一段时间;

2.其次,位选口选中第二个数码管,段选口送出相应的字型码,延时,……

3.依次类推,直到位选口选中最后一个数码管,段选口送出最后一个数码管的字型码,延时……

这样,一次循环结束,每个数码管都“轮流”被点亮一次。;由于人的眼睛存在“视觉驻留效应”,如果保证每位数码管显示间断的时间间隔小于眼睛的驻留时间,就可以给人一种稳定显示的视觉效果。;三、程序设计;显示字符;while(1)

{

P1=0xff;//消隐:关显示,共阳极数码管0xff熄灭

P2=0xfe;//送位码,选中P2.0连接的数码管

显示全部
相似文档