论文部分内容阅读
摘 要 公交车作为人们日常出行的重要交通工具之一,关系到大多数人的利益。基于单片机设计的公交车空位显示系统,结构简单,功能强大,可以有效的缓解公交车的秩序问题。
关键词 ATMega16单片机;公交空位显示;12864液晶屏
中图分类号 TP 文献标识码 A 文章编号 1673-9671-(2010)121-0037-01
随着城市的不断扩建,越来越多的人们选择了公交车这种交通工具,因此公交车的安全性和舒适性关系到大多数人的切身利益。如果当公交车驶入站台时,在站台上等待的人们若能了解到车上剩余座位数,便可及时地决定出自己是否乘坐该辆车,从而避免了不必要的拥挤,并能保证公交车的乘坐环境。
本文设计的显示系统通过单片机接收到来自安装在座位上的按钮是否被按下的信号,从而控制显示屏上代表空余座位灯的亮灭以及显示空余座位数的数码管。
1 系统硬件结构图
本设计以单片机控制为核心,外部包括12864液晶屏、按键、七段数码管、LED指示灯,总体结构框图如图1所示。对于公交车的每一个座位内置一个按键(压力传感器),当乘客坐下时,相当于按键被按下,该信号传送至单片机,单片机接收到该信号时,即可进行处理,对七段数码管的记数减一,同时对应的座位LED灯熄灭;同理,当乘客起来时,相当于按键恢复,该信号被传送至单片机处理,对七段数码管的记数加一,同时对应的座位LED灯点亮,司机可以根据公交车的座位数设置初始值。
图1 系统结构图
2 关键硬件设计
单片机是整个系统的核心部分,是指一个集成在一块芯片上的完整计算机系统。本文通过功能性和成本方面的综合考虑,选择使用了ATMega16单片机。
ATMega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器,由于其先进的指令集以及单时钟周期指令执行时间,ATMega16的数据吞吐率高达1MIPS/MHZ,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega16 包含16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O口线,32 个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。
按键式开关构造,其特征在于具备固定触点;形成与该固定触点可接触的可动触点;具有刚性和弹性的圆顶状的第1翻转弹簧;传递使该第1翻转弹簧翻转的按压力;并由较前述第1翻转弹簧柔软的材料制成且具有弹性的第2反转弹簧;在前述第1翻转弹簧和前述第2翻转弹簧之间,设定使这些第1翻转弹簧和第2翻转弹簧几乎同时翻转的间隙尺寸。
LED(Light Emitting Diode)指示灯,是一种能够将电能转化为可见光的固态的半导体器件。在本次设计中,LED指示灯用来显示公交车上的空位,当灯亮时表示该座位是空位,而灯灭是表示该座位已有人;发光二极管的压降一般为1.5~2.0 V,其工作电流一般取10~20mA为宜。同时,采用七段数码管来显示公交车上的空座数,例如公交车上有三十个座位,当没有乘客时数码管会显示数字30,空座减少一个相应的数字会减少1。
12864液晶屏内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字;也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3 程序设计思想及流程图
本次设计基于C语言实现,采用模块化程序设计方法,将系统程序的设计主要分为按键程序设计、液晶显示程序设计、中断处理程序,主程序流程如图2所示。
按键部分 LCD部分
图 2
按键程序设计:
当按键被按时,I/O接口接收到一个高电平,通过中断启动单片机程序处理,并且输出实现对7端数码管的控制。
按键部分程序:
void main()
{
DDRD=0xff;
DDRC=0x00;
DDRA=0x00;
PORTA=0x00;
PORTC=0x01;
while(1)
{
count=PINA; i=((count&0x01)>>0)+((count&0x02)>>1)+((count&0x04)>>2)+((count&0x08)>>3)+((count&0x10)>>4)+((count&0x20)>>5)+((count&0x40)>>6)+((count&0x80)>>7);
PORTD=show[i];
choose();
}
}
4 结论
通过实际测试,LCD与按键、数码管都与开发板连接,测试数码管可以正确统计剩余按键的数目,LCD可显示设定的信息,且可通过按键进行切屏,具有使用方便、操作简单等特点,在公交车中能够得到很好的运用。
参考文献
[1]陈汝全.实用微机与单片机控制技术[M].电子科技大学出版社,1995,7.
[2]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1990.
[3]周航慈.单片机应用程序设计[M].北京航空航天大学出版社,1991,8.
关键词 ATMega16单片机;公交空位显示;12864液晶屏
中图分类号 TP 文献标识码 A 文章编号 1673-9671-(2010)121-0037-01
随着城市的不断扩建,越来越多的人们选择了公交车这种交通工具,因此公交车的安全性和舒适性关系到大多数人的切身利益。如果当公交车驶入站台时,在站台上等待的人们若能了解到车上剩余座位数,便可及时地决定出自己是否乘坐该辆车,从而避免了不必要的拥挤,并能保证公交车的乘坐环境。
本文设计的显示系统通过单片机接收到来自安装在座位上的按钮是否被按下的信号,从而控制显示屏上代表空余座位灯的亮灭以及显示空余座位数的数码管。
1 系统硬件结构图
本设计以单片机控制为核心,外部包括12864液晶屏、按键、七段数码管、LED指示灯,总体结构框图如图1所示。对于公交车的每一个座位内置一个按键(压力传感器),当乘客坐下时,相当于按键被按下,该信号传送至单片机,单片机接收到该信号时,即可进行处理,对七段数码管的记数减一,同时对应的座位LED灯熄灭;同理,当乘客起来时,相当于按键恢复,该信号被传送至单片机处理,对七段数码管的记数加一,同时对应的座位LED灯点亮,司机可以根据公交车的座位数设置初始值。
图1 系统结构图
2 关键硬件设计
单片机是整个系统的核心部分,是指一个集成在一块芯片上的完整计算机系统。本文通过功能性和成本方面的综合考虑,选择使用了ATMega16单片机。
ATMega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器,由于其先进的指令集以及单时钟周期指令执行时间,ATMega16的数据吞吐率高达1MIPS/MHZ,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega16 包含16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O口线,32 个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。
按键式开关构造,其特征在于具备固定触点;形成与该固定触点可接触的可动触点;具有刚性和弹性的圆顶状的第1翻转弹簧;传递使该第1翻转弹簧翻转的按压力;并由较前述第1翻转弹簧柔软的材料制成且具有弹性的第2反转弹簧;在前述第1翻转弹簧和前述第2翻转弹簧之间,设定使这些第1翻转弹簧和第2翻转弹簧几乎同时翻转的间隙尺寸。
LED(Light Emitting Diode)指示灯,是一种能够将电能转化为可见光的固态的半导体器件。在本次设计中,LED指示灯用来显示公交车上的空位,当灯亮时表示该座位是空位,而灯灭是表示该座位已有人;发光二极管的压降一般为1.5~2.0 V,其工作电流一般取10~20mA为宜。同时,采用七段数码管来显示公交车上的空座数,例如公交车上有三十个座位,当没有乘客时数码管会显示数字30,空座减少一个相应的数字会减少1。
12864液晶屏内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字;也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3 程序设计思想及流程图
本次设计基于C语言实现,采用模块化程序设计方法,将系统程序的设计主要分为按键程序设计、液晶显示程序设计、中断处理程序,主程序流程如图2所示。
按键部分 LCD部分
图 2
按键程序设计:
当按键被按时,I/O接口接收到一个高电平,通过中断启动单片机程序处理,并且输出实现对7端数码管的控制。
按键部分程序:
void main()
{
DDRD=0xff;
DDRC=0x00;
DDRA=0x00;
PORTA=0x00;
PORTC=0x01;
while(1)
{
count=PINA; i=((count&0x01)>>0)+((count&0x02)>>1)+((count&0x04)>>2)+((count&0x08)>>3)+((count&0x10)>>4)+((count&0x20)>>5)+((count&0x40)>>6)+((count&0x80)>>7);
PORTD=show[i];
choose();
}
}
4 结论
通过实际测试,LCD与按键、数码管都与开发板连接,测试数码管可以正确统计剩余按键的数目,LCD可显示设定的信息,且可通过按键进行切屏,具有使用方便、操作简单等特点,在公交车中能够得到很好的运用。
参考文献
[1]陈汝全.实用微机与单片机控制技术[M].电子科技大学出版社,1995,7.
[2]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1990.
[3]周航慈.单片机应用程序设计[M].北京航空航天大学出版社,1991,8.