基于单片机的自动售货机(8)

2019-04-15 22:19

攀枝花学院本科毕业设计(论文) 附录

}

void lcd_1602_init() //LCD1602初始化函数 { lcd_en=0;

lcd_1602_write_com(0x38); lcd_1602_write_com(0x0e); lcd_1602_write_com(0x06); lcd_1602_write_com(0x01); }

void lcd_1602_wait_sure() //显示'OK'&'NO'界面 {

lcd_1602_write_com(0x80+0x40); lcd_1602_write_data('O'); lcd_1602_write_data('K');

lcd_1602_write_com(0x80+0x4e); lcd_1602_write_data('N'); lcd_1602_write_data('O'); }

void lcd_1602_show_num(uint num) // 1602显示数字的函数 {

if(num <= 9) {

lcd_1602_write_data('0'+num); lcd_1602_write_data(' '); }else if(num >= 10 ) {

lcd_1602_write_data('0'+num/10); lcd_1602_write_data('0'+num); } }

32

攀枝花学院本科毕业设计(论文) 附录

void lcd1602_info_display(uint choose, uint num_type, uint num_count) //1602显示函数 { int num;

lcd_1602_write_com(0x01); switch(choose) {

case WAIT_SALE:

lcd_1602_write_com(0x80+0x03); // for(num = 0; num < 7; num++) {

lcd_1602_write_data(wait_sale[num]); } break;

case NO_WATER:

lcd_1602_write_com(0x80+0x03); for(num = 0; num < 9; num++) {

lcd_1602_write_data(no_water[num]); } break; case SALING: //price

lcd_1602_write_com(0x80+0x00); for(num = 0; num < 6; num++) {

lcd_1602_write_data(price[num]); }

lcd_1602_write_data('0'+(num_type+1)); lcd_1602_write_data(' '); //number

lcd_1602_write_data(' '); for(num = 0; num < 4; num++)

33

攀枝花学院本科毕业设计(论文) 附录

{

lcd_1602_write_data(number[num]); }

lcd_1602_show_num(num_count);

break;

case INPUT_MONEY: //need money

lcd_1602_write_com(0x80+0x00); for(num = 0; num < 4; num++) {

lcd_1602_write_data(sum[num]); }

lcd_1602_show_num(num_type); //input

lcd_1602_write_data(' '); lcd_1602_write_data(' '); for(num = 0; num < 6; num++)

{ }

lcd_1602_write_data(input[num]); lcd_1602_show_num(num_count); break; case CHANGE: if(!num_count)

{

//put water

for(num = 0; num < 13; num++)

lcd_1602_write_com(0x80+0x02); {

lcd_1602_write_data(put_water[num]); } }

34

攀枝花学院本科毕业设计(论文) 附录

else {

//cancle water

lcd_1602_write_com(0x80+0x02); //取消选择时写命令退币 for(num = 0; num < 9; num++) } //change

lcd_1602_write_com(0x80+0x43); for(num = 0; num < 7; num++)

{

lcd_1602_write_data(change[num]); }

{ }

lcd_1602_write_data(cancle[num]);

lcd_1602_show_num(num_type); break; default: break; }

lcd_1602_write_com(0x0c); }

void lcd_1602_saling(uint type, uint num) { }

void lcd_1602_inputing(uint need, uint input) {

lcd1602_info_display(INPUT_MONEY, need, input); lcd_1602_wait_sure(); }

/*************************************************/

35

lcd1602_info_display(SALING, type, num); lcd_1602_wait_sure();

攀枝花学院本科毕业设计(论文) 附录

void delay1(unsigned int t) // 延时函数 {

unsigned int i,j; for(i=0;i

void out_water() //推出水函数 {

int i, j = 100; while(j--) {

for(i = 0; i < 8; i++) {

P0 = water_change(0xff, i);

delay1(50); } } P0 = 0xff; }

unsigned char key(void) //按键响应函数 {

unsigned char key,key1,key2; P1=0XF0;

if((P1&0XF0)!=0XF0) //ked down {

delay1(10); {

key1=P1&0XF0; P1=0X0F; key2=P1&0X0F; key=key1|key2;

36

//延时去抖动

//仍然有键按下 //读入列线值

if((P1&0XF0)!=0XF0)


基于单片机的自动售货机(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于S7-200PLC的工业铲车控制系统设计 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: