一.硬件方案
本设计由STC系列单片机+12864显示+电源模块+按键模块+蜂鸣器报警模块等元件组成。
使用STC89C52(STC89C52数据手册)单片机设计,设有8个按键,3个按键模拟硬币(5元、1元、5角),另外5个按键模拟货物选择,一块12864显示屏;如图:
二.设计功能
(1)开机启动显示货物价格列表,自动切换列表。
(2)可以选择①—⑤种货物(或更多)。
(3)按对应按键可选择该货物。
(4)选择后,提示要投进的金额,并显示投币有效时间30秒(可修改)。
(5)按键模拟投币,有5元、1元、5角。
(6)投币金额等于或大于所选货物的金额则购物成功。
(7)若投币不足,则30秒后自动退回。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
四.软件设计
主程序源码
//************************************
//主程序
//*************************************
main()
{
TMOD=0x01; //T0 工作在方式1 16位计数器
TH0=(65536-50000)/256; //预先 设定定时器 初值,50毫秒
TL0=(65536-50000)%256;
EA=1; //开启 总中断
ET0=1; //开启定时器 0 中断
TR0=1; //定时器 0 启动计数
init_lcd();
clrram_lcd();
while(1)
{
show(); //显示处理
key(); //输入处理
}
}
void time0(void) interrupt 1
{
TH0=(65536-50000)/256; //重新设置定时器 初值,产生50MS定时中断
TL0=(65536-50000)%256;
count++; //50ms太短,闪烁频率太快
if(count==10)
{
if(n==0)
{
Time[0]=m/10+'0';
Time[1]=m%10+'0';
Time[2]='