第一篇:實(shí)驗(yàn)八 綜合程序設(shè)計(jì)
實(shí)驗(yàn)八綜合程序設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?.掌握文件以及緩沖文件系統(tǒng)、文件指針的概念。
2.學(xué)會(huì)使用文件打開、關(guān)閉、讀、寫等文件操作函數(shù)。
3.通過一個(gè)綜合程序,使學(xué)生對(duì)綜合運(yùn)用C語言程序設(shè)計(jì)語言有初步的認(rèn)識(shí)。
二、實(shí)驗(yàn)內(nèi)容
1.運(yùn)行下面程序,給出執(zhí)行結(jié)果。
#include
#include
voidmain(void)
{FILE *fp;
char ch,filename[10];
scanf(“%s”,filename);
if((fp=fopen(filename,“w”))==NULL){
printf(“cannot open filen”);
exit(0);/*終止程序*/}
ch=getchar();/*接收?qǐng)?zhí)行scanf語句時(shí)最后輸入的回車符 */
ch=getchar();/* 接收輸入的第一個(gè)字符 */
while(ch!='#‘)
{fputc(ch,fp);putchar(ch);
ch=getchar();}
fclose(fp);
}
2.請(qǐng)編寫程序:從鍵盤輸入一個(gè)字符串,將其中的小寫字母全部轉(zhuǎn)換成大寫字母,輸出到磁盤文件“upper.txt”中保存。輸入的字符串以“!”結(jié)束。然后再將文件upper.txt中的內(nèi)容讀出顯示在屏幕上。
3.教材P349上機(jī)實(shí)驗(yàn)題16的1、2。
注:本次實(shí)驗(yàn)報(bào)告內(nèi)容為實(shí)驗(yàn)內(nèi)容的3.
第二篇:《Web應(yīng)用程序設(shè)計(jì)實(shí)驗(yàn)》實(shí)驗(yàn)指導(dǎo)書-實(shí)驗(yàn)八
實(shí)驗(yàn)八
Servlet技術(shù)的應(yīng)用
一、實(shí)驗(yàn)?zāi)康?/p>
(1)、掌握怎樣編寫和使用Servlet。(2)、掌握編寫和配置和Servlet有關(guān)的web.xml文件。(3)、掌握在Servlet中使用session的方法;熟悉把用戶對(duì)某JSP頁面或Servlet的請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)JSP頁面或Servlet的方法。
二、實(shí)驗(yàn)工具
(1)JDK1.4、JDK1.5或JDK1.6,可以從SUN公司的網(wǎng)站免費(fèi)下載(2)編輯工具:記事本或Dreamweaver MX 2004、FrontPage 2003(3)Tomcat服務(wù)器,也可以從網(wǎng)上免費(fèi)下載(4)Netbeans 4.1或Jcreator
三、實(shí)驗(yàn)原理與內(nèi)容
(1)、有些Web應(yīng)用可能需要JSP+JavaBean+Servlet來完成,需要服務(wù)器再創(chuàng)建一些Servlet對(duì)象,配合JSP頁面來完成整個(gè)Web應(yīng)用程序的工作。本小節(jié)實(shí)驗(yàn)將介紹怎樣編寫創(chuàng)建Servlet對(duì)象的類,怎樣在Tomcat服務(wù)器上保存編譯后的字節(jié)碼、編寫部署文件,怎樣請(qǐng)求Tomcat服務(wù)器創(chuàng)建一個(gè)Servlet對(duì)象。
① 復(fù)制需要的jar文件:為了編譯Servlet源文件,需要HttpServlet、HttpServletRequest等類,JDK內(nèi)置包中并不包含這些類文件,用戶需要將Tomcat服務(wù)器中commonlib目錄下的servlet-api.jar文件復(fù)制到JDK安裝目錄的jrelibext子目錄中。
② 添加Servlet類的字節(jié)碼文件:編寫如下的Servlet類:Computer.java,保存在D:盤根目錄下,編譯該類,形成starmoonComputer.class,將此文件夾保存到Tomcat當(dāng)前Web目錄(如:ROOT目錄)下的WEB-INFclasses子目錄中,重新啟動(dòng)Tomcat。Computer.java:
package star.moon;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class Computer extends HttpServlet { public void init(ServletConfig config)throws ServletException
{ super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response)
throws IOException
{ response.setContentType(“text/html;charset=GB2312”);
PrintWriter out=response.getWriter();
out.println(“
”);String number=request.getParameter(“number”);
//獲取客戶提交的信息。
double n=0;
try{ n=Double.parseDouble(number);
out.print(“
”+number+“的平方根是:”);
out.print(“
”+Math.sqrt(n));
}
catch(NumberFormatException e)
{ out.print(“
請(qǐng)輸入數(shù)字字符!
”);}
out.println("
第三篇:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)-實(shí)驗(yàn)八(輸入輸出流)
廣西科技大學(xué)
計(jì)通學(xué)院
《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)
實(shí)驗(yàn)八
輸入輸出流
學(xué)生姓名:×××
學(xué)
號(hào):×××
班
級(jí):×××
指導(dǎo)老師:×××
專
業(yè):計(jì)算機(jī)科學(xué)與技術(shù)
提交日期:×××年×× 月××日
實(shí)驗(yàn)報(bào)告內(nèi)容
1. 實(shí)驗(yàn)?zāi)康?/p>
掌握字符輸入、輸出流用法; 掌握使用Scanner類解析文件; 掌握Console流的使用。
2. 實(shí)驗(yàn)內(nèi)容
實(shí)驗(yàn)教材-第12章實(shí)驗(yàn)1、2、3 字符輸入輸出流;Scanner類和Console類。
要求: 完善程序,給出實(shí)驗(yàn)結(jié)果截圖;
完成試驗(yàn)后練習(xí)。
3. 程序代碼及運(yùn)行結(jié)果:
實(shí)驗(yàn)1 舉重成績(jī)單
// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null;
while((str=bufferRead.readLine())!=null){
double totalScore=Fenxi.getTotalScore(str);str=str+“總成績(jī):”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close();} catch(IOException e){ System.out.println(e.toString());} } }
// Fenxi.java
import java.util.*;public class Fenxi { public static double getTotalScore(String s){ String regex = “[^0123456789.]”;String digitMess = s.replaceAll(regex,“*”);StringTokenizer fenxi = new StringTokenizer(digitMess,“*”);double totalScore=0;while(fenxi.hasMoreTokens()){ double score=Double.parseDouble(fenxi.nextToken());totalScore=totalScore+score;} return totalScore;
} }
// score.txt
姓名:張三,抓舉成績(jī) 106kg,挺舉 189kg。姓名:李四,抓舉成績(jī) 108kg,挺舉 186kg。姓名:周五,抓舉成績(jī) 112kg,挺舉 190kg。
運(yùn)行結(jié)果如圖1所示
圖1
實(shí)驗(yàn)2 統(tǒng)計(jì)英文單詞 // WordStatistic.java import java.io.*;import java.util.*;public class WordStatistic { Vector
} catch(IOException exp){ System.out.println(exp.toString());} } void setFileName(String name){ file=new File(name);try{ sc=new Scanner(file);sc.useDelimiter(regex);} catch(IOException exp){ System.out.println(exp.toString());} } void WordStatistic(){ try{ while(sc.hasNext()){ String word=sc.next();allWord.add(word);if(!noSameWord.contains(word))noSameWord.add(word);} } catch(Exception e){} } public Vector
} }
// OutputWordMess.java import java.util.*;public class OutputWordMess { public static void main(String[] args){ Vector if(count[n]>count[m]){ String temp=noSameWord.elementAt(m); noSameWord.setElementAt(noSameWord.elementAt(n), m);noSameWord.setElementAt(temp, n);int t=count[m];count[m]=count[n];count[n]=t;} } } for(int m=0;m 運(yùn)行結(jié)果如圖2所示 圖2 實(shí)驗(yàn)3 密碼流 // PassWord.java import java.io.*;public class PassWord { public static void main(String[] args){ boolean success=false;int count=0;Console cons;char[] passwd;cons=System.console();while(true){ System.out.print(“輸入密碼:”); passwd=cons.readPassword(); count++; String password= new String(passwd); if(password.equals(“tiger123”)){ success=true; System.out.println(“您第”+count+“次輸入的密碼正確!”); break; }else{ System.out.println(“您第”+count+“次輸入的密碼”+password+“不正確!”); }if(count==3){ System.out.println(“您”+count+“次輸入的密碼都不正確!”); System.exit(0); } } if(success){ File file=new File(“score1.txt”); try{ FileReader inOne=new FileReader(file); BufferedReader inTow=new BufferedReader(inOne); String s=null; while((s=inTow.readLine())!=null){ System.out.println(s); } inOne.close(); inTow.close(); }catch(IOException ioe){} } } } // score.txt 姓名:張三,抓舉成績(jī) 106kg,挺舉 189kg。姓名:李四,抓舉成績(jī) 108kg,挺舉 186kg。姓名:周五,抓舉成績(jī) 112kg,挺舉 190kg。 運(yùn)行結(jié)果如圖3所示 圖3 4. 實(shí)驗(yàn)后的練習(xí): 實(shí)驗(yàn)1 有如下格式的成績(jī)單(文本格式)score.txt。姓名:張三,數(shù)學(xué)72分,物理67分,英語70分。姓名:李四,數(shù)學(xué)92分,物理98分,英語88分。 姓名:周五,數(shù)學(xué)68分,物理80分,英語77分。要求按行讀入取成績(jī)單,并在該行的后面尾加上該同學(xué)的總成績(jī),然后再將該行寫入到一個(gè)名字為scoreAnalysis.txt的文件中。// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite,true);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null; while((str=bufferRead.readLine())!=null){ double totalScore=Fenxi.getTotalScore(str);str=str+“總分:”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close(); } catch(IOException e){ System.out.println(e.toString());} } } // Fenxi.java import java.util.*;public class Fenxi { public static double getTotalScore(String s){ Scanner scanner=new Scanner(s);scanner.useDelimiter(“[^0123456789.]+”);double totalScore=0;while(scanner.hasNext()){ try{ double score=scanner.nextDouble();totalScore=totalScore+score;} catch(InputMismatchException exp){ String t=scanner.next();} } return totalScore;} } // score.txt 姓名:張三,數(shù)學(xué)72分,物理67分,英語70分。姓名:李四,數(shù)學(xué)92分,物理98分,英語88分。姓名:周五,數(shù)學(xué)68分,物理80分,英語77分。 運(yùn)行結(jié)果如圖4所示 圖4 實(shí)驗(yàn)2 按字典序輸出全部不相同的單詞。// Dictionary.java import java.util.*;public class Dictionary { public static void main(String args[]){ Vector WordStatistic statistic=new WordStatistic(); statistic.setFileName(“hello.txt”); statistic.WordStatistic();//statistic調(diào)用WordStatistic()方法 allWord=statistic.getAllWord(); noSameWord=statistic.getNoSameWord(); System.out.println(“共有”+allWord.size()+“個(gè)英文單詞”); System.out.println(“有”+noSameWord.size()+“個(gè)互不相同英文單詞”); System.out.println(“按字典順序排列:”); String s[]=new String [noSameWord.size()]; for(int i=0;i s[i]=noSameWord.elementAt(i); } Arrays.sort(s); for(int i=0;i System.out.println(s[i]+“ ”); } } } 運(yùn)行結(jié)果如圖5所示 圖5 實(shí)驗(yàn)3 編寫一個(gè)程序,程序運(yùn)行時(shí),要求用戶輸入的密碼是:hello。如果用戶輸入了正確的密碼。程序?qū)⑤敵觥澳愫?,歡迎你!”。程序允許用戶2次輸入的密碼不正確,一旦超過2次,程序?qū)⒘⒖掏顺觥?/ PassWord.java import java.io.*;import java.util.Scanner;public class PassWord{ public static void main(String args[]){ int count=0;Console cons;String passwd;Scanner sc=new Scanner(System.in);//cons=System.console(); while(true){ System.out.print(“輸入密碼:”); passwd=sc.next();// count++; String password=new String(passwd); if(password.equals(“hello”)){ System.out.println(“你好,歡迎你!”); break; } else{ System.out.println(“您第”+count+“次輸入的密”+password+“不正確”); } if(count==3){ System.out.println(“您”+count+“次輸入的密碼都不正確”); System.exit(0); } } } } 運(yùn)行結(jié)果如圖6所示 圖6 5. 實(shí)驗(yàn)心得和體會(huì) 這次實(shí)驗(yàn)中,我感覺比較難理解和掌握的就是Console類 了,在實(shí)驗(yàn)3 密碼流的代碼在eclipse中運(yùn)行出錯(cuò)如下圖所示: 就是輸入不了密碼,后來通過找尋解決方法,才知道了在JDK 6中java.io.Console類專用來訪問基于字符的控制臺(tái)設(shè)備,然后使用cmd命令提示符來運(yùn)行就可以輸入密碼和顯示結(jié)果了。 通過這次實(shí)驗(yàn),大概了解了字符輸入、輸出流用法,如何去使用Scanner類解析文件,對(duì)Console類的使用有個(gè)大概的認(rèn)知。總而言之,這次實(shí)驗(yàn)收獲蠻大的,敲代碼的效率比以往提高了,出錯(cuò)率也少了。 實(shí) 驗(yàn) 報(bào) 告 課程名稱: SQL Server 數(shù)據(jù)庫基礎(chǔ) 任課教師: 池宗琳 實(shí)驗(yàn)名稱: 存儲(chǔ)過程 年級(jí)、專業(yè): 2018級(jí)電子信息工程 學(xué) 號(hào): 20181060093 姓 名: 馬 信 日期: 2019 年 月 日 云南大學(xué) 信息學(xué)院 一、實(shí)驗(yàn)?zāi)康?、掌握使用SELECT語句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的簡(jiǎn)單查詢 2、掌握使用SELECT語句實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的多表鏈接查詢和子查詢 二、實(shí)驗(yàn)內(nèi)容、方法、步驟、結(jié)果與分析 完成以下各題功能,保存或記錄實(shí)現(xiàn)各題功能的Transact-SQL語句。 1.在數(shù)據(jù)庫HrSystem中創(chuàng)建存儲(chǔ)過程avg._wage,用于求所有員工的平均工資,并通過輸出參數(shù)返回該平均工資。要求在創(chuàng)建存儲(chǔ)過程之前要首先判斷該存儲(chǔ)過程是否已經(jīng)存在,如果存在,則將其刪除。 USE Hrsystem GO IF EXISTS (SELECT name FROM sysobjects WHERE name = 'avg_wage') DROP PROC avg_wage GO CREATE PROC avg_wage @AVWAGE AS FLOAT AS SELECT @AVWAGE = AVG(Wage) FROM Employees PRINT @AVWAGE GO 2.執(zhí)行第1題創(chuàng)建的存儲(chǔ)過程avg_ wage,打印員工平均工資。 USE Hrsystem GO DECLARE @avg AS FLOAT EXEC avg_wage @avg 3.在數(shù)據(jù)庫HrSystem中創(chuàng)建存儲(chǔ)過程max_ wage,根據(jù)指定的部門名稱(輸人參數(shù))返回該部門的最高工資(輸出參數(shù))。要求在創(chuàng)建存儲(chǔ)過程之前要首先判斷該存儲(chǔ)過程是否已經(jīng)存在,如果存在,則將其刪除。 USE Hrsystem GO IF EXISTS (SELECT name FROM sysobjects WHERE name = 'max_wage') DROP PROC avg_wage GO CREATE PROC max_wage @Dename varchar(20),@MAX_wage FLOAT OUTPUT AS SELECT @MAX_wage = MAX(Wage) FROM Employees WHERE Dep_id IN(SELECT Dep_id FROM Departments WHERE Dep_name = @Dename) GROUP BY Dep_id 4.執(zhí)行第3題創(chuàng)建的存儲(chǔ)過程max wage,指定部門為“財(cái)務(wù)部”,打印該類部門的最高工資。 USE Hrsystem GO DECLARE @MAX_wage FLOAT EXEC max_wage '財(cái)務(wù)部',@MAX_wage OUTPUT PRINT @MAX_wage 5.刪除存儲(chǔ)過程avg_ wage和I max_ wage。 USE Hrsystem GO DROP PROCEDURE max_wage GO DROP PROCEDURE avg_wage (二)觸發(fā)器 創(chuàng)建一個(gè)“學(xué)生信息”數(shù)據(jù)庫,包含“學(xué)生基本信息”表、“專業(yè)”表和“系”表,各表包含的字段如下。 “學(xué)生基本信息”表:學(xué)號(hào);姓名;性別;班級(jí);出生日期;專業(yè)編號(hào)。 “專業(yè)”表:專業(yè)編號(hào);專業(yè)名稱;系編號(hào)。 “系” 表:系編號(hào);系名稱;系簡(jiǎn)介。 各字段類型按其實(shí)際含義自行定義,輸人- -些數(shù)據(jù),要求數(shù)據(jù)要有代表性。 以下操作要求全部在SQL Server Management Studio 中完成,保存或記錄實(shí)現(xiàn)各題功能的Transcat-SQL語句(包括測(cè)試相應(yīng)觸發(fā)器是否生效的相關(guān)語句及測(cè)試結(jié)果)。 1.在“專業(yè)”表上創(chuàng)建一個(gè)INSERT觸發(fā)器“TRG1”。當(dāng)發(fā)生插入專業(yè)表操作時(shí),將顯示插入的記錄。 USE 學(xué)生信息 GO CREATE TRIGGER TRG1 ON 專業(yè) FOR INSERT AS DECLARE @depid INT DECLARE @depname varchar(50) DECLARE @number INT SELECT @depid = 專業(yè)編號(hào) FROM inserted SELECT @number = 系編號(hào) FROM inserted SELECT @depname = 專業(yè)名稱 FROM inserted PRINT('系名:'+STR(@depid)+'專業(yè)名:'+STR(@depname)+'系的編號(hào):'+str(@number)) INSERT INTO 專業(yè) (專業(yè)編號(hào),專業(yè)名稱,系編號(hào)) VALUES(@depid,@depname,@number) 2.在“專業(yè)”表上創(chuàng)建一個(gè)DELETE觸發(fā)器“TRG2”,當(dāng)發(fā)生刪除操作時(shí),將給出警告、列出刪除的記錄并撤銷刪除。 USE 學(xué)生信息 GO CREATE TRIGGER TRG2 ON 專業(yè) FOR DELETE AS PRINT('警告!禁止刪除') ROLLBACK TRANSACTION 3.在“專業(yè)”表上創(chuàng)建一個(gè)UPDTAE觸發(fā)器“TRG3”,當(dāng)發(fā)生更新“專業(yè)名稱”字段的操作時(shí),給出警告并撤銷更新 USE 學(xué)生信息 GO CREATE TRIGGER TRG3 ON 專業(yè) FOR UPDATE AS DECLARE @temp_proid INT DECLARE @temp_xiid INT DECLARE @temp_porna varchar(50) SELECT @temp_porna = 專業(yè)名稱 FROM inserted IF @temp_porna IS not NULL BEGIN PRINT('禁止修改專業(yè)名稱') ROLLBACK TRANSACTION END ELSE BEGIN SELECT @temp_porna = 專業(yè)名稱 FROM deleted SELECT @temp_xiid = 系編號(hào) FROM deleted SELECT @temp_proid = 專業(yè)編號(hào) FROM deleted UPDATE 專業(yè) SET 專業(yè)編號(hào) = @temp_proid,系編號(hào) = @temp_xiid WHERE 專業(yè)名稱 = @temp_porna END 4.在“學(xué)生基本信息”表上創(chuàng)建一 一個(gè)更新觸發(fā)器“TRG4“,當(dāng)發(fā)生更新“學(xué)號(hào)”或“姓名”字段的操作時(shí)給出警告,并撤銷更新。 USE 學(xué)生信息 GO CREATE TRIGGER TRG4 ON 學(xué)生基本信息 FOR UPDATE AS DECLARE @temp_stunum char(11) DECLARE @temp_name char(10) DECLARE @temp_gender BIT DECLARE @temp_class varchar(10) DECLARE @temp_date DATETIME DECLARE @temp_proID INT SELECT @temp_name = 姓名 FROM inserted SELECT @temp_stunum = 學(xué)號(hào) FROM inserted IF @temp_name IS NOT NULL OR @temp_stunum IS NOT NULL BEGIN PRINT('禁止修改學(xué)號(hào)或者姓名') ROLLBACK TRANSACTION END ELSE BEGIN SELECT @temp_stunum = 學(xué)號(hào) FROM deleted SELECT @temp_name = 姓名 FROM deleted SELECT @temp_gender = 性別 FROM inserted SELECT @temp_class = 班級(jí) FROM inserted SELECT @temp_date = 出生日期 FROM inserted SELECT @temp_proID = 專業(yè)編號(hào) FROM inserted UPDATE 學(xué)生基本信息 SET 性別 = @temp_gender,班級(jí) = @temp_class,出生日期 = @temp_date,專業(yè)編號(hào) = @temp_proID WHERE 學(xué)號(hào) = @temp_stunum END 5.刪除以 上各題創(chuàng)建的所有觸發(fā)器。做好“學(xué)生信息”數(shù)據(jù)庫的備份,以備第10章、第章上機(jī)操作時(shí)使用。 USE 學(xué)生信息 GO DROP TRIGGER TRG1 DROP TRIGGER TRG2 DROP TRIGGER TRG3 DROP TRIGGER TRG4 三、實(shí)驗(yàn)小結(jié)【對(duì)自己而言,通過實(shí)驗(yàn)學(xué)到的關(guān)鍵技術(shù)方法】 掌握了觸發(fā)器的一些基本方法: 1.創(chuàng)建觸發(fā)器 2.分清了觸發(fā)器的種類,但是還是需要深入了解dml觸發(fā)器中三個(gè)種類觸發(fā)器的不同。 3.了解了觸發(fā)器在我們實(shí)際操作中的作用 4. 一、實(shí)驗(yàn)?zāi)康膶W(xué)會(huì)使用單片機(jī)定時(shí)器產(chǎn)生定時(shí)中斷,并利用定時(shí)中斷產(chǎn)生更長(zhǎng)時(shí)間延時(shí)。 二、實(shí)驗(yàn)設(shè)備及器件 IBM PC機(jī) 一臺(tái) DP-51PRO.NET單片機(jī)仿真器、編程器、實(shí)驗(yàn)儀三合一綜合開發(fā)平臺(tái) 三、實(shí)驗(yàn)內(nèi)容 1.實(shí)驗(yàn)二 定時(shí)器程序設(shè)計(jì) 2.編寫程序,使P10端口來控制LED閃爍 3.C語言程序 //1ms定時(shí)中斷實(shí)現(xiàn)100ms發(fā)光管閃爍 #include“REG51.h” sbit LED=P1^0;void main(void){ TMOD = 0x01;//設(shè)置定時(shí)器模式 16位定時(shí)器 TL0 = 0x18;//設(shè)置定時(shí)初值 TH0 = 0xFC;//設(shè)置定時(shí)初值 TR0 = 1;//定時(shí)器T0開始計(jì)時(shí) ET0=1;//開定時(shí)器中斷 EA=1; //開總中斷 while(1);} //******************** //1ms void pit0(void)interrupt 1(中斷程序){ static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18;//設(shè)置定時(shí)初值 TH0 = 0xFC;//設(shè)置定時(shí)初值 if(++ms_cnt==100){ ms_cnt=0; LED=!LED;} } 定時(shí)器的由程序 直接匯編語言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $ 生成;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END 四 實(shí)驗(yàn)要求 學(xué)會(huì)使用并掌握單片機(jī)定時(shí)器中斷來實(shí)現(xiàn)LED100ms閃爍。 五 實(shí)驗(yàn)步驟 1.調(diào)試運(yùn)行本節(jié)實(shí)驗(yàn)程序。若程序無錯(cuò)誤,編譯并進(jìn)行二進(jìn)制轉(zhuǎn)換,下載程序。 2.連接線路,將A2區(qū)的P10端口連接到D1區(qū)的任意LED接口。3.觀察LED燈閃爍情況第四篇:實(shí)驗(yàn)八
第五篇:實(shí)驗(yàn)二 定時(shí)器程序設(shè)計(jì)121