82C55控制交通灯
来源:互联网 发布:淘宝优惠券二合一平台 编辑:程序博客网 时间:2024/05/16 04:59
要求:
用STC89C52单片机扩展一片可编程并行I/O口82C55,用8255做输出口,控制十二个发光二极管亮灭,模拟交通灯的管理。初始状态:红灯全亮,黄、绿灯灭。第一状态:1,3路口的绿灯全亮,2、4路口红灯亮。第二状态:1,3路口绿灯灭,黄灯开始闪烁。第三状态:1,3路口红灯亮,2,4路口绿灯亮。第四状态:2,4路口绿灯熄灭,而黄灯闪烁。
C语言:
#include <reg52.h>#define uint unsigned int #define uchar unsigned char#define XBYTE ((uchar volatile xdata *) 0)#define COM8255 0XFF7F#define PORTC8255 0XFF7Evoid time(unsigned int _time){ uchar ucCounter,i; //for(ucCounter=0;ucCounter<_time;ucCounter++); for(ucCounter=0;ucCounter<110;ucCounter++) for(i=0;i<_time;i++);}void main(){ while(1) { uint i; XBYTE[COM8255]=0X80; XBYTE[PORTC8255]=0Xc6; time(200); XBYTE[PORTC8255]=0Xc5; time(200); for(i=0;i<8;i++) { XBYTE[PORTC8255]=0XC3; time(200); XBYTE[PORTC8255]=0XC7; time(200); } XBYTE[PORTC8255]=0Xa6; time(200); time(200); for(i=0;i<8;i++) { XBYTE[PORTC8255]=0X66; time(200); XBYTE[PORTC8255]=0XE6; time(200); } }}
汇编语言:
ORG 0000HPORTC8255 EQU 0FF7EH ;8255CCTRL8255 EQU 0FF7FH ;8255NUMB EQU 08HMAIN: MOV A,#80H ;A,B,C口方式0输出 MOV DPTR,#CTRL8255 MOVX @DPTR,A MOV A,#0C6H ;红灯全亮,绿灯黄灯全灭 MOV DPTR,#PORTC8255 MOVX @DPTR,A LCALL DL11START: MOV A,#0C5H ;1,3路口绿灯全亮,2,4路口红灯亮 MOVX @DPTR,A LCALL DL11 LCALL DL11 MOV R2,#NUMBLOOP1: MOV A,#0C3H ;1,3路口黄灯亮 MOVX @DPTR,A LCALL DL12 MOV A,#0C7H ;1,3路口黄灯灭 MOVX @DPTR,A LCALL DL12 DJNZ R2,LOOP1 MOV A,#0A6H ;1,3路口红灯亮,2,4路口绿灯亮 MOVX @DPTR,A LCALL DL11 LCALL DL11YELLO24:MOV R2,#NUMBLOOP2: ANL A,#66H ;2,4路口黄灯亮 MOVX @DPTR,A LCALL DL12 MOV A,#0E6H ;2,4路口黄灯灭 MOVX @DPTR,A LCALL DL12 DJNZ R2,LOOP2 LJMP START; DL11: MOV R5,#5HDL2: MOV R7,#0FFHDL3: MOV R6,#0FFHDL4: DJNZ R6,DL4 DJNZ R7,DL3 DJNZ R5,DL2 RETDL12: MOV R7,#0C0HDL5: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DL5 RET END
仿真效果图:
阅读全文
0 0
- 82C55控制交通灯
- 82C55芯片概览
- 交通灯控制
- 单片机控制交通灯说明书
- 单片机控制交通灯V1.0
- 黑马程序员_java_交通灯控制
- 6-7 8255 控制交通灯
- 8255第二种控制交通灯
- 路口交通灯控制的模拟实现
- Arduino系列教程-05 交通灯控制
- 数字逻辑实验-交通灯控制设计
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 微信小程序实现九宫格
- Vim用法
- JVM 堆,栈,方法区
- 笔记-2017-1122
- Visual Studio 在Post build Event 调用 signtool
- 82C55控制交通灯
- 171122之PLSQL的使用教程
- 【Scikit-Learn 中文文档】高斯过程
- 初学者做android 第一个小程序
- eclipse的SVN插件不能保存密码
- ping命令的实现
- 使用ArrayList集合,对其添加100个不同的元素:
- Spring—DisposableBean
- Python 进行科学计算:NumPy