浙江大学宁波理工学院单片机短学期报告
更新时间:2023-06-02 08:50:01 阅读量: 实用文档 文档下载
- 浙大宁波理工学院是几本?推荐度:
- 相关推荐
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
宁波理工学院
专业综合课程设计报告
题
目
姓 名 和谐
专业班级 自动化091
指导教师
分 院
完成日期
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
目 录
1.课程设计目的和要求 2 2.硬件原理图 2 3.课程设计报告内容(软件部分) 6 3.1 电子时钟程序 11 3.1.1 程序流程图 13 3.1.2 源程序 14 3.2 电子密码锁程序 22 3.2.1 程序流程图 24 3.2.2 源程序 25 4.自我总结 29 5.参考文献 30
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
2.硬件原理图:
1.课程设计目的和要求
序和电子密码锁程序,并在实验板上或仿真图上调试通过。
控制技术的必要一课。课程设计是提高同学们深入理解课堂内容的重要环节。本
单片机是现代控制领域中不可缺少的核心部件,是掌握电子应用技术和自动
生分析问题和解决问题的能力以及实践动手能力。要求每位学生编写电子时钟程
课程设计的任务是巩固和加深学生对单片机原理和知识的理解,目的在于培养学
专业综合课程设计报告
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
R38
R37
R36
R35
R34
R33
R32
R31
VCC
2
R12
3
R20
2 K 3
2
2
2
2
2
2
2
P1.7
2
2
2
2
2
2
2
2
0
0
0
0
0
0
0
0
0
L16
DPY
e
f
1 1
1 2
d a
W 4
g
a
7
b
c
e b
2
R11
3
R19
f P1.6 4
K
3
0
9 d
c
W 3 g
L15
a
2
d
c
e
b
f
e
8
1
d
W 2
g
2
R10
3
R18
a K 0 P1.5
1
3
0
f
LED0
L14
c
e
b
5
f
6
g
W 1
d
g
a
3
d p
c
2
R
3
R17
b
K 9 P1.4
3
LN3461
DS1
0
L13
LED 显示电路Jed_dp Jed_g Jed_f Jed_e Jed_d Jed_c Jed_b Jed_a DPY e
彩灯电路原理图
3f 1 1 1 2 d a W 4 g a 7 b c e b f 4 9 d c W 3 g a 2 d c e b f
e 8 1 d W 2 g a 1 0 f c e b 5 f 6 g W 1 d g a 3 d p c b LN3461 DS2
Res2
R
3
R16
P1.3
8
3
0
L12
2
R
3
R15
K 7 P1.2
3
0
L11
2
R
3
R14
K 6 P1.1
3
0
L10
2
R
3
R13
K 5 P1.0
3
0
L
9
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
3.课程设计报告内容(软件部分)
3.1 电子时钟程序
3.1.1 程序流程图
主程序流程图 T0中断程序流程图 3.1.2 源程序
#include<reg52.h> #include<stdio.h>
#define uchar unsigned char #define uint unsigned int
void delay(uint k ); //延时子程序 void time_pro( ); //时间处理子程序 void display( ); //显示子程序 void keyscan( );//键盘扫描子程序
uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; // 0 1 2 3 4 5 6 7 8 9 10
int p2_tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
// 0 1 2 3 4 5 6 7 uchar seconde=0;//秒 uchar minite=0;//分 uchar hour=0; //时
uchar mstcnt=0;//定时器计数,定时50ms,mstcnt满20,秒加1 uchar shi=0;//闹铃功能 uchar fen=0; uchar miao=0; sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_6=P1^6; sbit P3_1=P3^1; sbit P3_2=P3^2; sbit P3_3=P3^3; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; sbit P3_7=P3^7; /*延时子程序*/
void delay (uint k) { uchar j;
while((k--)!=0)
{for(j=0;j<125;j++) {; } }} /*时间处理子程序*/ void time_pro(void) { if(seconde==60) { seconde=0; minite++;
if(minite==60) { minite=0; hour++;
if(hour==24)
{ hour=0;} } }}
void timer0(void) interrupt 1 //定时器0方式1,50ms中断一次 {
TH0=0x3c; //手动加载计数脉冲次数 TL0=0xb0; TMOD=0x11;
mstcnt++; //用于计算时间,每隔50ms加1 if(mstcnt==20)//mstcnt满20即为一秒 { seconde++;//秒+1
time_pro( ); //时间处理
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
mstcnt=0; //对计数单元的清零,重新开始计数 } }
/*显示子程序*/ void display(void) { if(P3_4==1)
{ P2=p2_tab[7];
P0=dispcode[seconde%10];//秒个位 delay(1);
P2=p2_tab[6];
P0=dispcode[seconde/10];//秒十位 delay(1);
P2=p2_tab[5];
P0=dispcode[10];//间隔符 - delay(1);
P2=p2_tab[4];
P0=dispcode[minite%10];//分个位 delay(1);
P2=p2_tab[3];
P0=dispcode[minite/10];//分十位 delay(1);
P2=p2_tab[2];
P0=dispcode[10];//间隔符 - delay(1);
P2=p2_tab[1];
P0=dispcode[hour%10];//时个位 delay(1);
P2=p2_tab[0];
P0=dispcode[hour/10];//时十位 delay(1); } } /*键盘扫描子程序*/ void keyscan(void)
{ if(P1_0==0)//秒位的调整 { delay(30); if(P1_0==0) { seconde++;
if(seconde==60)
{ seconde=0; } } delay(250); }
if(P1_1==0)//分位的调整 { delay(30); if(P1_1==0) { minite++; if(minite==60)
{ minite=0; } }
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
delay(250); } if(P1_2==0)//时位的调整 { delay(30); if(P1_2==0) { hour++; if(hour==24)
{ hour=0; } } delay(250); } } /*定时闹钟*/ void dingshi(void) { if(P3_4==0)
{ P2=p2_tab[7];
P0=dispcode[miao%10];//秒个位 delay(1);
P2=p2_tab[6];
P0=dispcode[miao/10];//秒十位 delay(1);
P2=p2_tab[5];
P0=dispcode[10];//间隔符 - delay(1);
P2=p2_tab[4];
P0=dispcode[fen%10];//分个位 delay(1);
P2=p2_tab[3];
P0=dispcode[fen/10];//分十位 delay(1);
P2=p2_tab[2];
P0=dispcode[10];//LED 3.6两管符号“-” delay(1);
P2=p2_tab[1];
P0=dispcode[shi%10];//时个位 delay(1);
P2=p2_tab[0];
P0=dispcode[shi/10];//时十位 delay(1); }
if(P3_5==0)//闹钟时位加 {delay(30); if(P3_5==0) { shi++; if(shi==24) { shi=0; } } delay(250); }
if(P3_1==0)//闹钟时位减 { delay(30);
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
if(P3_1==0) { shi--;
if(shi==24) { shi=0;} } delay(250); }
if(P3_6==0)//闹钟分位加 { delay(30); if(P3_6==0) {
fen++;
if(fen==60)
{ fen=0; } } delay(250); }
if(P3_2==0)//闹钟分位减 { delay(30); if(P3_2==0) {fen--;
if(fen==60) {fen=0; } }
delay(250);}
if(P3_7==0)//闹钟秒位加 {
delay(30); if(P3_7==0) {miao++;
if(miao==60) { miao=0; } } delay(250); }
if(P3_3==0)//闹钟秒位减 {delay(30); if(P3_3==0) { miao--; if(miao==60) { miao=0; } } delay(250); }
if((hour==shi)&(minite==fen)&(seconde==miao))//闹铃时间到,报警2s。 { P1_6=0;
delay(1500); P1_6=1;}} /*主函数*/
void main(void) { P1=0XFF;
TMOD=0x11; //time0为定时器,方式1
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
TH0=0x3c;//预置计数初值,50ms TL0=0xb0;
EA=1; //总中断开
ET0=1; //允许定时器0中断 TR0=1; //开启定时器0 while (1)
{ keyscan();//按键扫描 dingshi();//定时闹钟
display();//显示时间 } } 3.1 数字时钟仿真图
3.2 电子密码锁程序
3.2.1 程序流程图
主程序流程图 扫描键盘流程图
3.2.2 源程序
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
#include"reg51.h" #include"stdio.h"
#define uchar unsigned char #define uint unsigned int void dly_ms(int ms); int keyscan(); void show(); void show1(); sbit P3_1=P3^1;
int ok=0;//,esc=0,change=0,re=0; int t[6]={3,2,1,4,5,6},
s[6]={13,13,13,13,13,13},
p[8]={13,13,13,13,13,13,13,13}; int
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x76,0x08,0x79,0x00};
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
int p2_tab[]={0xf7,0xfb,0xfd,0xfe,0x7f,0xbf,0xdf,0xef}; void main()
{int i=0,n=0,k=-1,x=0,m=0; while(1)
{k=keyscan(); if(k!=-1) {if(n<6)
switch(k) {case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8:
case 9:p[n]=10;s[n]=k;n++;break; } switch(k) {case 12: {ok=1;
{for(i=0;i<6;i++)
if(s[i]!=t[i]||n<6) ok=0; if(ok==0)
{ for(i=0;i<8;i++)
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
p[i]=12; P1=0x0f; } else
{for(i=0;i<6;i++) p[i]=s[i]; p[6]=13; p[7]=13;
P1=0x00; } } };break; case 13: {if(m!=1) {break;} else
{for(i=0;i<6;i++) {t[i]=13;} for(i=0;i<6;) {x=keyscan(); if(x!=-1&&x<10) {t[i]=x;
dly_ms(150); i++;} show1(); m=0;} } }
case 15:
for(i=0;i<8;i++)p[i]=13; for(i=0;i<6;i++)s[i]=13; n=0;
P1=0XFF; }
k=-1;
dly_ms(200); } show(); } for(;;);}
void dly_ms(int ms) {
int ii,jj;
if (ms<1) ms=1;
for(ii=0;ii<ms;ii++)
for(jj=0;jj<112;jj++); //busclk:12MHz--1ms }
int keyscan()//键盘扫描函数,用于识别哪一个键按下,并读取键值
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
{
uchar i,temp,temp1=0xfe; int k=-1;
for(i=0;i<4;i++) {
P3=temp1;
temp=P3&0xf0; if(temp!=0xf0) {
dly_ms(10); temp=P3&0xf0; if(temp!=0xf0)
{ //消抖 while((P3&0Xf0)!=0xf0); switch(temp) {
case 0xe0:k=4*i+0;break; case 0xd0:k=4*i+1;break; case 0xb0:k=4*i+2;break; case 0x70:k=4*i+3;break; default:k=-1; } } }
temp1=(temp1<<1)|0x01;//左移一位 }
return k; }
void show() { int i;
for(i=0;i<8;i++) {
P2=p2_tab[i]; P0=table[p[i]]; dly_ms(2); } }
void show1() { int i;
for(i=0;i<6;i++) p[i]=11; for(i=0;i<8;i++) {
P2=p2_tab[i];//数码管的位选
浙江大学宁波理工学院单片机短学期报告 忽悠老师必备
P0=table[p[i]];//数码管显示的数据 dly_ms(2); }}
4.自我总结
在漫长的大三即将结束之际,学校给我们安排了短学期,本以为在宁波理工这么多年终于有一次机会可以在七月前回到家里,然而短学期的开使得我这个梦想破灭。于是,三年了,我没一次是在七月前回家的。
这次短学期,为期十天,在上学期学习了单片机的汇编编程方法后,这次短学期我们学习了c语言 的编程方法,在此提个意见,希望学校能把单片机这门课安排在第六学期,因为单片机这门课和短学期相差了一个学期,本来我们就对单片机这门课有点头疼,而短学期和单片机主课相隔时间大,回忆起来有点困难。
接下来说一下收获,这次虽然说真的学到的东西对我个人而言不是很多,但是收获还是有的,比如说我重新回忆起了c语言的循环语句,case,break等。也让我重新回忆了单片机。
本人自己单片机c语言学的都不好,程序也不是自己写的,自己写对我而言要求太高,所以我只能试着在同学的帮助下试着理解程序的代码及其含义。我觉得每个人都有各自的特点,写程序厉害的同学可以自己写,写不好的同学只能自己看,看多了,也就会写了,古语有云:熟读唐诗三百首,不会吟诗也会吟。
总之感谢老师在这个炎烈的夏天还和我们一起短学期,相信我们有所收获,就是老师最最欣慰的事情,在此,我告诉老师,我有收获,感谢您的付出。
5.参考文献
《C语言程序设计》----唐云延 主编 <科学出版社>
《单片机原理与应用》----吴飞青、李林功、王兵、丁晓 编著 <机械工业出版社>
正在阅读:
浙江大学宁波理工学院单片机短学期报告06-02
反比例函数复习导学案207-21
《职业生涯规划》教学工作总结09-04
锤式破碎机操作规程08-06
甘肃省定西市2011年秋季事业单位公开招聘1825名人员相关问题通知05-31
秘书四级考试试题06-06
20xx年预备党员思想汇报材料三篇09-10
网络攻击与防御实验报告 - 图文12-18
地震应急准备工作落实情况报告03-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 浙江大学
- 宁波
- 理工学院
- 单片机
- 学期
- 报告
- 一年级生字笔顺表
- 紫杉醇治疗恶性肿瘤的研究进展
- 白酒代理合同范本
- 工程计量与计价2-3建筑工程定额原理及基础定额
- 初中化学常见物质化学方程式反应现象应用
- 行为安全的致因分析及心理学探讨
- 哈尔滨工业大学社会实践大纲
- 绩效管理与绩效目标分解-GEC
- 高校辅导员职业生涯规划浅析
- 川大网教2014年1月《计算机应用基础》第二次作业(题型答案对照)
- 2012年国家职业资格全国统一鉴定时间安排
- 2013秋华东理工公共关系学2
- 2014-2015教科版小学四年级语文上册_期末试卷
- 廊坊综合体项目定位与物业发展建议报告(世联)
- 薄壁高墩6米大块钢模翻模施工工法
- 服药后不良反应怎么办
- VC课程设计说明书
- 接种门诊护士职业倦怠及与工作压力_自尊_社会支持的相关性
- 十大经典鸡尾酒 文档
- 行政科年终工作总结2011年12月13日doc