排队叫号系统设计 - 图文(6)

2019-08-31 15:31

单片机系统课程设计 认真钻研来解决。在程序设计过程中遇到的很多问题,阻碍设计的过程,通过总结,深深体会到程序设计的时候模块化处理的重要性,可以先画好程序流程图,然后对按键模块,显示模块,语音提示模块依次分析。

本次课程设计能够实现基本的智能排队叫号目的,但是由于初步将对单片机运用到实际操作当中,难免有不足之处,比如没有配置系统取号打印机部分等。总体来说,通过本次课程设计,增强了我在专业设计方面的能力,同时也培养了我对单片机的学习的兴趣。我感觉学单片机就是要多实践,老师领我们进入单片机世界,精通它就得靠我们自己,那就需要多实际操作,将自己所学知识灵活运用到实际生活当中。

衷心感谢给我们教课的老师!感谢您这学期以来的辛勤付出,在课程设计期间,您细心的为同学们解答问题提供帮助,使我们对单片机的学习有了进一步的提高,谢谢!

7参考文献

[1] 夏路易 石宗义.Protel 99se电路原理图与电路板设计教程.北京:北京希望电子出版社,2004

[2] 伟福LAB6000系列单片机仿真实验系统使用说明书

[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006 [4] 薛庆军、张秀娟.单片机原理实验教程.北京.北京航空航天大学出版社,2008

[5] 杨家成.单片机原理与应用及C51程序设计.北京:清华大学出版社,2007

附录1实物图

25

单片机系统课程设计 附录2系统原理图23U212345678910OUTPUTVCCD0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7GNDLATCHSN74HC573ANVCC20191817161514131211VCC51012471134dpgw46P2.7P212345678910LCD_CSLCD_SID11121314151617181920LCD_SCLKLCD_RSTfedcbaLEDw38P2.6w29P2.1VCCw212P2.0VCCDW110KVCCC160.1pfU51SCLK2SS34.7KMOSI4RAC5C3610U78R391010KXTAL21112JNT131415X11617XTAL218XTAL11920XTAL1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0(RXD)P3.1(TXD)INT0INT1P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GNDSTC89C51RCR1U1SSMOSI1234567891011121314SSMOSIMISOVSSDNCNCNCNCNCNCVSSAVSSAOUTCAPISD4004SCLKVDDXCLKINTRACVSSANCNCNCNCVCCAIN+IN-NC28SCLK272625JNT24RAC232221201918171615VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE(PROG)PSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221KEY1KEY2KEY3LED1LED2P5123456789VCCVCCR1110KR1210KR1310KS1KEY1CON9P2.7P2.6KEY2LCD_CSLCD_SIDLCD_SCLKLCD_RSTC2030pfS2C2130pfS3KEY3VCCVCCVCC-3.3V104ufC1VCC-3.3VR210KR24.7KC2KEY110ufR34.7KR310KS1C3104ufC4104C7104R44.7KS2KEY2P312MICC101ufC111ufR510KU31234GAIN-INPUT+INPUTGNDLM386GAINBYPASSVsVoutC810uf8765C12104VCCC14p412CON2DW210KC15104220uf 23 26

4 单片机系统课程设计 附录3 C51源程序:

#include

//C51程序包含的头文件

#define uchar unsigned char

#define uint unsigned int//以下定义要用到的字符串数组 uchar code t0[]=\ uchar code t1[]=\

//wp意为正在等待的人数

uchar code t2[]=%uchar code t3[]=%uchar code t33[]=%uchar code t4[]=%uchar code t44[]=%uchar code t5[]=%uchar code t55[]=%uchar code t6[]=%uchar code t66[]=%uchar num,waiting,count; 等待的人数

sbit lcden=P2^7; sbit lcdrw=P2^5; sbit lcdrs=P2^6; 令,置1写数据 sbit s0=P3^4; sbit s1=P3^1; sbit s2=P3^2; sbit s3=P3^3; sbit add=P3^5; sbit bee=P1^5; //函数声明 void delay(uint);

27

//num为所领号码,waiting为正在

//液晶使能端

//“读”或“写”选择端,要置低 //写命令或数据选择端:置0写命

//领号键 //窗口1的叫号键 //窗口2的叫号键 //停止领号键

//统计客流量 //语音端口

//延时

单片机系统课程设计 void di(); //语音

//向液晶写入命令 //向液晶写入数据

//移动光标

void write_com(uchar); void write_data(uchar); void go(uchar,uchar); void shownum(uchar);

//显示数字 //显示字符串 void showstr(uchar *); void clear(); void init();

void keyscan();

//函数定义

void delay(uint n) { uint i,j;

for(i=n;i>0;i--)

for(j=110;j>0;j--);

}

void di() { bee=0; delay(100); bee=1; }

void write_com(uchar com) { lcdrs=0; lcdrw=0; P0=com;

lcden=1;

delay(3);

//清空动态显示 //初始化

//键盘扫描

//不够精确地延时1ms

//选择写命令

//“读写”选择写

//液晶输入端接单片机P1口 //产生上升沿

28

单片机系统课程设计 }

lcden=0;

void write_data(uchar dat) { lcdrs=1;

//选择写数据

lcdrw=0; P0=dat; lcden=1; delay(3); lcden=0;

}

void go(uchar x,uchar y) { if(x==1)

write_com(0x80+y);

else

write_com(0x80+0x40+y);

}

void shownum(uchar dat) { uchar code t[]=\ uchar shi,ge; shi=dat/10; ge=dat;

if(shi>0)

write_data(0x30+shi);

else write_data(t[0]);

write_data(0x30+ge);

//从液晶第一行左端开始写入数据//从液晶第二行左端开始写入数据 //分离十位 //分离个位

//显示个位

//显示十位

29


排队叫号系统设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:受控文件清单

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

马上注册会员

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