STC89C52RC单片机共有4个双向的8位并行I/O端口,片内I/O端口作为输出使用时,最常用的应用控制是相应的I/O引脚上的LED点亮与熄灭。
1.P1口1.1 位电路结构由三部分组成:
(1)1个数据输出锁存器,用于输出数据位的锁存;
(2)2个三态的数据输入缓冲器BUF1和BUF2,用于读锁存数据和读引脚数据的输入缓冲;
(3)输入驱动电路,由1个场效应管(FET)和1个片内上拉电阻组成。
P1口某一位的位电路结构如下图所示:
图1-1
P1口只能作为通用的I/O口使用。
(1)P1口作为输出口时,若CPU输出1,Q=1,Q*=0,场效应管截止,P1口引脚的输出为1;若CPU输出0,Q=0,Q*= 1,场效应管导通,P1口引脚的输出为0。
(2)P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。
1.3 P1口特点P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为输出口时,不需要在片外接上拉电阻。
P1口“读引脚”输入时,必须先向锁存器写入1。
2.循环移位原理循环移位法是采用循环程序结构进行编程。我们在程序一开始就给 P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。
3.接口芯片本项目选择的扩展I/O芯片是74HC595。74HC595芯片是一种串入并出的芯片,有8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断三态。
下表说明了74HC595芯片的引脚功能。
图1-2
接口电路图如下,可以看到U4中Q0-Q7接LED,U5Q0-Q7接矩阵。
图1-3
图 1-4
SDI为数据输入引脚,与11、12引脚都接51单片机。SDO引脚为数据输出。
二、实验目的掌握流水灯系统的基本组成以及工作原理。使设计出来的流水灯达到设计任务书的技术要求。
三、实验内容扩展I/O口,连接8个LED,编写程序使其从右到左的流水方式点亮。
四、实验设备硬件设备:51单片机开发版、USB线一根,12v电源适配器一个。
图1-3
软件工具:STC-ISP-15XX-V6.82,keil。
五、核心代码连接设备,将USB线一端接PC,一端接单片机开发板,开发板接12V电源,打开电源开关
图1-4
打开STC-ISP下载工具
图1-4
选择好单片机型号STC89C52RC,扫描串口号,其他设置为默认;然后点击打开程序文件,出现下图
图1-5
进入目录obj,选择需要下载的hex文件打开;关闭电源→点击下载/编辑→打开电源,程序开始下载,出现下图则操作成功
图1-6
七、实验验证将开发板电源关闭,然后再打开,查看板上8个LED是否按流水的方式依次从右到左点亮,如果来回循环点亮则说明实验成功。
(1)思考题1是否可以让8个LED灯跳着点亮?
(2)思考题2从左到右依次点亮是否也可以做到,怎么编写?
完整的Word格式单片机流水灯实验指导书文档51黑下载地址:
流水灯.doc
(4.87 MB, 下载次数: 6)
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |