文档介绍:-
. z.
实验六 数字温度计的设计
一、设计目的
通过电子技术的综合设计,熟悉一般电子电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法。通过设计有助于复****稳固以0*1E,0*70,0*38,0*37,0*5C,0*73,0*3E,0*78,0*3d,0*67,0*50,0*37,0*6e,
0*BF,0*86,0*DB,0*CF,0*E6,0*ED,0*FD,0*87,0*FF,0*EF,0*46}; //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1
*/
u8 code T_[]={0*EF,0*DF,0*BF,0*7F,0*EF,0*DF,0*BF,0*7F}; //位码
/************* IO口定义 **************/
sbit P_HC595_SER = P4^0; //pin 14 SER data input
sbit P_HC595_RCLK = P5^4; //pin 12 RCLk store (latch) clock
sbit P_HC595_SRCLK = P4^3; //pin 11 SRCLK Shift data clock
/************* 本地变量声明 **************/
u8 LED8[8]; //显示缓冲
u8 display_inde*; //显示位索引
bit B_1ms; //1ms标志
u8 offled;
u16 msecond;
/************* 本地函数声明 **************/
u16 get_temperature(u16 adc);
u16 Get_ADC10bitResult(u8 channel); //channel = 0~7
void Delayms(u16 dlayT);
void DisplayScan(void);
/**********************************************/
void main(void)
{
-
. z.
u8 i,k;
u16 j;
P0M1 = 0; P0M0 = 0; //设置为准双向口
P1M1 = 0; P1M0 = 0; //设置为准双向口
P2M1 = 0; P2M0 = 0; //设置为准双向口
P3M1 = 0; P3M0 = 0; //设置为准双向口
P4M1 = 0; P4M0 = 0; //设置为准双向口
P5M1 = 0; P5M0 = 0; //设置为准双向口
P6M1 = 0; P6M0 = 0; //设置为准双向口
P7M1 = 0; P7M0 = 0; //设置为准双向口
display_inde* = 4;
offled = 0;
P1ASF = 0*0F; //
ADC_CONTR = 0*E0; //90T, ADC power on
CLK_DIV = CLK_DIV&0*DF; // ADRJ=0
AU*R = 0*80; //Timer0 set as 1T, 16 bits timer auto-reload,
TH0 = (u8)(Timer0_Reload / 256);
TL0 = (u8)(Timer0_Reload % 256);
ET0 = 1; //Timer0 interrupt enable
TR0 = 1; //Tiner0 run
EA = 1; //翻开总中断
for(k=11;k>0;k--)
{
for(i=0; i<4; i++) LED8[i] = k-1; //上电消隐
Delayms(1000);
}
-
. z.
while(1)
{
if(B_1ms) //1ms到
{
B_1ms = 0;
if(++msecond >= 300) //300ms到
{
msecond = 0;
j = Get_ADC10bitResult(AD_Cha); //参数0~7,查询方式做一次ADC, 返回值就是结果, == 1024 为错误
//j = 768;
if(j < 1024)
{
LED8[0]