班級:通訊一甲 學號:B 學生:李忠憲 指導老師:王志湖 老師

Slides:



Advertisements
Similar presentations
单片机 C 语言应用程序设计 主讲教师:廉哲 QQ: 电话: 办公室:综合楼 C318.
Advertisements

應用文 ( 課程名稱 ) 優質通識學生學習檔案 授課教授:○○○教授 學 生:○○○ 學 號:○○○○ 範本 個人照片一張 中國科技大學.
While 迴圈 - 不知重複執行次數
现代电子技术实验 ——综合实验之单片机部分
硫化氢中毒及预防 硫化氢的特性与危害 硫化氢(H2S)是无色气体,有特殊的臭味(臭蛋味),易溶于水;比重比空气大,易积聚在通风不良的城市污水管道、窨井、化粪池、污水池、纸浆池以及其他各类发酵池和蔬菜腌制池等低洼处。 硫化氢属窒息性气体,是一种强烈的神经毒物。硫化氢浓度在0.4毫克/立方米时,人能明显嗅到硫化氢的臭味;70~150毫克/立方米时,吸入数分钟即发生嗅觉疲痨而闻不到臭味,浓度越高嗅觉疲劳越快,越容易使人丧失警惕;超过760毫克/立方米时,短时间内即可发生肺气肿、支气管炎、肺炎,可能引起生命危险;
休閒事業管理期末報告 主題:博奕事業之台灣運動彩 指導教師:李奇嶽 老師 本組組員:V 邱士哲 V 吳柏蒼
武侠魅力阅读领航 《射雕英雄传》中的人物性格对比 葛东杰小组.
家庭與婚姻 組員名單:鄭會成(2) 吳天雄(7) 鄭曉娜(10) 黃海瑩(34) 葉頌秋(41).
第五章 关税法 王小宁教授 三峡大学经济与管理学院.
藝術與美學欣賞 佛光山文化園區.
动漫课题 动漫power对青少年的影响.
第五組 做16歲、兩首詩 楊郁珊 陳怡蓁 吳政穎 洪珮綺.
再生能源簡介.
放大器-頻率響應實驗 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
網際網路於光纖網路之應用 授課老師:蘇銓清.
高级语言程序设计 主讲人:陈玉华.
Visual C++ introduction
微處理機原理與應用 Chapter 1 簡介 Chung-Min Wu, Ph.D
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
SWITCH&7-SEG元件控制 嵌入式作業系統實作 11/17.
使用VHDL設計—4位元位移器 通訊一甲 B 楊穎穆.
C語言簡介 日期 : 2018/12/2.
嵌入式系統進階 日期 : 2018/12/4.
微算機(二) 's UART mode0 input
初始化串列通訊埠 在啟始串列傳輸介面時有以下3個步驟:假設傳輸的通訊協定為9600bps,傳送8個位元資料,沒有同位位元,1個停止位元。
第七章 定时/计数器.
班 級: 通訊二甲 學 號: B 學 生: 楊 穎 穆 老 師: 王 志 湖
使用VHDL設計-多工器/解多工器 通訊一甲 B 楊穎穆.
基督教 宣道會 南港堂 主日服事注意要項 ◆ 聚會程序與時間 ◆ 講員 ◆ 領會同工 ◆ 領敬拜同工 ◆ 司琴同工 ◆ 放投影片同工
電子音樂 通訊系 B 楊穎穆.
邏輯設計--不穩多諧振盪器 通訊一甲 B 楊穎穆.
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
慧眼識英雄 視覺摹寫.
程式結構&語法.
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
程式設計期末測驗 通訊一甲 B 楊穎穆.
基本IO.
吸毒的禍害 華德學校 5A 陳家韻 (3).
共源極頻率響應 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
班 級: 通訊二甲 學 號: B 學 生: 楊 穎 穆 老 師: 王 志 湖
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
4.19 Fsys _ SLOW MODE HT66F70A.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
程式期末競試--電子時鐘 通訊一甲 B 楊穎穆.
教網單一入口請假系統操作步驟 人事室.
4-16 SLEEP0 HT66F70A.
第二章 类型、对象、运算符和表达式.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
自停式向下計數器 通訊一甲 B 楊穎穆.
宝 贝.
常熟第一中学小组总结.
微算機(二) 's UART mode1 communication
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
可變式計數器 通訊一甲 B 楊穎穆.
積分電路 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
CG放大(CD4007) 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
邏 輯 設 計__編碼器 學生:宋敬萱 指導老師:王志湖.
单片机应用技术 (C语言版) 第4章 C51程序设计入门
期末報告第一題 通訊四甲 B 湯智瑋.
查表法&電腦IO Port二進制轉七段顯示器
微算機(二) -- ADC0804 measurement
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
Presentation transcript:

班級:通訊一甲 學號:B09622027 學生:李忠憲 指導老師:王志湖 老師 使用C語言設計製作一時鐘 班級:通訊一甲 學號:B09622027 學生:李忠憲 指導老師:王志湖 老師

簡介 中華大學通訊工程學系  一年級程式設計(二) 期末技能競賽 題目: 使用C語言設計製作一時鐘。 作品繳交日期:即日至2008/6/9止。 成績計算: 第1項:時鐘最基本功能須具備下列功能: 共40分 a. 顯示時、分、秒功能。 b. 具有時、分校正之功能。 c. 以電腦顯示或用自製單晶片電腦硬體電路都可以。惟用自製單晶片電腦硬體電路者另外加10分。

