博主是2018级机械设计制造及自动化的学生,本来对结构颇为感兴趣,由于这学期课程接触到了单片机和编程,再加上对传统行业的落寞感到的心生倦怠和对自动化和芯片的浓厚兴趣,让我产生了对嵌入式行业产生了不小的兴趣,所以打算边学边写,看看能不能入得了这个行业槛。
当然作为整理所学,也不只是为了我自己日后方便回顾所学,也是为了刚开始接触这门学科的同学,因为我是比较崇尚B站大学的,很多学科也是托了B站才能够在课下多学点知识(主要是上课有时候确实会听漏),但是对于这门课网上的课程确实对于初学者实在是不太友好,所以想要写点,为了帮助和我遭遇一样的同学们。
(以上纯属废话)
软件部分:
实验部分(硬件与编程):
1:打开KEIL新建工程
2:为目标选择单片机型号
3:这里我们选择的是AT89C51,在画电路图的时候我们也需要用这个相同的单片机
4:后面新建代码页,这时需要在后面加上.asm才能够被后面的选择到
5:然后双击原组,在里面选择刚刚所创建的文件
6:选择TARGET OPTIONS需要选择一些选项
7:在OUTPUT里面选择CREATE HEX FILE,因为PROTEUS里面,C51单片机的程序只能使用HEX格式的文件。
8:然后在DEBUG里面选择最后一项
9:在程序输入完成后,点击BUILT,和REBUILT,运行程序看是否有问题出现。
10:在程序调试完成后,就可以保存,然后来到PROTEUS的界面,选PROGRAM FILE 这一栏里面点击文件夹。
11:然后选择刚刚保存的那个HEX文件,点击确定。
12:点击左下角的那个仿真开始键,如果程序没问题,就可以开始进行操作了。
实验一:当按下按键时,相邻2个LED灯从左向右移动。即先灯1,2亮,然后3,4亮,然后5,6,然后7,8亮。
ORG 0000H LJMP MAIN ORG 0013H LJMP IT ORG 0030H MAIN: MOV P1, #0C0H SETB EA SETB EX1 SETB IT1 SJMP $ IT: MOV A,P1 RR A RR A MOV P1,A RETI END
实验二:采用T0作为定时器,T1作为计数器,实现1秒钟的定时,要求采用中断方法,定时时间到,在LED数码管上显示数字1。数码管所连接的I/O口自行设定。
ORG 0000H RESET: LJMP MAIN ORG 000BH LJMP IT0P ORG 1000H MAIN: MOV SP