资源简介
采用MAX7219并行显示时间及设定的交通灯控制系统。包括两种中断源应用及串口通信。-The MAX7219 parallel display time and set of traffic light control system. Including two interrupt source application and serial interface communication.

代码片段和文件信息
#include//头文件
/*********************** 定义MAX7219 内部寄存器 **********************/
#define REG_DECODE 0x09 // 译码方式寄存器
#define REG_INTENSITY 0x0a // 亮度寄存器
#define REG_SCAN_LIMIT 0x0b // 扫描界限寄存器
#define REG_SHUTDOWN 0x0c // 停机寄存器
#define REG_DISPLAY_TEST 0x0f // 显示测试寄存器
#define INTENSITY_MIN 0x00 // 最小显示亮度
#define INTENSITY_MAX 0x0f // 最大显示亮度
/*********************** 定义各路交通灯信号 ************************/
sbit ALG = P1^2;// A路左转绿灯
sbit ALR = P1^0;// A路左转红灯
sbit ALY = P1^1;// A路左转黄灯
sbit ASG = P1^5;// A路直行绿灯
sbit ASR = P1^3;// A路直行红灯
sbit ASY = P1^4;// A路直行黄灯
sbit BLG = P2^0;// B路左转绿灯
sbit BLR = P1^6;// B路左转红灯
sbit BLY = P1^7;// B路左转黄灯
sbit BSG = P2^3;// B路直行绿灯
sbit BSR = P2^1;// B路直行红灯
sbit BSY = P2^2;// B路直行黄灯
/*********************** 定义MAX7219 端口信号 ************************/
sbit DATA = P2^5;
sbit LOAD = P2^6;
sbit CLK = P2^7;
/*********************** 定义设定按键 端口信号 ************************/
sbit next_switch = P0^5;
sbit add_switch = P0^6;
sbit sub_switch = P0^7;
/*********************** 时间及显示全局变量 ************************/
int aashigeshi1ge1temp1;
int p=0;
int set1=10;
int set2=5;
int flag = 0;
int gt[4] = {14131211};
/*数码管显示0-9AL*/
unsigned char table[]={0x7e0x300x6d0x790x330x5b0x5f0x700x7f0x7b0x770x0e};
unsigned char table0[]={0x000x010x020x030x040x050x060x070x08};
/*子函数声明*/
void delay(int z);//延迟
void xtimer0();//定时中断
void xtimer1();
void check();
void step1();
void step2();
void step3();
void step4();
void step5();
void step6();
void step7();
void step8();
void step9();
void xint0();
void xint1();
void A_S_G();
void B_S_G();
int judge_key();
void set_led_time();
static void Write (unsigned char reg_number unsigned char dataout);//向指定的MAX7219内部寄存器写入数据
static void SendByte (unsigned char dataout);//向MAX7219发送一个字节串行数据
static unsigned char LookupCode (int num);//查段码表将显示字符转换为显示段码
static unsigned char LookupNum (int num);
void Init (void);//对MAX7219进行初始化,调用任何其他函数之前必需先调用此函数
void ShutdownStart (void);//进入停机方式
void ShutdownStop (void);//结束停机方式
void DisplayTestStart (void);//启动显示测试
void DisplayTestStop (void);//结束显示测试
void SetBrightness (char brightness);//设置LED显示亮度亮度值(brightness = 0-15)
void Clear (void);//关闭全部显示器
void display (int num0 int num);//在指定数位上显示字符
/*主函数*/
void main()
{
EA=1;//开中断
EX0=1;//允许外部中断INT0中断
IT0=0;//定义INT0触发方式
PX0=1;//中断优先级高
EX1=1;//允许外部中断INT1中断
IT1=0;//定义INT1触发方式
PX1=1;//中断优先级高
check();//开机自检
step1();//第1个状态
P0=0xff;
while(1)
{
step2();//第2个状态
step3();//第3个状态
step4();//第4个状态
step5();//第5个状态
step6();//第6个状态
step7();//第7个状态
step8();//第8个状态
step9();//第9个状态
}
}
void check()//开机自检子程序
{
ASG=1;
ALG=1;
ASR=1;
ALR=1;
ASY=1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 129372 2011-12-15 09:38 _gao\Last Loaded traffic.DBK
文件 5115 2004-08-31 19:16 _gao\STARTUP.A51
文件 11665 2011-12-15 11:13 _gao\STARTUP.lst
文件 749 2011-12-15 11:13 _gao\STARTUP.OBJ
文件 29011 2011-12-15 11:13 _gao\traffic
文件 14505 2011-12-15 11:13 _gao\traffic.c
文件 129372 2011-12-15 09:42 _gao\traffic.DSN
文件 9205 2011-12-15 11:13 _gao\traffic.hex
文件 35852 2011-12-15 11:13 _gao\traffic.LST
文件 45162 2011-12-15 11:13 _gao\traffic.M51
文件 35890 2011-12-15 11:13 _gao\traffic.OBJ
文件 1395 2011-12-15 16:00 _gao\traffic.Opt
文件 163 2011-12-15 16:00 _gao\traffic.plg
文件 768 2011-12-15 16:00 _gao\traffic.PWI
文件 2051 2011-12-14 12:39 _gao\traffic.Uv2
....... 1301 2011-12-15 11:12 _gao\traffic_Opt.Bak
....... 2076 2011-12-14 12:35 _gao\traffic_Uv2.Bak
文件 326 2011-12-08 08:52 _gao\数码管.txt
目录 0 2011-12-15 16:00 _gao
----------- --------- ---------- ----- ----
453978 19
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
- 直流伺服电机电路原理图(内附单片
评论
共有 条评论