第2項:專題論文+投影片(PPT檔)+影音檔+網頁:60% a 第2項:專題論文+投影片(PPT檔)+影音檔+網頁:60% a. 專題論文格式按一般會議論文兩列格式中文撰寫,圖、表格必須清楚,使用之參考資料也必須詳列。15% b. 投影片(PPT檔)必須將您所設計製作的動機、原理、特色、貢獻與結論,摘錄成Power Point檔。15% c. 影音檔:使用Camtasia將以上投影片、作品製作過程及作品操作使用錄製成影音檔(AVI格式)。15% d. 網頁:將以上所有製作成網頁安置在本系學生園地供人瀏覽外,另燒錄成CD片(容量盡可能在500M以下)繳交 15%

所做的功能簡介 顯示時、分、秒功能 具有時、分校正之功能 含有AM/PM功能

設計原理 sec10 sec 1 2 3 4 5 1 2 3 4 5 6 7 8 9

流程圖(主程式的部分) main TMOD=0x02 IE=0x82 TL0=56 TH0=56 While(1) no TR0=1 P0_0==1 yes TR0=0 ; set ( ) bcd2seg ( )

流程圖(計數副程式的部分) clock_count ( ) no n[2]==9 n[2]++ no yes hs==0 return

流程圖(AM.PM副程式的部分) apt ( ) no n[5]==1 && n[4]==2 return yes no n[6]==10

流程圖(校正分副程式的部分) set ( ) no P0_2==1 return yes delay(50) no P0_2==0 n[3]==5 && n[2]==9 no yes n[2]++ n[2]=0 n[3]++ yes n[3]=0 n[2]=0 return return

流程圖(校正時副程式的部分) set ( ) no P0_1==1 return yes delay(50) no P0_1==0 n[5]==1 && n[4]==2 no n[4]++ yes n[4]=0 n[5]++ yes n[5]=0 n[4]=0 return return

程式 #include <reg51.h> //由reg51.h函數庫中讀取 sfr P4 =0xD8; //防燒程式 sbit P4_3 =P4^3; //防燒程式 unsigned char bcdseg[13]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8d,0x80,0x8c,0x88,0x98,0xfe}; //宣告七段陣列 unsigned char n[7]={0,0,0,0,0,0,10}; //宣告陣列 int hs=2304; //宣告變數hs int s=2; //宣告變數s int i,scan; //宣告變數i和scan int clock_count(void) ; //宣告clock副程式 int bcd2seg(void); //宣告七段顯示器副程式 int set(void); //宣告校正副程式 int delay(int); //宣告延遲副程式 int apt(void); //宣告辨別AM.PM副程式

sbit P0_0 =P0^0; //宣告使用P0的第0支腳位 int main(void){ //主程式 void (*isp) (void) = 0xf800; //防燒程式 if(P4_3==0) (*isp) (); //防燒程式 TMOD=0x02; //為計時計數模式 IP=0; //中斷計時計數 IE=0X82; //允許計時計數中斷 TL0=56; //除200 TH0=56; //除200 while(1){ //如果程式為真則開始執行 clock_count(); //clock副程式 apt(); //辨別AM.PM副程式 if(P0_0==1){ //撥到1開始校正 TR0=0; //中斷計數 set(); //校正副程式 }

else TR0=1; //其他則開始計數 bcd2seg(); //七段顯示器副程式 } int clock_count(void){ //計數副程式 if (hs==0){ //如果hs=0則進入迴圈 s--; if(s==0){ s=2; if(n[0]==9){ //秒的個位數為9時 n[0]=0; //回到0 if(n[1]==5){ //秒的十位數為5時 n[1]=0; //回到0 if(n[2]==9){ //分的個位數為9時 n[2]=0; //回到0 if(n[3]==5){ //分的十位數為5時 n[3]=0; //回到0

if(n[5]==1 && n[4]==2){ //若n[5]為1和n[4]為2 } else if (n[4]==9){ //其他則判別是否為9 n[4]=0; //回到0 n[5]++; //n[5]+1 else n[4]++ ; //其他則n[4]+1 else n[3]++ ; //其他則n[3]+1 else n[2]++ ; //其他則n[2]+1 else n[1]++ ; //其他則n[1]+1 else n[0]++ ; //其他則n[0]+1 hs=2304; else hs=hs-1; //hs-1

int apt(void){ //判別AM.PM副程式 if (n[5]==1 && n[4]==2){ //若n[5]為1和n[4]為2 if(n[6]==10){ //若n[6]為11 n[6]=11; } else n[6]=10; //其他則n[6]為10 int set(void){ //分的校正副程式 if(P0_2==1){ //若撥到1進入迴圈 delay(50); if(P0_2==0){ //若撥到0進入迴圈 if(n[3]==5 && n[2]==9){ //若n[3]為5和n[2]為9 n[3]=0; //回到0 n[2]=0; //回到0

else if(n[2]==9){ //其他則判別為9 n[3]++; //n[3]+1 } else n[2]++; //其他則n[2]+1 if(P0_1==1){ //時的校正 delay(50); if(P0_1==0){ //若撥到0進入迴圈 if(n[5]==1 && n[4]==2){ //若n[5]為1和n[4]為2 n[5]=0; //回到0 n[4]=0; //回到0 else if(n[4]==9){ //其他則判別為9 n[4]=0; //回到0 n[5]++; //n[5]+1 else n[4]++; //其他則n[4]+1

int bcd2seg(void){ //宣告七段顯示器的副程式 scan=0x01; for(i=0;i<7;i++){ P1=0xff; P2=bcdseg[n[i]]; P1=~scan; scan<<=1; } int delay(int x){ //宣告delay副程式 while(x>0) x--; return 0;

成果

參考資料 老師上課所敎的原理 上課的筆記 同學討論