基于单片机的交通灯系统设计内容摘要:
NB=NBG,DX=NBG+H。 display()。 EA=1。 东北大学单片机课程设计 14 break。 } } } } /***********************************中断 1 处理程序 ******************** void int1(void) interrupt 2 //紧急情况 { /*东西南北红灯亮 */ EA=0。 TR0=!TR0。 /*停止计数 */ for(。 ) /*主支干道显示全为 0*/ { P1=0xd8,P0=a[0]。 P2=0xfe。 delay(20)。 P2=0xfd。 delay(20)。 P2=0xfb。 delay(20)。 P2=0xf7。 delay(20)。 if(K4==0) /*返回 */ { delay(20)。 EA=1。 P1=c[k]。 /*返回紧急前状态开始计数 */ TR0=!TR0。 /*重启计数 */ break。 } } } void time1(void) interrupt 1 /*交通灯控制程序 */ { TH0=0x3c。 /*定时 50ms*/ TL0=0xb0。 t++。 东北大学单片机课程设计 15 if(t=20) /*每 20*50ms=1s 自减一 */ { NB。 DX。 t=0。 if(NB==0||DX==0) { k++。 if(k3) /*k 取 0,1,2,3*/ k=0。 switch(k) { case 0:NB=NBG,DX=NBG+H。 j=0。 P1=c[k]。 break。 /*主干道通行显示绿红 */ case 1:NB=H。 j=1。 P1=c[k]。 break。 /*主干道黄灯闪烁 */ case 2:NB=DXG+H,DX=DXG。 j=0。 P1=c[k]。 break。 /*支干道通行显示红绿 */ case 3:DX=H。 j=2。 P1=c[k]。 break。 /*支干道黄灯闪烁 */ } } } } void delay(uchar t) //延时程序延时 *nms { uchar i。 do { for(i=0。 i20。 i++)。 } while(t)。 } void settime() { P2=0xfe,P0=a[(NBG+H)%10]。 /*显示主干道通行时间 */ delay(20)。 P2=0xfd,P0=a[(NBG+H)/10]。 delay(20)。 P2=0xfb,P0=a[(DXG+H)%10]。 /*显示支干道通行时间 */ delay(20)。 P2=0xf7,P0=a[(DXG+H)/10]。 delay(20)。 } void key() //键盘程序用 KO K1 模拟一道有车一道无车 { if(K1==0) /*主干道有车支干道无车 */ 东北大学单片机课程设计 16 { delay(40)。 if(K1==0) { while(!K1) { display()。 } k=0,P1=c[k]。 t=0。 NB=NBG, DX=NBG+H。 display()。 } } if(K0==0) /*支干道有车主干道无车 */ { delay(40)。 if(K0==0) { while(!K0) { display()。 } k=2,P1=c[k]。 t=0。 NB=DXG+H,DX=DXG。 display()。 } } } void display() //显示程序 { P2=0xfe,P0=a[NB%10]。 /*由 k 的不同值进入确定显示数值 */ delay(20)。 P2=0xfd,P0=a[NB/10]。 delay(20)。 P2=0xfb,P0=a[DX%10]。 delay(20)。 P2=0xf7,P0=a[DX/10]。 delay(20)。 } void main(void) { //主程序 init()。 for(。 ) 东北大学单片机课程设计 17 { display()。 key()。 //黄灯闪烁程序 while(j==1) /*主干道黄灯闪烁 */ { P1=0xdc。 /*给黄灯一高电平黄灯灭 */ for(i=83。 i0。 i){display()。 } /*执行 for 循环延时 */ P1=c[k]。 /*再给黄灯一低电平黄灯亮 */ for(i=83。 i0。 i){display()。 } } while(j==2) { /*支干道黄灯闪烁 */ P1=0xf8。 for(i=83。 i0。 i){display()。 } P1=c[k]。 for(i=83。 i0。 i){display()。 } } } } 附录 2 系统 原理图 东北大学单片机课程设计 18 东北大学单片机课程设计 19 在该设计基础上,作者增加了日历 显示功能,显示月、日、时、分,电路图和程序如下 : 东北大学单片机课程设计 20 东北大学单片机课程设计 21 交通灯程序: include define uchar unsigned char//宏定义 uchar define uint unsigned int//宏定义 uint sbit RED_DONGXI = P1^0。 //南北方向红灯亮 sbit YELLOW_DONGXI = P1^1。 //南北方向黄灯亮 sbit RED_NANBEI = P1^3。 //东西方向红灯亮 sbit GR。基于单片机的交通灯系统设计
相关推荐
7 用的以太网控制器接入以太网的。 对于单片机系统,在选择以太网控制器时,要考虑一下几个因素: 首先,要求所选的以太网控制器必须支持 8 位工作模式。 实际上,只有部分基于ISA 总线的以太网控制器才能满足此条件,所以基于 PCI 总线的不在此考虑之列。 其次,要 考虑以太网控制器的片上缓存,最好选用具有足够片上缓存的以太网控制器以简化系统设计。 再次,应考虑以太网控制器与主机的数据交换形式
水温度的差值很大,认为循环泵故障,报警系统报警。 此部分采用声光报警以便很容易区分哪部分出现问题,便于维修人员及时进行维修。 根据报警铃和灯的不同确定哪部分出现问题。 A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U17 4 A L S 1 6 4A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U27 4 A L S 1 6
在一定的关系 ,往往知道了前者就能推定后者。 最常用的标准输入信号有阶跃 信号和正弦信号两种 , 所以传感器的动态特性也常用阶跃响应和响应效率来表示。 传感器的线性度 通常情况下 , 传感器的实际静态特性输出是条曲线而非直线。 在实际工作中 , 为使仪表具有均匀刻度的读数 , 常用 一条拟合直线近似地代表实际的特性曲线、线性度 ( 非线性误差 ) 就是这个近似程度的一个性能指标。
率和发送波特率可以分别设置,而且,可以通过编程来指定。 RS232C标准: RS232C标准 对两个方面作了规定,即信号电平标准和控制信号线的定义。 RS232- C采用负逻辑规定逻辑电平,信号电平与通常的 TTL电平也不兼容, RS232C将 5V~ 15V 规定为“ 1”, +5V~ +15V 规定为“ 0”。 TTL 标准和 RS232C标准之间的电平转换 如图 9: 图 9 TTL标准和
→[Open Project] ,在 „打开 ‟对话框内选择所要打开的工程; 14 窗口(工作区窗口)显示在工具的左半边,在这个窗口内,用户可以看到当前工程所包含的所有文件; 选择 [Build]→[Rebuild All] ,进行源文件的编译和链接。 编译过程里的语法错误显示在 Output 窗口内; 选择 [Build]→[Start Debug]→[Download] ,把程序加载到
设计 9 芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。 这也是今后以 80C51取代 8051为标准 MCU芯片的原因。 因为单片机芯片多数是采用 CMOS(金属栅氧化物)半导体工艺生产。 CMOS电路的特点是低功耗、高密度、低速度、低价格。 采用双极型半导体工艺的 TTL电路速度快,但功耗和芯片面积较大。 随着技术和工艺水平的提高, 又出现了