1、单片机课程设计2 中北大学信息商务学院课程设计任务书 11/12 学年第 二 学期系 别: 信息与通信工程 专 业: 自动化 学 生 姓 名: 刘波 学 号: 09050542X45 课程设计题目: 矩阵键盘控制七段数码管显示 十六进制数 起 迄 日 期: 6 月 11 日 6 月 17 日 指 导 教 师: 刘长明 系 主 任: 王明泉 下达任务书日期: 2012 年6月 11 日课 程 设 计 任 务 书1设计目的: 设计一个根据单片机及接口技术课程中所学的知识,熟练AT89C51单片及的性能和编程原理,设计一个简单的硬件电路,画出电路图,编写控制程序,进一步提高综合运用知识的能力。2设计
2、内容和要求 矩阵键盘控制七段数码管显示十六进制数:一片单片机,16个按键,一个7段数码管,其他元件若干。4*4的矩阵键盘,每一个键对应一个十六进制数字0F,当按下其中一个按键后在数码管上显示相应的数字。 8*8 LED灯点阵显示:一片单片机,一个8*8LED点阵模块(或64个发光二极管),其他元件若干。在8*8LED(发光二极管)点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。 两位跑马表设计:一片单片机,两个7段数码管,一个按键,其他元件若干。开始数码管显示“00”,当按下按键1次开始计时,按下按键2次停
3、止计时,按下按键3次清零。 双机串口通信:两片单片机,两个串口9针D型插头,两片MAX232芯片,发光二极管8个,其他元件若干。两个单片机通过串口进行数据传输,一个发送8位二进制数,一个接收,当接收端接收到相应的数据,通过8个发光二极管的亮灭显示其接收数值。以上题目任选一个做。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:(1)查阅资料,确定程序方案(2)画出流程图,设计电路,编写程序(3)撰写课程设计说明书 课 程 设 计 任 务 书4主要参考文献:1 张靖武 周灵彬. 单片机原理、应用与PROTEUS仿真, M北京:电子工业出版社,2007年4月.P73-8
4、72 高卫东 辛友顺 韩彦征. 51单片机原理与实践,M北京:北京航空航天大学出版社,2008年. P95-993 张红润 刘秀英 张亚凡. 单片机应用设计200例, M 北京:北京航空航天大学出版社,2006年. P120-1255设计成果形式及要求:课程设计说明书1份流程图1份电路图1份程序清单1份6工作计划及进度:12年6月11日 6月12日 收集整理资料,确定控制方案6月13日 6月14日 画出流程图,编写程序6月15日 6月16日 撰写课程设计说明书6月22日 答辩系主任审查意见: 签字: 年 月 日1、电路图AT89C51单片机对4*4矩阵键盘进行动态扫描,当有按键盘的键时,可将相
5、应按键值(0F)实时显示在数码管上。4*4矩阵键盘原理图:最常见键盘布局如下图1.1所示。一般由16个按键组成,在单片机中正好可以用一个p口实现16个按键功能,这也是单片机系统中最常见的形式,本设计就采用这个键盘模式。绘制原理图:1) 打开protrus仿真软件,进入主界面,然后新建一个图纸文件,软件默认为A4纸张,符合我们的要求,所以不需要修改。2) 开始绘图,点击按钮P,弹出选择添加的器件框图,在Keywords里直接输入所需器件的名称或者在Category的下面各个选项里一次查找所需的器件名称,然后点击ok将所需器件添加进去。3)依次添加AT89C51芯片,共阳极的7段数码管,16个按键
6、,8个电阻R0R7,一个晶片,3个电容,地及电源。4)按照设计的要求正确的连接电路,连接时注意管脚的分配及AT89C51的工作原理。5)对连接好的电路图进行仿真,如果有错误要先按下暂停,然后对电路进一步的调整与修改,再进行仿真,保存原理图文件。电路图如下:2、流程图3、程序仿真源程序如下:#include#define uchar unsigned char /数据类型的宏定义#define uint unsigned int /数据类型的宏定义sbit P07=P21;Unsigned; chart code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
7、0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF; /共阳数码管显示字型码数组 1011 1111 -void delay1ms(uint i)uchar j;while(i-) for(j=0;j115;j+) /1ms基准延时程序 ; void display(unsigned char i) P07=1; /选通最有端的数码管显示 P0=tablei; /显示i参数传来的字型码 void main(void) unsigned char temp; display(16); /初始显示 - while(1) /P1=0xff; /先向P1
8、口写1;端口读状态 P1=0xf0; temp=P1; if(temp!=0xf0) delay1ms(15); if(temp!=0xf0) P1=0xfe; temp=P1; switch(temp) case(0xee):display(0);break; case(0xde):display(4);break; case(0xbe):display(8);break; case(0x7e):display(12);break; P1=0xfd; temp=P1; switch(temp) case(0xed):display(1);break; case(0xdd):display(5
9、);break; case(0xbd):display(9);break; case(0x7d):display(13);break; P1=0xfb; temp=P1; switch(temp) case(0xeb):display(2);break; case(0xdb):display(6);break; case(0xbb):display(10);break; case(0x7b):display(14);break; P1=0xf7; temp=P1; switch(temp) case(0xe7):display(3);break; case(0xd7):display(7);break; case(0xb7):display(11);break; case(0x77):display(15);break; 仿真结果:将此程序在汇编器中生成的“.hex”文件,导入AT89C51芯片中,用鼠标右键点击AT89C51,然后点鼠标左键,弹出编辑元件的框图,在programfile里添加.hex文件,再点OK。 点击“开始”按键,进行仿真,点击右边4*4按键,则数码管显示0F,仿真结果符合实验要求,仿真结果如下图所示:
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2