汉字显示系统设计(单片机)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告单
实验名称:汉字显示系统设计
实验项目:
实验目的:1. 掌握单片机应用系统的设计方法;
2.深刻理解单片机片内主要硬件的功能和运行原理;
3.深刻理解单片机相应系统的开发过程。
实验器材:装有Proteus和Keil uVision的电脑。
实验原理:
实验步骤:1.在仿真系统Proteus中实现电路原理图设计;
新建设计文档、设置工作环境、选择并放置元器件、对原理图进行布
线、原理图的电器规则检查、调整、保存和输出报表等。
2.源代码的设计与生成目标代码;
在Keil uVision5平台进行C语言和汇编语言源代码的输入、编译与
调试,并生成可执行文件.hex。
C语言存储为.c文件,汇编语言存
储为.asm文件。
3.调试与仿真;
在Proteus中将可执行文件.hex加载到单片机中,对系统进行虚拟
仿真。
在调试时也可使用Proteus与Keil uVision联合仿真调试。
程序代码及实验结果:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar code table[]={0xf0,0x01,0x02,0x03,0x03,0x02,0x01,0xf0};
uchar i=1;
void main()
{
P3=0X01;
EA=1;
ET0=1;
TMOD=0x00;
TH0=(8192-2000)/32;
TL0=(8192-2000)%32 ;
TR0=1;
while(1);
}
void Display() interrupt 1
{
TH0=(8192-2000)/32;
TL0=(8192-2000)%32 ;
P0=0xff;
P0=table[i];
P3=_crol_(P3,1);
i++;
if(i==8)
{
i=0;
}
}
.ORG 000H
AJMP MAIN
MAIN:
L1:
MOV P0,#0X7F MOV P3,#0X04 LCALL DELAY L2:
MOV P0,#0X7F MOV P3,#0X10 LCALL DELAY L3:
MOV P0,#0XBF MOV P3,#0X08 LCALL DELAY L4:
MOV P0,#0XC7 MOV P3,#0X1C LCALL DELAY L5:
MOV P0,#0XC7 MOV P3,#0X22 LCALL DELAY L6:
MOV P0,#0XFD MOV P3,#0X7F LCALL DELAY L7:
MOV P0,#0XC2 MOV P3,#0X08 LCALL DELAY AJMP L1 DELAY:
MOV R5,#010H D1:
MOV R6,#010H DJNZ R6,$ DJNZ R5,D1 RET
END
实验结果:一个“鼎”动态扫描:
实验结果
动态扫描:
通过此次综合实验,掌握了单片机应用系统的设计方法;深刻理解了单片机内主要硬件的功能和运行原理;深刻知悉了单片机相应系统的开发过程;对学习过的单片机知识有一个综合性的运用。
要学好单片机,必须多学、多练、多记。
111条指令、40条引脚功能和用途、内部结构和工作方式,都需要经常复习和练习。
在硬件电路设计中,学会在仿真系统中画总线、画斜线,总线画出来后又将总线有效地将每一个元器件和相应端口连接;最小时钟电路可以复制,做一次实验连接一次最小时钟电路有点浪费时间,个人觉得没有必要。
在画图过程中,一定要统筹,提前做好布局,使电路原理图美观大方。
软件设计中,同时也复习了一些C语言的基础知识,也更熟练的掌握了汇编语言。
诚挚地感谢老师辛勤、负责、科学地教学,您辛苦了!。