品串行数据接收器_第1页
品串行数据接收器_第2页
品串行数据接收器_第3页
品串行数据接收器_第4页
品串行数据接收器_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 中南民族大学计算机科学学院单片机课程设计报告课 程 单片机课程设计 设计题目 品串行数据接收器 年级专业 自动化12级 学 号 学生姓名 肖雄峰 指导教师 吴桂华、田微 2014年 12 月 20 日课程设计量化评分标准指标最高分评分要素评分方案设计35方案选择合理,分析、设计正确,原理清楚,电路、程序流程图清晰,结构合理,程序简洁、正确。调试15过程清晰,调试方案设计合理,测试点选择适当,程序编写正确,调试步骤清楚。结果20电路及程序运行结果正确,达到预期效果。设计报告20报告结构严谨,逻辑严密,论述层次清晰,语言流畅,表达准确,重点突出,报告完全符合规范化要求,用计算机打印成文。工作态度

2、10工作态度认真,按时完成设计任务,是否独立完成。总 评 成 绩指导老师评语:设计题目:串行数据接收器2 (接收的数据送数码显示) 一、 要求 : 使用矩阵键盘输入数据,通过串行口传递到数码管显示出来。要求能显示数字0到9,以及字母A-F。二、 分析 实验箱上提供了一个4行4列的矩阵键盘,8155的PA0PA3连接矩阵键盘的4列,8155的PC0PC3连接矩阵键盘的4行。 该矩阵键盘的工作原理如下:依次输入列驱动扫描码,每次使某一列为低电平,而其他列为高电平;读取行输入码,若该行有按键按下则对应的行输入是低电平,若无按键按下则输入是高电平,这样可以将按键的位置找出,得到唯一与之对应的按键编码,

3、如图所示。例如第2行、第3列按键的按键编码是这么得来的,当输出列驱动码PA=0000 1011B时,若无按键按下,则得到行输入PC=0000 1101B,取驱动码的低四位为按键编码的低4位,取行输入的低四位为按键编码的高4位,最终得到按键编码为1101 1011B(0dbH)。0xee0xed0xeb0xe70xde0xdd0xdb0xd70xbe0xbd0xbb0xb70x7e0x7d0x7b0x77PC0PC1PC2PC3 PA0 PA1 PA2 PA3 实验箱上8155扩展了8位7段LED显示器,可编程采用动态方式驱动显示,即一位LED显示器显示一小段时间,然后是下一位LED显示器一小段

4、时间,如此类推,周而复始。只要刷新频率不小于50Hz,得用人眼的视觉误差,就可以获得清晰稳定的显示效果。7段LED显示器显示一小段由8155的B口驱动,各段的驱动位如表,段引脚为低电平则对应段发光,高电平则对应段熄灭,依照该方法,可得到常用字符的字形码表。8个LED的选择位由8255的A口驱动,高电平则选中对应LED,低电平则对应LED熄灭,依照该方法,可得到每个7段LED工作时分别对应的位选码表。LED各段与8155PB口各位的对应关系LED的段 h g f e d c b a 8155PB的位 D7 D6 D5 D4 D3 D2 D1 D0显示字的字形码表显示字字形码显示字字形码00xc0

5、80x8010xf990x9020xa4A0x8830xb0B0x8340x99C0xc650x92D0xa160x82E0x8670xf8F0x8e三、设计1、硬件设计(包括设计方案及说明、完整的硬件连接图等)用跳帽将串行口的P1.0与P1.1连接,8155初始化调用LED显示程序键盘扫描程序判断有无按键按下修改有LED显示内容2、 软件编程(包括流程图、完整的汇编源程序及其注释) #include #include #include #define COM8155 XBYTE0x1000 #define PA8155 XBYTE0x1001 #define PB8155 XBYTE0x10

6、02 #define PC8155 XBYTE0x1003 code unsigned char led_font=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e,0xff ; code unsigned char key_code=0x11,0x12,0x14,0x18, 0x21,0x22,0x24,0x28, 0x41,0x42,0x44,0x48, 0x81,0x82,0x84,0x88; unsigned char led_data8=16,16,16,16,16,1

7、6,16,16; void led_display(unsigned char *m ); void delay_ms(unsigned char n); unsigned char key_read(void); void main(void)unsigned char i,key_now,key_last; delay_ms(100);delay_ms(100);delay_ms(100);delay_ms(100);delay_ms(100);COM8155=0x03; key_last=0xff;while(1) led_display(led_data); / key_now=key

8、_read(); PCON=0x00; SCON=0x50; TMOD=0x20; TH1=0xF4; TL1=0xF4; TR1=1; SBUF=key_read(); RI=0; key_now=SBUF; if(key_now!=0xff)&(key_now!=key_last) for(i=7;i0;i-) led_datai=led_datai-1; led_data0=key_now; key_last=key_now; void led_display(unsigned char *m) unsigned char i; unsigned char led_bit8=0x10,0

9、x20,0x40,0x80,0x01,0x02,0x04,0x08; for(i=0;i8;i+) PB8155 = led_fontmi; PA8155 = led_biti; delay_ms(1); PA8155 = 0; void delay_ms(unsigned char n) unsigned char i; while(n-) for (i=0;i125;i+); unsigned char key_read(void) unsigned char i,scandata; unsigned char key_current,col_out,row_in; scandata=0x

10、01; PA8155=0x0f; delay_ms(5);if(PC8155&0x0f)=0x00) return 0xff; for(i=0;i4;i+) PA8155=scandata; col_out=0x0f&scandata; if(PC8155&0x0f)!=0x00) row_in=(PC8155&0x0f)4; key_current=row_in+col_out; scandata=_crol_(scandata,1); for(i=0;i16;i+) if(key_current=key_codei) return i; return 0xff; 3、 调试说明 将程序正确

11、输入单片机后,用跳线连接串行口的P1.0和P1.1。 然后依次按键盘矩阵,8位数码管会从最左边开始依次显示0-9及A-F。则调试成功。4、 设计结果及错误分析 刚开始我将程序输入机箱后,发现8位数码管一个都不亮。按键盘数码管也没有反应,我就意识到自己的程序有问题,经检查程序将一些有问题规范下后发现结果仍一样。经过询问老师,我才恍然大悟,我并没有将串行口连接起来,以致键盘的数据无法传送到数码管,经过改正,达到了需要的效果。三、 总结 通过对微机原理,单片机原理及接口技术以及单片机的学习,我了解并掌握计算机的简单工作原理,以及汇编语言的编制过程,并且能够综合运用所学到的基本理论进行简单的软硬件实验。 在实验期间,虽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论